做web自动化时,定位元素常用方法有:1、id定位;2、name定位;3、class定位;4、超链接link文本定位;5、tag name定位;6、XPath定位;7、css定位;8、定位封装。id定位是指,通过元素的id属性定位,前提是定位元素必须要有id。
1、id定位
from selenium import webdriver
import time
driver=webdriver.Chrome()
driver.get("https://www.baidu.com")
# 通过id定位
driver.find_element_by_id('kw').send_keys('PingCode')#定位搜索框输入PingCode
driver.find_element_by_id('su').click()#点击百度一下
# 等待3秒
time.sleep(3)
# 退出浏览器
driver.quit()
2、name定位
from selenium import webdriver
import time
driver=webdriver.Chrome()
driver.get("https://www.baidu.com")
# 通过name定位
driver.find_element_by_name('wd').send_keys('PingCode')#通过name定位搜索框输入PingCode
driver.find_element_by_id('su').click()#点击百度一下
# 等待3秒
time.sleep(3)
# 退出浏览器
driver.quit()
3、class定位
from selenium import webdriver
import time
driver=webdriver.Chrome()
driver.get("https://www.baidu.com")
# 通过class定位
driver.find_element_by_class_name('s_ipt').send_keys('PingCode')#定位搜索框输入PingCode
driver.find_element_by_class_name('s_btn').click()#点击百度一下,注意class名属性不能有空格,如有空格删掉空格前
# 等待3秒
time.sleep(3)
# 退出浏览器
driver.quit()
4、超链接link文本定位
from selenium import webdriver
import time
driver=webdriver.Chrome()
driver.get("https://www.baidu.com")
# 通过超链接link文本去定位
driver.find_element_by_link_text('地图').click()#点击百度页面上的地图
# 等待3秒
time.sleep(3)
# 退出浏览器
driver.quit()
5、tag name定位
from selenium import webdriver
import time
driver=webdriver.Chrome()
driver.get("https://www.baidu.com")
#
# tag name去定位元素
taglist = driver.find_elements_by_tag_name('input')
for one in taglist:
if one.get_attribute('name')=='wd':
one.send_keys('PingCode')
time.sleep(3)
driver.find_element_by_id('su').click()#点击百度一下
time.sleep(3)
#打印标题
print(driver.title)
# 退出浏览器
driver.quit()
6、XPath定位
绝对路径:以单斜杠开头逐级开始编写,不能跳级,如:/html/body/div/p[1]/input
from selenium import webdriver
import time
driver=webdriver.Chrome()
driver.get("https://www.baidu.com")
# 通过xpath定位
driver.find_element_by_xpath('/html/body/div[1]/div[1]/div[5]/div/div/form/span[1]/input').send_keys('花瓣网')
time.sleep(2)
driver.find_element_by_xpath('/html/body/div[1]/div[1]/div[5]/div/div/form/span[2]/input').click()
#打印标题
print(driver.title)
# 退出浏览器
driver.quit()
相对路径:以双斜杠开头,双斜杠后边跟元素名称,不知元素名称可以使用*代替, 如: //input //*
from selenium import webdriver
import time
driver=webdriver.Chrome()
driver.get("https://www.baidu.com")
# 通过xpath定位:相对路径查找
driver.find_element_by_xpath('//*[@id="kw"]').send_keys('花瓣网')
driver.find_element_by_xpath('//*[@id="su"]').click()
time.sleep(2)
#打印标题
print(driver.title)
# 退出浏览器
driver.quit()
7、css定位
标签选择器:
p {
color: red;
}
ID 选择器:
#my-element {
background-color: blue;
}
类选择器:
.my-class {
font-size: 16px;
}
属性选择器:
input[type="text"] {
border: 1px solid black;
}
子元素选择器:
ul > li {
list-style-type: circle;
}
后代元素选择器:
ul li {
color: green;
}
8、定位封装
driver.find_element()
用途:
- 使用driver.find_element()定位用户名
- 使用driver.find_element()定位密码
延伸阅读1:web自动化是什么
Web自动化测试是指利用自动化测试工具和脚本实现对Web应用程序的自动化测试过程。Web自动化测试可以模拟用户使用浏览器访问网站、点击页面链接、输入表单数据、提交请求等操作,以验证Web应用程序的功能、性能、兼容性等方面。