我登录到Instagram,我试图按下一个按钮关闭弹出窗口,但每次得到这个无论我怎么尝试,* 我repleced用户名和密码只把代码在这里。
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time
path = "/Users/almogbenlulu/Desktop/Almog/python/chromedriver.exe"
s = Service(path)
driver = webdriver.Chrome(service=s)
driver.get("https://www.instagram.com/")
WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.NAME, 'username')))
driver.find_element(By.NAME, "username").send_keys("*****")
driver.find_element(By.NAME, "password").send_keys("*****")
driver.find_element(By.XPATH, '//*[@id="loginForm"]/div/div[3]/button/div').click()
WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CLASS_NAME, '_acan _acao _acas')))
driver.find_element(By.CLASS_NAME, '_acan _acao _acas').click()
driver.quit()
我总是得到这个即使没有等待元素
Traceback (most recent call last):
File "/Users/almogbenlulu/Desktop/Almog/python/Automation/venv/day1/insta.py", line 22, in <module>
WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CLASS_NAME, '_acan _acao _acas')))
File "/Users/almogbenlulu/Desktop/Almog/python/Automation/venv/lib/python3.11/site-packages/selenium/webdriver/support/wait.py", line 95, in until
raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message:
Stacktrace:
0 chromedriver 0x00000001048052c8 chromedriver + 4752072
1 chromedriver 0x0000000104785463 chromedriver + 4228195
2 chromedriver 0x00000001043e8b18 chromedriver + 441112
3 chromedriver 0x0000000104425e21 chromedriver + 691745
4 chromedriver 0x0000000104426061 chromedriver + 692321
5 chromedriver 0x00000001044615e4 chromedriver + 935396
6 chromedriver 0x0000000104446d2d chromedriver + 826669
7 chromedriver 0x000000010445f134 chromedriver + 926004
8 chromedriver 0x0000000104446b33 chromedriver + 826163
9 chromedriver 0x00000001044179fd chromedriver + 633341
10 chromedriver 0x0000000104419051 chromedriver + 639057
11 chromedriver 0x00000001047d230e chromedriver + 4543246
12 chromedriver 0x00000001047d6a88 chromedriver + 4561544
13 chromedriver 0x00000001047de6df chromedriver + 4593375
14 chromedriver 0x00000001047d78fa chromedriver + 4565242
15 chromedriver 0x00000001047ad2cf chromedriver + 4391631
16 chromedriver 0x00000001047f65b8 chromedriver + 4691384
17 chromedriver 0x00000001047f6739 chromedriver + 4691769
18 chromedriver 0x000000010480c81e chromedriver + 4782110
19 libsystem_pthread.dylib 0x00007ff8188bd4e1 _pthread_start + 125
20 libsystem_pthread.dylib 0x00007ff8188b8f6b thread_start + 15
Process finished with exit code 1
这就是我想抓住的
<div class="_ac8f"><button class="_acan _acao _acas" type="button">Not Now</button></div>
1条答案
按热度按时间e0bqpujr1#
By.CLASS_NAME
接收单个参数值,而_acan _acao _acas
是3个类名。若要根据多个类名查找元素,可以使用CSS选择器或XPath。
所以,与其
尝试使用
同样,上面的行返回web元素。因此,要单击它,您不需要使用
driver.find_element(By.CLASS_NAME, '_acan _acao _acas').click()
再次定位它。