[bug] 验证selenium的显式和隐式等待而发现的一个低级错误
隐式等待:如果在规定时间内网页加载完成,则执行下一步,否则一直等到时间截止,然后执行下一步。按照这说法举了个例子为啥不会按照预期执行了,难不成是这个定义有问题(~~~~~直接否定不是定义的问题,相信它们不错,先从自身找问题)
代码如下:
# -*- coding:utf-8 -*-
'''
Created on Oct 17, 2018 @author: SaShuangYiBing Comment:
'''
from selenium import webdriver
driver = webdriver.Firefox()
driver.implicitly_wait(10)
driver.get("https://www.baidu.com")
print (driver.current_url)
错误如下:
Traceback (most recent call last):
File "D:\WorkSpace3\EXAMPLE\Selenium_ex\debug.py", line 11, in <module>
driver.implicitly_wait(10)
File "C:\Program Files\Python36\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 912, in implicitly_wait
'implicit': int(float(time_to_wait) * 1000)})
File "C:\Program Files\Python36\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "C:\Program Files\Python36\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
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 驱动,仍然可以在代码中启动浏览器也可以加载网页并进行元素定位和操作???
[bug] 验证selenium的显式和隐式等待而发现的一个低级错误的更多相关文章
- dll的加载方式主要分为两大类,显式和隐式链接
之前简单写过如何创建lib和dll文件及简单的使用(http://blog.csdn.net/betabin/article/details/7239200).现在先再深入点写写dll的加载方式. d ...
- 显式与隐式(ExplicitAndImplicit)
显式与隐式(Explicit And Implicit) 1.概念 1.1 显式 实现的单词Explicit意思是清楚的.明确的.详述的.所以,显式的“显”是指明显且清楚的实现,相对于接口来说,就是明 ...
- 【RS】CoupledCF: Learning Explicit and Implicit User-item Couplings in Recommendation for Deep Collaborative Filtering-CoupledCF:在推荐系统深度协作过滤中学习显式和隐式的用户物品耦合
[论文标题]CoupledCF: Learning Explicit and Implicit User-item Couplings in Recommendation for Deep Colla ...
- C++ 不具有继承关系的类之间的显式,隐式转换 2013-07-11 15:41
好久没有写blog了,今天在学习c#的时候看到某一章节 讲类的隐式与显式转换.特此留笔,以供后续参考之用. 关于显式,隐式转换有些争论,说什么不建议隐式转换.但是个人认为非必要,如果有良好的基础书写基 ...
- Scala中的Implicit(隐式转换,隐式参数,隐式类)
文章来自:http://www.cnblogs.com/hark0623/p/4196452.html 转发请注明 代码如下: /** * 隐式转换 隐式参数 隐式类 */ //隐式转换 class ...
- 实例理解scala 隐式转换(隐式值,隐式方法,隐式类)
作用 简单说,隐式转换就是:当Scala编译器进行类型匹配时,如果找不到合适的候选,那么隐式转化提供了另外一种途径来告诉编译器如何将当前的类型转换成预期类型.话不多说,直接测试 ImplicitHel ...
- Selenium之显式、隐式等待
selenium自动化页面元素存在异常发生的原因有以下几点: ① 页面加载时间过慢,需要查找的元素程序已经完成,但是页面还未加载成功.此时可以加载页面等待时间. ② 查找的元素没有在当前的iframe ...
- webdriver显式和隐式等待、强制等待
implicitly_wait() 方法是隐式等待,用来设置超时,一般把implicitly_wait()方法调用在加载测试地址后,等待所测试的应用程序加载WebDriverWait() 是显式等待, ...
- (转载)Android理解:显式和隐式Intent
Intent分两种:显式(Explicit intent)和隐式(Implicit intent). 一.显式(设置Component) 显式,即直接指定需要打开的activity对应的类. 以下多种 ...
随机推荐
- resin4.0.25 安装配置 及结合eclipse开发
resin4.0.25 安装配置 及结合eclipse开发 本文大部分内容是对官网的翻译,及自己配置后的一些体会. 一. 基于win ,resin基本安装1,安装jdk1.6或更高版本2,配置环境 ...
- synchronized锁住的是代码还是对象
不同的对象 public class Sync { public synchronized void test() { System.out.println("test start" ...
- EntityFramework附加实体
//0.0创建修改的 实体对象 Models.BlogArticle model = new BlogArticle(); model.AId = 12; model.ATitle = "新 ...
- Hibernate session中的createCriteria方法
在应用中获取session对象: Session session= HibernateUtil.getSession(); List list=session.createCriteria(Mete ...
- ELK日志分析平台系统CentOS7环境搭建和基本使用
一.搭建环境 系统环境:CentOS7 安装iptables:https://blog.csdn.net/momo_mutou/article/details/81739155 jdk1.8: ht ...
- MarkDown常用格式
常用格式 ** :加粗 <br> : 换行 > :可以用来引用文章,很漂亮. 可以展开的文件夹格式 <details> <summary>框架</sum ...
- cookie、localStorage、sessionStorage的区别
localStorage - 没有时间限制的数据存储 sessionStorage - 针对一个 session 的数据存储 共同点:sessionStorage.localStorage和cooki ...
- linux下怎么进入本机mysql
sudo /etc/init.d/mysql startmysql -u xxxx -p*****mysql >_
- Python 简单的远程执行命令
client端执行命令,server端返回命令结果 # server 端 import socket, subprocess sk = socket.socket() address=('127.0. ...
- pygame编组(精灵组)Group中的常用方法介绍
说明: 1.以下所用的Group均为Group类的对象实例 2.Group类是对AbstractGroup类的继承 sprite.py文档中描述如下: class Group(AbstractGrou ...