[bug] 验证selenium的显式和隐式等待而发现的一…

2018-10-19 06:17:51来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

隐式等待:如果在规定时间内网页加载完成,则执行下一步,否则一直等到时间截止,然后执行下一步。按照这说法举了个例子为啥不会按照预期执行了,难不成是这个定义有问题(~~~~~直接否定不是定义的问题,相信它们不错,先从自身找问题)

代码如下:

 1 # -*- coding:utf-8 -*-
 2 '''
 3 Created on Oct 17, 2018
 4 
 5 @author: SaShuangYiBing
 6 
 7 Comment: 
 8 '''
 9 from selenium import webdriver
10 driver = webdriver.Firefox()
11 driver.implicitly_wait(10)
12 driver.get("https://www.baidu.com")
13 print (driver.current_url)

错误如下:

 1 Traceback (most recent call last):
 2   File "D:\WorkSpace3\EXAMPLE\Selenium_ex\debug.py", line 11, in <module>
 3     driver.implicitly_wait(10)
 4   File "C:\Program Files\Python36\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 912, in implicitly_wait
 5     'implicit': int(float(time_to_wait) * 1000)})
 6   File "C:\Program Files\Python36\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
 7     self.error_handler.check_response(response)
 8   File "C:\Program Files\Python36\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
 9     raise exception_class(message, screen, stacktrace)
10 selenium.common.exceptions.WebDriverException: Message: timeouts

错误信息也出来,但也没用,也还是看不懂不知道是哪里有问题……——……

本着多对比才能知道好坏的道理,我尝试换了个 Chrome,运行正常了,不报错也正常运行了后面的代码,进一步证明先人们的结论是正确的。接下来就很明确了,问题10000%出在 firefox身上,找问题思路:

1、先确定firefox的版本号及是32/64bit    ----->是 62.0.3(64bit)

2、确认firefox驱动跟版本匹配关系  ----->根据操作系统要求下载firefox最新驱动

3、到驱动存放文件夹找原始驱动文件进行比对一下大小,确认驱动是否最新    -------->尼玛想骂人了,根本就没找到驱动,驱动哪去了~~~~~~~

4、新最新的 firefox 驱动放到驱动文件夹下,再次运行一次,哇靠成功了。----->所有的浏览器驱动我都统一放到:C:\Program Files\Python36\Scripts,省得放其它地方还要单独添加进环境变量中。

 

总结:

1、遇到问题,一定要先尝试多种方法进行问题的初步定界

2、养成编程好习惯,要不耻下问,随便到哪里去问(但前提是对别人工作不要有影响)

 

疑问:

1、为啥我没有添加这个 Firefox 驱动,仍然可以在代码中启动浏览器也可以加载网页并进行元素定位和操作???

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:长安居大不易--用大数据分析西安租房现状

下一篇:Python高级特性:切片