Webdriver忽略等待 - Firefox,Python

时间:2014-11-25 20:19:35

标签: python firefox selenium-webdriver webdriver wait

最近我的操作系统改为Debian Wheezy(KDE)我的webdriver, 表现得很奇怪。 (在python 2.7中为firefox编写,所有模块都是最新的。)

它完全忽略wait命令,例如implicitly_wait()。 如果严格需要等待访问,这是非常有问题的 加载网页元素。

一个肮脏的解决方法是使用time.sleep(),这是有用的,但是 当然不是如何使用webdriver。

以下代码举例说明了我的问题:

from selenium import webdriver
import time

driver = webdriver.Firefox()

driver.get('http://www.google.com')

tc = time.clock()
tw = time.time()

driver.implicitly_wait(60)  # should halt here for 60s

print "CPU time: ", time.clock() - tc
print "Wall time: ", time.time() - tw

driver.quit()

脚本运行结束时没有任何错误消息 等待语句完全被忽略。

输出:

CPU time:  0.0
Wall time:  1.1845741272

我对这种神秘的行为或任何起点都没有解释 寻找答案。

因此,我热烈欢迎任何建议或解决方案。 谢谢!

1 个答案:

答案 0 :(得分:1)

不,implicitly_wait()在您调用它时不会停止/停止执行。每个会话调用一次并设置selenium查找元素或执行命令时使用的隐式超时,引自documentation

  

implicitly_wait(time_to_wait)

     

设置粘滞超时以隐式等待找到元素,   或完成命令。此方法只需要调用一次   每节课。要设置execute_async_script调用的超时,请参阅   set_script_timeout。

我同意方法名称有点令人困惑,set_implicit_timeout()可能是更好的选择。

另见: