Selenium3 Python3 Web自动化测试从基础到项目实战之一启动不同的浏览器及配置
在web自动化中目前selenium作为底层的自动化测试是目前运用最广的,但是各个公司都会在这个基础之上进行修改。从今天开始我们就慢慢从low代码一步一步的学习框架知识。
首先当我们测试环境有了之后我们需要做得就是去配置我们的driver,这里的driver你可以理解为就是我们脚本和浏览器之间的桥梁。在selenium里面一些简短的教程会这样写:
#coding=utf-8
from selenium import webdriver
driver = webdriver.Chrome()
有的人这样写了之后会发现无法运行,直接给出了下面的提示错误:
Traceback (most recent call last):
File "e:xxxxx/blog.py", line 3, in <module>
driver = webdriver.Chrome()
File "D:\python\lib\site-packages\selenium-3.11.0-py3.6.egg\selenium\webdriver\chrome\webdriver.py", line 68, in __init__
self.service.start()
File "D:\python\lib\site-packages\selenium-3.11.0-py3.6.egg\selenium\webdriver\common\service.py", line 83, in start
os.path.basename(self.path), self.start_error_message)
selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH. Please see https://sites.google.com/a/chromium.org/chromedriver/home
这是一个很常见的错误,根据提示“'chromedriver' executable needs to be in PATH 我们只需要把chromedriver.exe这个文件的路径添加到环境变量中就可以了,那什么是chromedriver.exe,完全不知道。selenium自动化不是只需要selenium就可以了么?为什么要这个chromedriver?其实在selenium2中默认的是使用firefox的浏览器驱动,selenium2也会自带他的驱动,但是在selenium3之后就不会自带了,那么就需要自己去官网下载,我们这里使用的是谷歌浏览器,那么就需要chromedriver的驱动。好吧去下载。
chromedriver淘宝的下载地址:https://npm.taobao.org/mirrors/chromedriver/ 这里可以自己选择不同的版本。
但是当大家下载了运行又会发现一个问题有时候无法运行,特别是java版本,为什么呢?因为你chromedriver的版本和浏览器版本不对应。这个可以查看每个chromedriver版本更新的日志,及兼容版本。

在上图中我们可以清楚的知道那些版本对应哪个版本浏览器。这个时候我们就轻松解决浏览器启动问题了。
如果我们需要启动不同的浏览器那么只需要使用webdriver调用不同的浏览器方法就可,但是还是需要去下载各自的驱动,启动方法:
#coding=utf-8
from selenium import webdriver
driver = webdriver.Chrome()
driver2 = webdriver.Firefox()
driver1 = webdriver.Edge()
这样我们就启动了不同的浏览器。
这个时候只需要我们去写需要打开的网址就可以:
#coding=utf-8
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("http://www.5itest.cn/register")
Selenium3 Python3 Web自动化测试从基础到项目实战之一启动不同的浏览器及配置的更多相关文章
- Selenium3 Python3 Web自动化测试从基础到项目实战之二浏览器的不同设置
		
在前面一个章节我们知道了如何通过webdriver去初始化我们得driver,然后我们只需要通过driver就能够去做我们得自动化,首先我们知道我们需要知道得是当我们有driver之后,我们剩下得就是 ...
 - selenium3 web自动化测试框架 三:项目实战中PO模型的设计与封装
		
po模型设计思想 Page Object 模式主要是将每个页面设计为一个class,其中包含页面中的需要测试的元素(按钮,输入框,标题等),这样在Selenium测试页面中可以通过调取页面类来获取页面 ...
 - 18年selenium3+python3+unittest自动化测试教程(下)
		
第六章 自动化测试进阶实战篇幅 1.自动化测试实战进阶之网页单选性别资料实战 简介:讲解使用selenium修改input输入框和单选框 2.自动化测试之页面常见弹窗处理 简介:讲解使用seleniu ...
 - 妙味WEB前端开发全套视频教程+项目实战+移动端开发(99G)
		
