selenium+python+unittest实现自动化测试(入门篇)

文章来源地址:

https://blog.csdn.net/a836586387/article/details/88899936?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase

 1 #coding=utf-8
 2 
 3 #百度demo
 4 from selenium import webdriver
 5 import time
 6 #单元测试框架,使用该模块,我们可以对用例进行组织和运行,例如如下的BaiduTestCase类继承unittest.TestCase,该类执行会把test开头的方法当成一个测试用例去执行
 7 import unittest
 8 class BaiduTestCase(unittest.TestCase):
 9     def setUp(self):
10         print('开始执行测试用例:')
11         url = 'https://www.baidu.com'
12         self.driver = webdriver.Chrome()#选择谷歌浏览器
13         self.driver.get(url)#打开百度页面
14 
15     def test_bubutton(self):
16         self.driver.find_element_by_id('kw').clear()
17         self.driver.find_element_by_id('kw').send_keys('软件测试')#搜索框输入内容
18         self.driver.find_element_by_id('su').click()#点击百度按钮
19         time.sleep(2)
20         self.driver.save_screenshot('D:/baidu.png')#截图
21         
22     def tearDown(self):
23         print('一条用例执行完成。')
24         self.driver.quit()#退出浏览器
25         
26 if __name__=='__main__':
27     unittest.main()
28

三、熟悉一些常用的元素定位方法、操作方法
常用元素定位方法:
1、id定位: find_element_by_id()
举例:进入浏览器,按f12,定位元素id如下如步骤:

2、name定位: find_element_by_name()
3、class定位:find_element_by_class_name()
4、link定位:find_element_by_link_text()
5、partial_link定位:find_element_by_partial_link_text()
6、xpath定位:find_element_by_xpath()
7、CSS定位:find_element_by_css_selector()
操作方法:
clear 清除元素的内容
send_keys 模拟按键输入
click 点击元素
submit 提交表单
size 获取元素的尺寸
text 获取元素的文本
get_attribute(name) 获取属性值
location 获取元素坐标,先找到要获取的元素,再调用该方法
page_source 返回页面源码
driver.title 返回页面标题
current_url 获取当前页面的URL
is_displayed() 设置该元素是否可见
is_enabled() 判断元素是否被使用
is_selected() 判断元素是否被选中
tag_name 返回元素的tagName
context_click(elem) 右击鼠标点击元素elem,另存为等行为
double_click(elem) 双击鼠标点击元素elem,地图web可实现放大功能
drag_and_drop(source,target) 拖动鼠标,源元素按下左键移动至目标元素释放
move_to_element(elem) 鼠标移动到一个元素上
click_and_hold(elem) 按下鼠标左键在一个元素上
perform() 在通过调用该函数执行ActionChains中存储行为
send_keys(Keys.ENTER) 按下回车键
send_keys(Keys.TAB) 按下Tab制表键
send_keys(Keys.SPACE) 按下空格键space
send_keys(Kyes.ESCAPE) 按下回退键Esc
send_keys(Keys.BACK_SPACE) 按下删除键BackSpace
send_keys(Keys.SHIFT) 按下shift键
send_keys(Keys.CONTROL) 按下Ctrl键
send_keys(Keys.ARROW_DOWN) 按下鼠标光标向下按键
send_keys(Keys.CONTROL,‘a’) 组合键全选Ctrl+A
send_keys(Keys.CONTROL,‘c’) 组合键复制Ctrl+C
send_keys(Keys.CONTROL,‘x’) 组合键剪切Ctrl+X
send_keys(Keys.CONTROL,‘v’) 组合键粘贴Ctrl+V

unittest常用断言方法:
assertLocation(判断当前是在正确的页面)、
assertTitle(检查当前页面的 title 是否正确)、
assertValue(检查 input 的值, checkbox 或 radio,有值为”on”无为”off”)、
​ assertSelected(检查 select 的下拉菜单中选中是否正确)、
​ assertSelectedOptions(检查下拉菜单中的选项的是否正确)、
​ assertText(检查指定元素的文本)、
​ assertTextPresent(检查在当前给用户显示的页面上是否有出现指定的文本)、
​ assertTextNotPresent(检查在当前给用户显示的页面上是否没有出现指定的文本)、
​ assertAttribute(检查当前指定元素的属性的值)、
​ assertTable(检查 table 里的某个 cell 中的值)、
​ assertEditable(检查指定的 input 是否可以编辑)、
​ assertNotEditable(检查指定的 input 是否不可以编辑)、
​ assertAlert(检查是否有产生带指定 message 的 alert 对话框)、
​ verifyTitle验证预期的页面标题。
​ ​verifyTextPresent验证预期的文本是否在页面上的某个位置。
​ verifyElementPresent验证预期的 UI 元素,它的 HTML 标签的定义,是否在当前网页上。
​ verifyText核实预期的文本和相应的 HTML 标签是否都存在于页面上。
​ verifyTable验证表的预期内容。
​ waitForPageToLoad 暂停执行,直到预期的新的页面加载

猜你喜欢

转载自www.cnblogs.com/jenny-jenny/p/13160806.html
今日推荐