【发布时间】:2022-01-08 06:29:06
【问题描述】:
我将以下代码用于 chrome --headless 模式,但代码执行不正确。 代码在正常模式下工作正常。
def instagram_login():
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument("--headless")
driver = webdriver.Chrome("/home/chromedriver", options=chrome_options)
driver.get('https://www.instagram.com/')
driver.maximize_window()
driver.implicitly_wait(20)
form = driver.find_element_by_xpath("//*[@class='HmktE']")
usrinput = form.find_element_by_name("username")
usrinput.clear()
usrinput.send_keys("xxxxxx")
usrpwd = form.find_element_by_name("password")
usrpwd.clear()
usrpwd.send_keys("xxxxx")
time.sleep(2)
loginbt = form.find_elements_by_tag_name('button')
loginbt[1].click()
time.sleep(5)
wait = WebDriverWait(driver, 10)
wait.until(EC.element_to_be_clickable((By.XPATH, "/html/body/div[1]/section/main/div/div/div/div/button"))).click()
time.sleep(2)
wait = WebDriverWait(driver, 10)
wait.until(EC.element_to_be_clickable((By.XPATH, "//button[text()='Not Now']"))).click()
return driver
请找出以下错误:
Traceback (most recent call last):
File "/home/Instagram/insta.py", line 539, in <module>
(driver, postauth, hlist) = get_instalinks(x)
File "/home//PycharmProjects(SEP)/Instagram/insta.py", line 76, in get_instalinks
driver = instagram_login()
File "/home/Instagram/insta_.py", line 56, in instagram_login
wait.until(EC.element_to_be_clickable((By.XPATH, "//button[text()='Not Now']"))).click()
File "/usr/local/lib/python3.8/dist-packages/selenium/webdriver/support/wait.py", line 80, in until
raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message:
【问题讨论】:
-
你看到了什么错误?
-
selenium.common.exceptions.TimeoutException:消息:
-
你能用 url 和异常详细信息更新问题吗?
-
请立即查看。我已经更新了代码。
-
在
drive.get()之后,您可以使用drive.page_source从浏览器获取HTML,您可以检查print( drive.page_source )或将其保存在文件中并在编辑器或Web 浏览器中打开以查看您得到的结果。因为drive.page-source给出了字符串,所以你可以使用字符串的函数来搜索元素,或者你可以将它与BeautifulSoup或lxml一起使用来搜索HTML 中的标签。
标签: python selenium google-chrome selenium-webdriver selenium-chromedriver