一共99GB的视频教程,全部存于百度网盘中,13个栏目,每个栏目里还划分有独立的小栏目 最基本的web前端学习介绍,到项目实战,再到移动端的开发,真正彻底掌握前端开发的精髓: 视频教程在线预览:(百度 ...
 - 18年selenium3+python3+unittest自动化测试教程(上)
		
第一章 自动化测试课程介绍和课程大纲 1.自动化测试课程介绍 简介:讲解什么是自动化测试和课程大纲讲解,课程需要的基础和学后的水平 python3.7+selenium3 pycharm 第二章自动化 ...
 - web 自动化测试 selenium基础到应用(目录)
		
第一章 自动化测试前提及整体介绍 1-1功能测试和自动化测试的区别 1-2自动化测试流程有哪些 1-3自动化测试用例和手工用例的区别 1-4 自动化测试用例编写 1-5 selenium的优势以及 ...
 - [Selenium3+python3.6]自动化测试3-八种元素元素定位(Firebug和firepath)
		
参考http://www.cnblogs.com/yoyoketang/p/6123890.html #coding=utf-8 from selenium import webdriverdri ...
 - 零基础学习Python web开发、Python爬虫、Python数据分析,从基础到项目实战!
		
随着大数据和人工智能的发展,目前Python语言的上升趋势比较明显,而且由于Python语言简单易学,所以不少初学者往往也会选择Python作为入门语言. Python语言目前是IT行业内应用最为广泛 ...
 - 关于Selenium3+python3.6自动化测试中iframe切换
		
本篇内容主要表述以下几个问题: 1.iframe 这个是什么? 2.定位iframe 标签时遇到的几个报错总结. 3.显示等待与隐示等待的原理与优缺点. 4.无name,ID可变情况下的处理方式 5. ...
 
随机推荐
- hdu 3518 Boring counting 后缀数组 height分组
			
题目链接 题意 对于给定的字符串,求有多少个 不重叠的子串 出现次数 \(\geq 2\). 思路 枚举子串长度 \(len\),以此作为分界值来对 \(height\) 值进行划分. 显然,对于每一 ...
 - shell script timer and 無限迴圈
			
while : do echo " infinite loop" sleep 2; done
 - Process 'command 'D:\IDE\SDK\build-tools\28.0.3\aapt.exe'' finished with non-zero exit value 1问题分析解决
			
当在Android Studio的XML布局文件写错属性或单词拼错时,会出现如下所列的错误,而AS编辑器又没任何提示, 再次点击下方的"Run build",也只能得到:app:p ...
 - Java 获取指定日期的方法总结
			
原文地址:http://bdcwl.blog.163.com/blog/static/765222652009104171521/ SimpleDateFormat sdf = new SimpleD ...
 - koa2 从入门到进阶之路 (三)
			
之前的文章我们介绍了一下 koa 路由,get 传值,动态路由,本节我们看一下 koa 中间件 以及 koa 中间件的洋葱图执行流程. 一.什么是 Koa 的中间件 通俗的讲:中间件就是匹配路由之前或 ...
 - Product of Array Except Self - LeetCode
			
Given an array of n integers where n > 1, nums, return an array output such that output[i] is equ ...
 - setlocale 与 mbstowcs 的问题
			
C++的字符串转换函数mbstowcs使用时容易产生bug... rapidxml_utils.hpp 的file(const char*filename)函数内会异常宕机... 需要在函数最开始添加 ...
 - java.sql.Timestamp类型
			
如果想向数据库中插入日期时间的话,可以用java.sql.Timestamp类 一个与 java.util.Date类有关的瘦包装器 (thin wrapper),它允许 JDBC API 将该类标识 ...
 - json字符串调整
			
碰到比较长的json字符串,不知道哪里出错时,可以找一个正确的json字符串,慢慢把它调整到需要的形式,而不是去分析,字符串太长,一直看,效率太慢,容易看花眼.
 - 一种全新的自动调用ajax方法
			
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http ...