UI自动化

selenium

研发效能 可以通过技术的手段来提高测试效率

自动化测试的分类: UI自动化测试(前端自动化测试)-->selenium(框架&库&工具) API自动化测试 单元自动化测试

服务端测试开发领域(架构) 大数据测试开发领域 算法测试开发领域(离散数学,线性代数) 专项测试开发领域

功能测试---》自动化测试---》测试开发(前端&架构&MQ&容器化)--->功能测试 测试开发=测试思维+开发的技术+质量管理体系

自动化测试:

可以理解为通过一定的技术手段,操作机器来得到人的模拟操作

目的&意义:

随着产品的完善,需要回顾验证的测试点越来越多,这个时候我们可以通过自动化测试的技术的手段,把 需要回归的测试点中,可以使用自动化测试实现的部分实现,那么这样,我们需要回归测试的点就会减少,已实现的 部分可以一劳永逸的执行。

 

 

环境搭建步骤: 1、安装selenium的第三方的库,pip3 install selenium

                          2、安装chrome的浏览器           https://www.google.cn/chrome/index.html

                          3、下载浏览器对应的驱动

 

 

下载浏览器对应的驱动

 

 

 

 

找到自己浏览器的版本

 

 

 在http://chromedriver.storage.googleapis.com/这里找到自己的版本

 

打开后找到自己需要的下载解压到Python的目录下

 

 

 

 打开显示

 

 

 

 就说明安装好了。

 

 元素定位

元素定位从大的分类而言,分为两种:
1、单个元素的定位
2、多个元素的定位
当元素属性的ID,name等完全一致的时候,那么这个时候,你发现无法使用
单个元素定位的方式来解决,那么可以使用多个元素定位的方式来进行
解决。思路:
获取元素的属性,其实是一个列表,看我们被定位的目标属性是在
第几位,那么就使用索引

右击检查得到下图获取我们需要的信息

获取到我们需要的信息后

from selenium import webdriver
import time as t

#指定被测的浏览器,并对webdriver进行实例化
driver=webdriver.Chrome()
#导航到被测的网址
driver.get('http://www.baidu.com/')   被测的网址
t.sleep(2)
driver.find_element_by_id('kw').send_keys('')    上一步得到的信息,这里可以是ID,name或者class
t.sleep(5)
driver.find_element_by_id('su').click()
t.sleep(15)
driver.quit()

 

 

 

 如果上面得到的信息无法定位这时就用XPath(有数字、空格都不行),获取方法:

右击选择Copy-->CopyXPath

driver=webdriver.Chrome()
#导航道被测的网址
driver.get('http://www.baidu.com/')
t.sleep(2)
driver.find_element_by_xpath('//*[@id="kw"]').send_keys('')
t.sleep(5)
driver.find_element_by_xpath('//*[@id="su"]').click()
t.sleep(15)
driver.quit()

当获取到的ID,name  class和XPath都无法进行定位时,就使用css

 

 

当XPath有数字、空格都无法定位,这时要使用fullXPath

 

获取到css

driver=webdriver.Chrome()
#导航道被测的网址
driver.get('http://www.baidu.com/')
t.sleep(2)
driver.find_element_by_css_selector('#kw').send_keys('')
t.sleep(5)
driver.find_element_by_css_selecto('#su').click()
t.sleep(15)
driver.quit()

 超链接

精确

driver=webdriver.Chrome()
#导航道被测的网址
driver.get('http://www.baidu.com/')
t.sleep(2)
driver.find_element_by_link_text('新闻').click()
t.sleep(15)
driver.quit()

 模糊

driver=webdriver.Chrome()
#导航道被测的网址
driver.get('http://www.baidu.com/')
t.sleep(2)
driver.find_element_by_partial_link_text('').click()
t.sleep(15)
driver.quit()

 tag

 

 

右击检查打开源代码可以发现搜索输入框input是第8位所以它的索引位置是7,现在通过索引来进行定位代码为:

 

 

 1 driver=webdriver.Chrome()
 2 driver.get('http://www.baidu.com/')
 3 driver.maximize_window()
 4 t.sleep(2)
 5 tags=driver.find_elements_by_tag_name('input')
 6 tags[7].send_keys('第二搞峰')
 7 t.sleep(2)
 8 driver.find_element_by_id('su').click()
 9 t.sleep(1)
10 driver.quit()
View Code

 

posted @ 2021-12-01 18:55  晨^O^黎  阅读(246)  评论(0)    收藏  举报