通过与 Jira 对比,让您更全面了解 PingCode

  • 首页
  • 需求与产品管理
  • 项目管理
  • 测试与缺陷管理
  • 知识管理
  • 效能度量
        • 更多产品

          客户为中心的产品管理工具

          专业的软件研发项目管理工具

          简单易用的团队知识库管理

          可量化的研发效能度量工具

          测试用例维护与计划执行

          以团队为中心的协作沟通

          研发工作流自动化工具

          账号认证与安全管理工具

          Why PingCode
          为什么选择 PingCode ?

          6000+企业信赖之选,为研发团队降本增效

        • 行业解决方案
          先进制造(即将上线)
        • 解决方案1
        • 解决方案2
  • Jira替代方案

25人以下免费

目录

做web自动化时,定位元素常用方法有哪些

做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应用程序的功能、性能、兼容性等方面。

相关文章