当前位置: 首页 > 面试题库 >

如何设置pythonselenium3.8.0的'driver.get'超时?

穆劲
2023-03-14
问题内容

在selenium测试中,您可以使用

from selenium import webdriver
driver = webdriver.Firefox()
driver.get("whateverpage.org.com")

如何为selenium版本 3.8.0 和python 2.7.12 设置此命令的超时?


问题答案:

为设置 time outPage Loading 可以诱导
set_page_load_timeout(seconds)

方法细节

def set_page_load_timeout(self, time_to_wait):
    """
    Set the amount of time to wait for a page load to complete
    before throwing an error.

精氨酸

time_to_wait: The amount of time to wait

用法

driver.set_page_load_timeout(3)

from selenium import webdriver
from selenium.common.exceptions import TimeoutException

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 TimeoutException as e:
    print("Page load Timeout Occured. Quiting !!!")
    driver.quit()

控制台输出

Page load Timeout Occured. Quiting !!!

文献资料

您可以在 pageLoadTimeout 此处找到详细的讨论 pageLoadTimeout in Selenium not working

深潜

按照Python, 3.x 如果我们不处理异常,则会观察到以下日志消息:

    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message: timeout
  (Session info: chrome=62.0.3202.94)
  (Driver info: chromedriver=2.33.506120 (e3e53437346286c0bc2d2dc9aa4915ba81d9023f),platform=Windows NT 6.2.9200 x86_64)


 类似资料:
  • 我有一个TcpClient,用于将数据发送到远程计算机上的侦听器。远程计算机有时打开,有时关闭。因此,TCP客户端将经常无法连接。我希望TcpClient在一秒钟后超时,这样当它无法连接到远程计算机时就不会花费太多时间。目前,我对TcpClient使用以下代码: 这对于处理任务来说已经足够好了。如果可以,它会发送它,如果无法连接到远程计算机,它会捕获异常。然而,当它无法连接时,抛出异常需要10到1

  • 问题内容: 我已经按照kuester2000的回答进行了操作,但是我的超时设置似乎不起作用。 但是,超时值不变。 在我链接的答案中,它还说: 连接超时抛出“ java.net.SocketTimeoutException:套接字未连接”,套接字超时抛出“ java.net.SocketTimeoutException:操作超时”。 但是我都没有。相反,我收到“ org.apache.http.co

  • 我在我的项目中设置了一个RestTemplate和一个AsyncRestTemplate,如下所示: 我注意到连接超时实际上并不起作用,除非我将httpRequestFactory()bean更改为如下所示: 如果我将DEFAULT_READ_TIMEOUT_MILLISECONDS设置为5,则当我使用restTemplate时会发生超时(正如预期的那样)。但是,当我使用AsyncRestTemp

  • 问题内容: 我org.springframework.ws.client.core.WebServiceTemplate用于拨打Web服务。如何为通话配置超时。 问题答案: 如果你使用的是Spring Webservices 2.1.0版本,则可以使用HttpComponentsMessageSender设置超时。 Spring不推荐使用CommonsHttpMessageSender,因此不再推

  • 我知道volley有一个重试策略,但我知道,这是针对套接字超时,而不是连接超时,Apache HttpClient有setConnectionTimeout和setSoTimeout方法,有人知道我是否要为volley framework设置连接超时吗。

  • 我正在尝试在我的WebClient上设置超时,以下是当前代码: 我需要添加超时和池策略,我在想这样的事情: 但是我不知道如何在我的webclient中设置httpClient