Chromedriver在尝试查找元素时超时

时间:2019-06-19 06:29:19

标签: python-3.x heroku selenium-chromedriver

我在heroku服务器上使用python和chromedriver部署了一个硒脚本。

编辑:驱动程序已正确配置,并且它确实启动了实例,执行了任务。但是,对于随后的调用,驱动程序无法找到该元素-然后再次进行第三次迭代,便能够找到该元素。

我不确定明确的睡眠语句是否会起作用。

这是我的硒脚本中的一小段代码:

def execute_entry(url,proxy,email):
      try:
            browser = driver.load_chrome_driver(proxy)
            browser.get(url)
            browser.maximize_window()

            browser.execute_script("window.scrollTo(0, 1040)")
            sleep(5)
            print("Launching browser")

            # check if the page is still available
            try:
                  print("Checking for page")
                  element_present = expected_conditions.presence_of_element_located((By.XPATH, '//*[@id="comp_firstname"]'))
                  WebDriverWait(browser, 20).until(element_present)
            except Exception as e:
                  # exit script
                  logging.exception("message")
                  print("Unable to locate element")
                  message = "There seems to be an issue with your registration. Entry is probably closed or their server is not responsive at the moment. Timed out waiting for page to load. Please try again later!"
                  email_ops.send_email(email, 'Entry Status: Error', message)
                  browser.quit()
                  return False

            # register - if page is available
            .....
            .....
            # rest of the selenium script to fill the form details

该脚本在本地服务器上测试时运行良好。

您知道这里可能出什么问题吗?

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,经过一番挖掘,我发现了this post

显然,“ Google根据您的用户代理呈现了不同的html”。我完成了该文章中所示的用户代理设置,但是在python中:

chrome_options.add_argument("user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36")

在那之后一切都很好!