Python X秒后关闭Selenium webdriver
我在Ubuntu+Python上使用selenium webdriver(firefox),遇到了一个问题,有时页面无法加载,整个脚本只是挂起。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 #
有没有办法在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()