1.python模拟人,打开浏览器,操做页面,验证系统的功能是否正确()
2.web自动化应用场景:1.冒烟测试(稳定的业务场景,主流程确认系统可用)
2.回归测试(稳定的业务场景,页面改的小)
场景:自动化代码(selenium)》–driver.exe 》浏览器(chrome、IE、火狐)
HTML 元素定位 elements 头部信息(head) 身体 (boby) 标签对
类别不同 有的则不用相对,不用结束 输入框:inputfrom selenium import webdriver
import time
from selenium import webdriver
import time
driver = webdriver.Chrome()
driver.maximize_window()
driver.get(“http://www.baidu.com”) # 1
ele = driver.find_element_by_id(“kw”)
ele.send_keys(“csnd”)
time.sleep(5)
driver.quit()
#文本定位方法6)
8种定位方式:
1类:根据元素的单一属性来定位
1)id
2) name, class_name和tag_name
3)link_text和partial_link_text(针对a元素)
2类:组合元素的特征和关系来定位
xpath
绝对定位
相对定位!!-- // 开头、// 标签名[ @ 属性 = 值] // input[ @ id = “kw”]
条件:1、男性 2、170 3、北京 4…
1、元素特征
2、html当中过滤
标签名、属性、文本内容
绝对定位:
/ html / body / div[1] / div[1] / div / div[1] / div / form / span[1] / input
/ 开头 兄弟当中的位 父 / 子 路径顺序
相对定位:
1) // 标签名[ @ 属性 = 值]
// input[ @ id = “kw”] //input[@id=“kw”]
逻辑运算: and or
// 标签名[ @ 属性 = 值 and @属性=值]// 标签名[ @ 属性 = 值 or@属性=值]
文本定位
// 标签名[text() = 值]
“”"
“”"
八种定位(八个API或者八个函数)
element:
id find_element_by_id 查找一个元素
class find_element_by_class_name
tag find_element_by_tag_name
name find_element_by_name
link find_element_by_link_text
partial_link find_element_by_partial_link_text
xpath find_element_by_xpath
css_selector find_element_by_css_selector
底层函数(终极函数)查所有元素
find_element(定位策略(id、name、xpath…),定位表达式)
查找所有匹配的元素
elements:
id find_elements_by_id 返回时一个列表
class find_elements_by_class_name
tag find_elements_by_tag_name
name find_elements_by_name
link find_elements_by_link_text
partial_link find_elements_by_partial_link_text
xpath find_elements_by_xpath
css_selector find_elements_by_css_selector
当你定位元素,无法直接定位时,可以通过定位子级元素返回父级来获取元素
//div[@id=“u1”]/…/…
id定位: driver.find_element(By.ID,“kw”).send_keys(“南方朱雀”)
name定位: driver.find_element(By.NAME,“wd”).send_keys(“南方朱雀”)
link_text定位 driver.find_element(By.LINK_TEXT,“新闻”).click()
partail_link_text定位 driver.find_element(By.PARTIAL_LINK_TEXT,“新”).click()
xpath定位: 绝对路径:
/开头是绝对路径 /html/body/div[1]/div[1]/div[5]/div/div/form/span[1]/input
相对路径://开头是相对路径 //input
1.相对路径+索引定位: //form/span[1]/input
2.相对路径+属性定位: //input[@autocomplete=‘off’]
3.相对路径+通配符定位*: //[@autocomplete=‘off’] //[@=‘off’] 复制xpath经常会出错,不是万能的
4.相对路径+部分属性值定位: 以开头://[starts-with(@autocomplete,‘of’)] 以结尾://[substring(@autocomplete,2)=‘ff’] 包含://[contains(@autocomplete,‘of’)]
5.相对路径+文本定位 //span[text()=‘按图片搜索’]
find_elements(定位策略(id、name、xpath…),定位表达式)
“”"
“”"
1、点击 click
2.输入操作 send_keys
3.获取元素文本内容
4.获取元素的属性
“”"
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
driver.get(“https://www.baidu.com/”)
driver.find_element_by_id(“kw”).send_keys(“孟晚舟”)
#点击 百度一下
driver.find_element_by_id(“su”).click()
python 头部注释的作用
头注释并不是为代码而服务,更多是被系统或解释器所调用
会告诉系统 Python 解释器在哪,脚本编码格式是啥
#!usr/bin/env python
print(“hello-world”)
document对象:
a=document.getElementById(“kw”)
a.readOnly
false
a.readOnly=true
true
b= document.getElementById(“su”)
b.disabled
false
b.disabled
false
$x(‘//input[@placeholder=“请输入标题”]’)[0].outerHTML=" " # 元素不可见
if name == ‘main’: # main方法是一个入口,不论多少代码,会先运行面此方法
unittest.main()