Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python X秒后关闭Selenium webdriver_Python_Selenium_Webdriver - Fatal编程技术网

Python X秒后关闭Selenium webdriver

Python X秒后关闭Selenium webdriver,python,selenium,webdriver,Python,Selenium,Webdriver,我在Ubuntu+Python上使用selenium webdriver(firefox),遇到了一个问题,有时页面无法加载,整个脚本只是挂起。 有没有办法在X秒后强制退出webdriver窗口? 寻找下面这样的代码,这实际上是可行的。看起来,如果webdriver正在等待响应,它将(几乎)无限期地等待 注意!:公认的答案是正确的。该问题是由于我的geckodriver已过时(0.11版对0.019版)造成的。 要在ubuntu上检查您的版本: geckodriver --version #

我在Ubuntu+Python上使用selenium webdriver(firefox),遇到了一个问题,有时页面无法加载,整个脚本只是挂起。
有没有办法在X秒后强制退出webdriver窗口? 寻找下面这样的代码,这实际上是可行的。看起来,如果webdriver正在等待响应,它将(几乎)无限期地等待

注意!:公认的答案是正确的。该问题是由于我的geckodriver已过时(0.11版对0.019版)造成的。
要在ubuntu上检查您的版本:

geckodriver --version   #command in terminal
要更新驱动程序(如果需要)


如前所述,设置页面加载超时将实现您的目标。如果页面没有在给定的时间内加载,它将引发一个
TimeoutException
,关闭程序。

当页面没有加载并且整个脚本只是挂起时,解决方案将是诱导
设置页面加载超时。这里是有效的代码块和结果
TimeoutException
。无论
TimeoutException
发生或不记得调用
中的
quit()
方法,请尝试{}
捕获{}
块以远离
webdriver
变体的悬空实例

from selenium import webdriver

driver = webdriver.Chrome(executable_path=r'C:\Utility\BrowserDrivers\chromedriver.exe')
driver.set_page_load_timeout(2)
try :
    driver.get("https://www.booking.com/hotel/in/the-taj-mahal-palace-tower.html?label=gen173nr-1FCAEoggJCAlhYSDNiBW5vcmVmaGyIAQGYATG4AQbIAQzYAQHoAQH4AQKSAgF5qAID;sid=338ad58d8e83c71e6aa78c67a2996616;dest_id=-2092174;dest_type=city;dist=0;group_adults=2;hip_dst=1;hpos=1;room1=A%2CA;sb_price_type=total;srfid=ccd41231d2f37b82d695970f081412152a59586aX1;srpvid=c71751e539ea01ce;type=total;ucfs=1&#hotelTmpl")
    print("URL successfully Accessed")
    driver.quit()
except :
    print("Page load Timeout Occured. Quiting !!!")
    driver.quit()

可能是重复的谢谢,有没有想过为什么在ubuntu+Python2.7上运行超时代码会在超时线上抛出错误?收到以下消息:“WebDriverException:message:Failed to decode response from marionette”消息似乎很清楚,
webdriver
无法与
marionette
协商条款。您可能需要清理系统。如果我的
答案
满足了你的
问题
接受
答案
,点击
答案
箭头下方的勾号,勾号变为绿色。谢谢,有没有想过为什么在ubuntu+Python2.7上运行超时代码会在超时线上抛出错误?收到以下消息:“WebDriverException:消息:未能解码来自木偶网的响应”这就是我的机器上过时的geckodriver的问题。哎呀:(
from selenium import webdriver
from time import sleep

record = "https://www.google.com"
driver = webdriver.Firefox()
driver.set_page_load_timeout(30)
try:
    driver.get(record)
    my_html = driver.page_source #get whatever we have after 5 sec
finally:
    driver.close()
from selenium import webdriver

driver = webdriver.Chrome(executable_path=r'C:\Utility\BrowserDrivers\chromedriver.exe')
driver.set_page_load_timeout(2)
try :
    driver.get("https://www.booking.com/hotel/in/the-taj-mahal-palace-tower.html?label=gen173nr-1FCAEoggJCAlhYSDNiBW5vcmVmaGyIAQGYATG4AQbIAQzYAQHoAQH4AQKSAgF5qAID;sid=338ad58d8e83c71e6aa78c67a2996616;dest_id=-2092174;dest_type=city;dist=0;group_adults=2;hip_dst=1;hpos=1;room1=A%2CA;sb_price_type=total;srfid=ccd41231d2f37b82d695970f081412152a59586aX1;srpvid=c71751e539ea01ce;type=total;ucfs=1&#hotelTmpl")
    print("URL successfully Accessed")
    driver.quit()
except :
    print("Page load Timeout Occured. Quiting !!!")
    driver.quit()