selenium2自动化测试学习笔记(一)
从这周开始学习自动化测试,采用selenium2,目标是在本月学习到appium,并测试公司的真实APP项目。
系统环境:win10
语言:python3.6.4
工具:selenium2
IDE:python IDLE
浏览器(需下载相对应的webdriver):
IE11
Chrome65.0.3325.146
Firefox58
- Windows下载安装python
基础书籍是虫师的selenium2自动化测试实战(基于python语言)。
下载了python3.6.4,https://www.python.org/
在安装python的时候一定要自定义,然后选择add path,否则需要手工添加环境变量
安装好后,打开cmd,输入 python,显示版本情况,说明安装成功。
python3.6.4已经默认安装了pip,在cmd中使用pip install selenium安装selenium。
- webdriver驱动下载
原文链接:https://www.cnblogs.com/feiquan/p/8531686.html
IE11的Webdriver下载:
http://dl.pconline.com.cn/download/771640-1.html
链接:https://pan.baidu.com/s/13TTyXGNaG5cpSNdl1k9ksQ 密码:2n9n
Chrome65.0.3325.146的webdriver驱动下载:
链接:https://pan.baidu.com/s/1gv-ATOv_XdaUEThQd5-QtA 密码:dzh2
多版本:http://chromedriver.storage.googleapis.com/index.html
Firefox58的webdriver驱动下载
链接:https://pan.baidu.com/s/1RATs8y-9Vige0IxcKdn83w 密码:l41g
将驱动放到安装目录下的scripts文件夹下,我的路径是C:\Python\Python36\Scripts
- 测试代码:打开浏览器,跳转百度,搜索selenium2
# conding=unicode
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import sys #加载
#driver = webdriver.Firefox()
driver = webdriver.Chrome()
#driver = webdriver.Ie() #打开百度
driver.get("http://www.baidu.com") #搜索Selenium2 try:
kw = driver.find_element_by_id("kw")
su = driver.find_element_by_id("su") except:
print ('element does not exist') print("kw is " , kw.is_enabled() ) #判断元素是否有效 assert "百度" in driver.title
kw.send_keys('selenium2') su.click() #退出
#driver.quit()
- geckodriver
使用以上代码,火狐毫无问题
- IEDriverServer 报错
driver = webdriver.Ie()
driver.get("http://www.baidu.com")
以上代码报This is the initial start page for the WebDriver server
解决方法:将ie浏览器安全下所有选项的“启动保护模式”全部不勾选
接着又碰到一个错误:Unexpected error launching Internet Explorer. Browser zoom level was set to 200%. It should be set to 100%
调整IE右下角的缩放比就好了,回到100%才行,真坑
解决方案原文:http://blog.csdn.net/funi16/article/details/9036753
以上问题解决后,接下去的代码正常打开,无问题
- chromeDriver 报错
使用以上代码只能打开百度窗口,但是在kw.send_keys时却报错。
至今没有解决。不知道有没有人遇到,无语了。
selenium2自动化测试学习笔记(一)的更多相关文章
- selenium2自动化测试学习笔记(五)-参数化编程,自动登陆网易QQ邮箱
学习python下使用selenium2自动测试第6天,参数化编程这节课花了两天时间. 本次编程主要时间是花在熟悉python上 知识点or坑点: 1.读取txt.xml.csv等文件存储的账号.密码 ...
- selenium2自动化测试学习笔记(四)
今天是学习selenium2第四天.总结下今天的学习成果,自动登录网易邮箱并写信发送邮件. 知识点or坑点: 1.模块化编写测试模块(类似java里的抽象方法,js的函数编写) from 包名 imp ...
- selenium2自动化测试学习笔记(三)
今天是学习selenium的第三天,今天的主题是自动登录126邮箱. 今天总结碰到的坑有三个: 1.frame内元素抓取,使用driver.switch_to.frame(frameId)方法切换锁定 ...
- selenium2自动化测试学习笔记(二)
chromedriver报错问题解决了,真是无语 是因为chromedriver与浏览器版本不一致 http://chromedriver.storage.googleapis.com/index.h ...
- python自动化测试学习笔记-10YAML
之前学习的编写测试用例的方法,都是从excel中编写接口的测试用例,然后通过读取excel文件进行接口自动化测试,这种方式我们叫做数据驱动的方式,由于excel操作起来不灵活,无法实现关联关系的接口测 ...
- python自动化测试学习笔记-1
一.什么是自动化 自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程.直白的就是为了节省人力.时间或硬件资源,提高测试效率,便引入了通过软件或程序自动化执行测试用例进行测试: 二.python ...
- Robot Framework与Web界面自动化测试学习笔记:定位到新窗口
在页面操作中,有时会需要打开新的窗口(新的网页不在当前窗口显示,而是在新的tab页显示), 比如利用 window.open("newurl") 或者 <a href=& ...
- Robot Framework与Web界面自动化测试学习笔记:简单例子
假设环境已经搭建好了.这里用RIDE( Robot Framework Test Data Editor)工具来编写用例.下面我们对Robot Framework简称rf. 我们先考虑下一个最基本的登 ...
- ios UI自动化测试学习笔记
一.一些注意事项: 1.做自动化测试时注意如果是真机话首先要设置不锁屏. 2.自动化测试过程中如果程序后台或崩溃了.脚本运行将会暂停,直到程序再次回到前台. 3.必须明确指定关闭自动测试,测试完成或中 ...
随机推荐
- freemarker处理哈希表的内建函数
freemarker处理哈希表的内建函数 1.简易说明 (1)map取值 (2)key取值 2.实现示例 <html> <head> <meta http-equiv=& ...
- 最新数组方法(包括es6)
整理目前所用过的数组方法,学习了新增的es6方法. 1 arr.push() 从后面添加元素,返回值为添加完后的数组的长度 let arr = [1,2,3,4,5] console.log(arr. ...
- debug和release下PostThreadMessage的异同
MFC中创建线程分为工作线程和UI线程.其中UI线程可以通过继承CWinThread进行创建. 创建函数如下: CWinThread *m_pRecogThread;//语音识别线程 m_pRecog ...
- python爬取youtube视频 多线程 非中文自动翻译
声明:我写的所有文章都是发在博客园的,我看到其他复制粘贴过去的 连个出处也不写,直接打上自己的水印...真是没的说了. 前言:前段时间搞了一些爬视频的项目,代码都写好了,这里写文章那就在来重新分析一遍 ...
- 谈谈使用Redis缓存时批量删除的几种实现
前言 在使用缓存的时候,我们时不时会遇到这样一个需求,根据缓存键的规则去批量删除这些数据,比较常见的就是按前缀去删除. 举个简单的例子,Redis中现在有几百个商品的数据,这些数据的key值是有一定规 ...
- 如何控制Bean对象的作用域,默认作用域是什么
1.可以通过<bean>定义的scope属性指定Bean对象的作用域或者使用注解@Scope指定Bean对象的作用域. 2.默认Bean对象的作用域为singleton.
- Luogu345: [POI2007]POW-The Flood
题意 见luogu Sol 贪心 从小到大枚举高度,把小于等于这一高度的相邻格子用并查集合并 那么这个集合内的所有格子都一定可以由这个集合内的一个最低点抽完水 那么合并之后(一定要在合并之后) 判断这 ...
- 使用非直接缓冲区与直接缓冲区进行文件的复制(基于Channel)
一.利用通道完成文件的复制(非直接缓冲区) long start = System.currentTimeMillis(); FileInputStream fis = new FileInp ...
- 开发中使用Gson的实例(时间格式错误解决方法)
...... // 通过GSON解析,使用4个实体类来接受(TotalResponse.TradeRateResponse.TradeRatess.TbTradeRates) GsonBuilder ...
- java--抽象类实例(包含静态内部抽象类)
静态内部抽象类可以被继承. public class testfather { public static void main(String[] args) { person.talk2 a = ne ...