最近我的操作系统改为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
我对这种神秘的行为或任何起点都没有解释 寻找答案。
因此,我热烈欢迎任何建议或解决方案。 谢谢!
答案 0 :(得分:1)
不,implicitly_wait()
在您调用它时不会停止/停止执行。每个会话调用一次并设置selenium查找元素或执行命令时使用的隐式超时,引自documentation:
implicitly_wait(time_to_wait)
设置粘滞超时以隐式等待找到元素, 或完成命令。此方法只需要调用一次 每节课。要设置execute_async_script调用的超时,请参阅 set_script_timeout。
我同意方法名称有点令人困惑,set_implicit_timeout()
可能是更好的选择。
另见: