一、介绍&安装
1.介绍
Selenium 是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera等。这个工具的主要功能包括:测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。测试系统功能——创建回归测试检验软件功能和用户需求。支持自动录制动作和自动生成 .Net、Java、Perl等不同语言的测试脚本。
2. Selenium工具
1. Selenium IDE:Selenium 集成开发环境(IDE)是一个Firefox插件,可以让测试人员跟着,需要测试的工作流程,以记录他们的行为。
2. Selenium RC:Selenium远程控制(RC)为旗舰测试框架,它允许多个简单的浏览器动作和线性执行。它使用的编程语言,如Java,C#,3/ PHP,Python和Ruby和Perl的强大功能来创建更复杂的测试。
3. Selenium Webdriver:Selenium的webdriver前身是Selenium RC,直接发送命令给浏览器,并检索结果。
4. Selenium Grid:Selenium网格用于运行在不同的机器,不同的浏览器同时以最小化执行时间的并行测试的工具。
3. 如何安装
使用pip安装即可
pip3 install selenium
由于测试环境在Chrome上完成,还需要下载一个chromedriver的包,在这里https://www.seleniumhq.org/download/
之后将这个包copy到项目里,在测试开始前运行下面3行代码即可
chromedriver = "/Users/Bo/autoTest/UITest/chromedriver"
os.environ["webdriver.chrome.driver"] = chromedriver
driver = webdriver.Chrome(chromedriver)
二、基本概念介绍
1. ActionChains(动作)
Action常用来模拟鼠标的行为,比如点击,双击,拖拽等行为,使用下面的语句导入到项目中
from selenium.webdriver.common.action_chains import ActionChains
大概有↑这么多方法,这里选择几个常用的介绍一哈
click(on_element=None) ——单击鼠标左键
click_and_hold(on_element=None) ——点击鼠标左键,不松开
context_click(on_element=None) ——点击鼠标右键
double_click(on_element=None) ——双击鼠标左键
drag_and_drop(source, target) ——拖拽到某个元素然后松开
drag_and_drop_by_offset(source, xoffset, yoffset) ——拖拽到某个坐标然后松开
key_down(value, element=None) ——按下某个键盘上的键
key_up(value, element=None) ——松开某个键
move_by_offset(xoffset, yoffset) ——鼠标从当前位置移动到某个坐标
move_to_element(to_element) ——鼠标移动到某个元素
move_to_element_with_offset(to_element, xoffset, yoffset) ——移动到距某个元素(左上角坐标)多少距离的位置
perform() ——执行链中的所有动作
release(on_element=None) ——在某个元素位置松开鼠标左键
send_keys(*keys_to_send) ——发送某个键到当前焦点的元素
send_keys_to_element(element, *keys_to_send) ——发送某个键到指定元素
2. Assertion(断言)
断言是对自动化测试的异常情况的判断,用以判断结果用例是否通过,测试的实际结果于预期是否一致。常用的断言方法有↓
assertEqual(a,b) ——比较a是否等于b
assertNotEqual(a,b) ——a!=b
asserTrue(x) ——检验x是否为真
asserFalse(x) ——检验x是否为假
assertIs(a,b) ——a is b
assertIsNot(a,b) ——a is not b
assertIsNone(x) ——x is None
assertIsNoneNot(x) ——x is not None
assertIn(a,b) ——a in b
assertInNot ——a not in b
assertIsInstance(a,b) ——instance(a,b)
assertNotIsInstance(a,b) ——not isinstance(a,b)
3. Element Locators(元素定位器)
在做自动化ui测试的时候,要选择文本框,按钮等需要先找到元素,下面介绍几个常用的定位元素的方法
find_element_by_id ——根据标签id定位
find_element_by_name ——根据标签的name定位
find_element_by_xpath ——根据xpath定位
find_element_by_link_text ——通过文字链接定位,全部匹配
find_element_by_partial_link_text ——通过文字链接定位,部分匹配
find_element_by_tag_name ——根据标签名字定位
find_element_by_class_name ——根据class name定位
find_element_by_css_selector ——根据元素属性定位
4. Patterns(识别)
参考文章
https://www.cnblogs.com/cnkai/p/7538267.html
https://www.cnblogs.com/alpha-go/p/6957298.html
http://www.cnblogs.com/mengyu/p/6876294.html