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

Selenium .set_script_timeout(n)有什么作用,它与driver.set_page_load_timeout(n)有何不同?

厉钊
2023-03-14
问题内容

对于pythonselenium,我不太了解driver.set_page_load_timeout(n)VS
的确切区别。driver.set_script_timeout(n)。两者似乎可以互换使用,以设置超时时间以通过加载URL
driver.get(URL),但有时也可以一起使用。

场景1

driver.set_page_load_timeout(5)
website = driver.get(URL)
results = do_magic(driver, URL)

方案2

driver.set_script_timeout(5)
website = driver.get(URL)
results = do_magic(driver, URL)

两种情况有何不同? 哪些情况在一种情况下触发了超时,但另一种情况却未触发?


问题答案:

根据 Selenium-Python API Docs
set_page_load_timeout(n)set_script_timeout(n)两者都是 超时 方法,用于将 webdriver
实例配置为在程序执行期间遵守。

set_page_load_timeout(time_to_wait)

set_page_load_timeout(time_to_wait)
设置在引发错误之前等待页面加载完成的时间,其定义为:

    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.

    :Args:
     - time_to_wait: The amount of time to wait

    :Usage:
        driver.set_page_load_timeout(30)
    """
    try:
        self.execute(Command.SET_TIMEOUTS, {
        'pageLoad': int(float(time_to_wait) * 1000)})
    except WebDriverException:
        self.execute(Command.SET_TIMEOUTS, {
        'ms': float(time_to_wait) * 1000,
        'type': 'page load'})

在这里您可以找到有关的详细讨论
set_page_load_timeout

set_script_timeout(time_to_wait)

set_script_timeout(time_to_wait)
设置脚本在抛出错误之前execute_async_script
Javascript / AJAX调用 )应等待的时间,其定义为:

    def set_script_timeout(self, time_to_wait):
    """
    Set the amount of time that the script should wait during an
       execute_async_script call before throwing an error.

    :Args:
     - time_to_wait: The amount of time to wait (in seconds)

    :Usage:
        driver.set_script_timeout(30)
    """
    if self.w3c:
        self.execute(Command.SET_TIMEOUTS, {
        'script': int(float(time_to_wait) * 1000)})
    else:
        self.execute(Command.SET_SCRIPT_TIMEOUT, {
        'ms': float(time_to_wait) * 1000})


 类似资料:
  • 问题内容: 在Java中,表达式为: 似乎等于: 尽管是有效的一元运算符,其优先级高于中的算术运算符。因此,编译器似乎假设该运算符不能为一元运算符,并解析该表达式。 但是,表达式: 即使存在以下唯一有效的解决方案,也不会编译: 和被指定为具有相同的优先级,那么为什么编译器为支持算术而解决看似模棱两可的问题,但为什么不这样做呢? 问题答案: 首先使用最大修改规则将文件标记化(转换为标记序列)-始终获

  • 问题内容: java.util.Random源代码的第294行说 为什么是这样? 问题答案: 该描述并不完全准确,因为0不是2的幂。更好的说法是 当n是2的幂或2的幂的负数或零时。 如果n是2的幂,则二进制中的n是单个1,后跟零。-n为2的补数是倒数+ 1,因此位排成一行 要了解其工作原理,请将二进制补码视为逆+ 1。 因为当您添加一个得到两个的补码时,您会一直进行到一个。 如果n不是2的幂,则结

  • 问题内容: 当我编写一些CSS时,在使用外观之前从未遇到过这种情况,并且我怀疑实际发生了什么。 使用伪类时,我会在选择器之间没有空格的情况下编写它们,如下所示: 但是它没有按我预期的方式工作,所以我尝试在选择器和伪类之间插入一个空格。令人惊讶的是,它的工作原理是: 使这项工作发生了什么事? 问题答案: 您误会了选择器。它选择的元素也是,该元素 也具有 前面的元素作为父元素。 如果前面没有选择器,则

  • 我不确定numpy中(N,)和(N,1)之间的区别。假设两者都是一些特征,它们具有相同的N维,并且都有一个样本。有什么区别?

  • 本文向大家介绍flex与其他有什么不同,用它有什么好处?相关面试题,主要包含被问及flex与其他有什么不同,用它有什么好处?时的应答技巧和注意事项,需要的朋友参考一下 flex 从根本上不同于之前常用的借助 定位、浮动 的布局。从逻辑思路上来说,flex 布局具有宏观性,提供了一种对于页面中元素如何排布的框架,开发者不需要关注细节和进行额外的操作,就能使得一系列元素按约定的规则排列。而之前常用的借

  • 问题内容: 我们知道根目录是/,根据posix,还有另一个目录//与/不同。当使用ls /和ls //时,输出与stat相同,但是,如果cd /和cd //则输出不同,尽管目录内容相同。那真的让我感到困惑。有人得到答案了吗? 问题答案: 从Bash常见问题解答: