当先锋百科网

首页 1 2 3 4 5 6 7

WEB自动化底层原理:遵循W3C协议,通过接口去完成的。

一、适合自动化测试的项目:

参考以下几点:

(1)任务测试明确,不会频繁变动

(2)每日构建后的测试验证

(3)比较频繁的回归测试

(4)软件系统界面稳定,变动少

(5)需要在多平台上运行的相同测试案例、组合遍历型的测试,以及大量的重复任务

(6)软件维护周期长

(7)项目进度压力不太大

(8)被测软件系统开发较为规范,能够保证系统的可测试性

(9)具备大量的自动化测试平台

(10)测试人员具备较强的编程能力

举例:

# 做web自动化的流程
import time

from selenium import webdriver  # 导包
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()  # 生成了一个driver的对象

driver.get("http://novel.hctestedu.com/")  # 打开被测试的项目url

driver.maximize_window()  # 放大浏览器窗口

el = driver.find_element(By.XPATH, '//input[@name="searchKey"]')  # 通过xpath定位到了一个元素

# 通过selenium修改JS属性, 用来确定我定位的元素是什么?
driver.execute_script(
    "arguments[0].setAttribute('style',arguments[1]);",
    el,
    "border: 2px solid green;"  # 边框,green绿色
)

time.sleep(10)

二、八大元素定位介绍:

# 通过id进行元素定位搜索框
el = driver.find_element(By.ID, "searchKey")
# 通过name完成定位搜索框
el = driver.find_element(By.NAME, "searchKey")
# 通过class定位搜索框
el = driver.find_element(By.CLASS_NAME, "s_int")
# 通过tag_name定位搜索框
el = driver.find_element(By.TAG_NAME, "input")
# 通过link_text来定位搜索框
el = driver.find_element(By.LINK_TEXT, "ABCDEFG")
# 通过PARTIAL_LINK_TEXT来定位搜索框,模糊定位
el = driver.find_element(By.PARTIAL_LINK_TEXT, "ABCDEFG")
# 通过xpath来进行定位
# //div[@class='leftBox']/div/dl[@id='topBooks2']/dt/a  xpath的路径
# //div[@class='leftBox'] # 找一个div属性中class的值为leftBox的元素
# //div[@class='leftBox']/div/dl
# /html/body/div[2]/div[1]/div[1] # 绝对路径,企业中,千万不要用!!!
el = driver.find_element(By.XPATH,"//div[@class='leftBox']/div/dl[@id='topBooks2']/dt/a")

# 多属性定位
# //dl[@class="hot_recommend" and @id="topBooks2"]/dt/a

# 通过属性的模糊值来进行定位
# channelWrap channelBanner cf
el = driver.find_element(By.XPATH, '//div[starts-with(@class,"cha")]')

# //*[@id="searchKey"]
# /html/body/div[1]/div[2]/div/div[1]/div/input # 绝对路径,企业中,千万不要用!!!

# 通过文本定位元素
el = driver.find_element(By.XPATH, '//a[text()="ABCDEFG"]')

# 模糊查询
el = driver.find_element(By.XPATH, "//a[starts-with(text(),'ABCDEFG')]")

# 通配符
# //*[@id="searchKey"]
el = driver.find_element(By.XPATH, '//*[@id="searchKey"]')

# CSS定位
# id
el = driver.find_element(By.CSS_SELECTOR, "input#searchKey")
# class
el = driver.find_element(By.CSS_SELECTOR, "input.s_int")

# 通过元素兄弟元素定位元素, CSS_SELECTOR
el = driver.find_element(By.CSS_SELECTOR, "div.header>div+div")

# 把定位到的元素,改为绿色

# Selenium4.X版本,新的定位方式,相对定位
# above 在上方 ,below 在下方,Left of (左边),Right of (右边)Near(附近)
el = driver.find_element(locate_with(By.TAG_NAME, "input").
                          above({By.XPATH: "//*[@id='txtPassword']"}))

三、元素定位校验:

谷歌浏览器F12,Ctrl+F搜索栏检查元素定位

四、元素定位验证工具xpath-helper:

快捷键Ctrl+Shift+X启动Xpath-helper,打开和关闭xpath helper的快捷键