我有一个selenium机器人,它在本地工作得很好,但是在heroku上,每当它处于expected_condition(元素可点击,元素定位的可见性和元素定位的存在性)时,就会引发TimeoutException。任何人都知道如何在heroku中修复这个问题。下面是一个我使用expected_conditions的示例
element = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, "//button[contains(@class, 'productlistning__btn')]")))
以及我在代码中使用的chrome参数:
chrome_options = Options()
chrome_options.binary_location = os.environ.get("GOOGLE_CHROME_BIN")
chrome_options.add_argument("--headless")
chrome_options.add_argument("--disable-dev-shm-usage")
chrome_options.add_argument("--start-maximized")
chrome_options.add_argument("--no-sandbox")
driver = webdriver.Chrome(executable_path=os.environ.get("CHROMEDRIVER_PATH"), options=chrome_options)
1条答案
按热度按时间gab6jxml1#
我猜你没有定义屏幕大小的驱动程序,而在无头模式的默认屏幕大小是800600。
因此,要使Selenium代码正常工作,请尝试将屏幕大小设置为最大值或1920,1080。如下所示:
或者