当前位置: 首页 > 知识库问答 >
问题:

告诉我为什么这不会导致超时错误(selenium 2 webdriver)?

郑宏朗
2023-03-14
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait

browser = webdriver.Firefox()

browser.get("http://testsite.com")

element = WebDriverWait(browser, 10).until(lambda browser : browser.find_element_by_id("element"))

element.click() # it actually goes to page http://testsite.com/test-page.html

print "Just clicked! And I'm expecting timeout error!"

new_element = WebDriverWait(browser, 0.1).until(lambda browser : browser.find_element_by_id("element"))

print "Too bad there's no timeout error, why?!"

好的,正如你所看到的,即使我将等待时间设置为0.1秒,仍然没有引发超时异常。当执行element.click()时,它不会阻塞,直到整个页面加载完毕,这就是为什么只是单击!我期待超时错误!出现了,令我惊讶的是,new_element=WebDriver等待(浏览器,0.1)。直到(lambda浏览器:browser.find_element_by_id(元素))等到整个页面加载。如果使用隐式等待,则会得到相同的结果。

我的观点是,有时候在你点击一个元素之后,可能会因为一个坏的代理而需要几个小时才能加载一个页面,而且你显然不想等待那么长时间,你想要的是一个超时异常。在这种情况下,您将如何使其工作?

共有2个答案

姬宝
2023-03-14

webdriver wait上的Until方法会在指定的时间段内忽略元素not found异常和在指定条件下发生的其他异常。在给定的时间之后,如果元素不存在,则最初会得到一个无此类元素异常,如果处理“无此类元素”异常,则会得到一个超时异常(最好是在try-catch中)。

为了满足你的需要,你可以尝试一下这种方法-

-

孙翰墨
2023-03-14

当页面加载时,点击会有一个隐含的等待。有一项工作,目前仅在FirefoxDriver中完成,允许您设置Selenium等待页面加载的时间。

这可能会出现在Selenium 2.22 for Python中,一旦设置好,您的测试用例可能会失败

 类似资料:
  • 我有一个ColdFusion事件网关,有时会在以下行产生错误(其中Local.cur线程是数字1-5): 错误是: 消息:超时值为负。类型:java。lang.IllegalArgumentException 这是StackTrace: Java语言lang.IllegalArgumentException:java的超时值为负。lang.Object。在coldfusion上等待(本机方法)。运

  • 问题内容: 遇到一个错误地使用 而不是 在其代码中的人,它没有显示为编译错误。 是因为 是相同的 ? 问题答案: 没有编译错误,因为它是有效的(尽管相当无用) 一元运算符 ,其使用方式与以下方式相同: Java语言规范中的相关部分是Unary Plus运算符+(第15.15.3节) 。它指定调用一元运算会导致操作数的一元数值提升(第5.6.1节)。这意味着: * 如果操作数是编译时类型的,,,或,

  • 我试图解决这个问题:第三个最大数量 但我犯了这个错误 第4行:Char 37:运行时错误:有符号整数溢出:-9223372036854775808-10不能在类型“long long”(solution.cpp)摘要中表示:UndefinedBehaviorSanitizer:undefined behavior prog_joined。cpp:13:37 这是我的代码 有人能告诉我这个错误到底意

  • 所以浮点运算是不精确的,但这并不能完全解释这里发生的事情:

  • 我已经花了一个多小时试图解决这个问题,但我什么都没做。 当我试图使用Maven编译我的项目时,我得到了以下错误: [错误]无法执行目标组织。阿帕奇。专家插件:maven assembly插件:2.2-beta-5:single(默认cli)在GankALane项目上:无法解析mojo org的配置。阿帕奇。专家插件:maven assembly插件:2.2-beta-5:单参数存档:在组织中找不到

  • 如图所示,我在主函数之前定义了哈希函数,现在他却回答我“hash”不明确,我不理解