一.ui自动化的概念
自动化测试就是通过代码或者是工具模拟人的行为来进行对WEB(APP)来进行操作。
selenium:是WEB的UI测试框架,可以和主流的编程语言(Python,Java,Net,PHP,JavaScript)整合来测试WEB系统,同时也是支持主流的浏览器(IE,Firefox,Chrome)。Selenium通过driver的驱动方式来操作浏览器,对浏览器进行各种交互式的验证(点击,输入,下拉框选项。。。)
elenium环境搭建步骤:
1、按照selenium :pip install selenium
2、安装Chrome浏览器
3、下载driver的驱动,并且把数据配置到path的环境变量
A、driver的驱动要与浏览器的版本完全匹配(99%)
B、把driver的应用程序放在python的安装目录下
在selenium框架中,操作元素定位使用的类是By,里面方法有8种,那么也就是说,定位页面的元素属性方法有8种,分别是:
1 """引入selenium自动化测试工具,添加webdriver方法和By方法 2 from selenium import webdriver 3 from selenium.webdriver.common.by import By
1,ID:类似身份证,在前端中,规定id为唯一性
driver.find_element(By.ID,'kw')
2,NAME:类似于人名
driver.find_element(By.NAME,'DW')
3,CLASS_NAME:class指定元素的类名
driver.find_element(By.CLASS_NAME,'kw')
4,TAG_NAME:通过元素的签名来定位
list1=driver.find_elements_by_tag_name('input') list1[7].send_keys('4399') t.sleep(5)
5,XPATH:基于路径
当id为动态的时候,使用full xpath
driver.find_element(By.XPATH,'kw')
6,LINK_TEXT:超链接
driver.find_element(By.LINK_TEXT,'视频')
7,PARTIAL_LINK_TEXT:超链接的补充
driver.find_element(By.PARTIAL_LINK_TEXT,'视频')
8,CSS_SELECTOR:基于样式
css方法时查看对应属性
driver.find_element(By.CSS_SELECTRO,'kw')
二,常用的方法
1,获取网址
print(driver.current_url)#获取网址
2,获取源代码
print(driver.page_source)#获取源代码
3,获取标题
print(driver.title)#获取标题(特性方法)
4,前进与后退
driver.back():后退 driver.forward:前进
5,多窗口的处理
driver=webdriver.Chrome() driver.get('https://mail.sina.com.cn/') nowHandler=driver.current_window_handle t.sleep(3) driver.find_element(By.LINK_TEXT,'注册').click() t.sleep(3) allHandlers=driver.window_handles for handler in allHandlers: if handler!=nowHandler: #切换新的窗口 driver.switch_to.window(handler) driver.find_element(By.NAME,'email').send_keys('dsada') t.sleep(3) driver.close() t.sleep(3) driver.switch_to.window(nowHandler) driver.find_element(By.ID,'freename').send_keys('sadasda') t.sleep(3)
6,清空
driver=webdriver.chrome() driver.get(http://www.baidu.com) driver.find_element(By.NAME,'k').clear() driver.quit()
7,get_attribute():获取元素属性的值
driver=webdriver.Chrome() driver.get('https://www.baidu.com/') sd=driver.find_element(By.ID,'kw') sd.send_keys('dasda') t.sleep(3) print(sd.get_attribute('value')) t.sleep(3) driver.quit()
8, is_enabled:查看是否可编辑
is_selected:查看是否可勾选
is_displayed:查看是否可隐藏
三种方法具体操作相同,现就举一个例子:三种都是判断,返回True and False
driver=webdriver.Chrome() driver.get('https://www.baidu.com/') sd=driver.find_element(By.ID,'kw') t.sleep(3) print(sd.is_enabled()) t.sleep(3) driver.quit()
三,iframe学习
进入iframe的三种方法
1,ID
2,NAME
3,索引
1,ID方法
driver.switch_to.frame('login_frame')
2,NAME方法
driver.switch_to.frame('login_frame')
3,索引的方法
driver.switch_to.frame('1')