Selenium Chrome无头模式下按钮点击失效问题求助
无头模式下Selenium点击按钮触发TimeoutException,非无头模式正常运行
我写了一段用Selenium打开网站并点击指定按钮的代码,移除--headless参数后运行流畅,但启用无头模式时就会出现TimeoutException错误。网上搜了很多类似问题的解决方案(比如设置窗口大小、更换按钮点击方式等),试过都没用,想问问有没有其他解决思路。
原代码片段
for website in websites: chrome_options = webdriver.ChromeOptions() chrome_options.add_argument("--no-sandbox") chrome_options.add_argument("--headless") chrome_options.add_argument("--disable-gpu") chrome_options.add_argument("window-size=1500,900"); driver = webdriver.Chrome(options=chrome_options) wait = WebDriverWait(driver, 10) # 访问容器中的指定URL driver.get(website["url"]) element = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, '//*[@id="CollectorsClub"]/div[2]/div[1]/div[1]/nav/button[2]'))) driver.execute_script("arguments[0].click();", element)
报错信息
启用无头模式时抛出的错误:
raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message:
Stacktrace:
已尝试的其他点击方式(结果相同)
button = wait.until(EC.element_to_be_clickable((By.XPATH, '//*[@id="CollectorsClub"]/div[2]/div[1]/div[1]/nav/button[2]'))) # 点击按钮 button.click()
已尝试的常规方案(均无效)
- 设置窗口大小(已在代码中添加
window-size=1500,900) - 更换按钮定位方式(目前用的XPATH,试过其他定位也不行)
- 更换点击方法(execute_script点击和直接click都试过)
内容的提问来源于stack exchange,提问作者Alex1234
相关产品推荐
相关产品推荐

