【web自动化】selenium+python八大元素定位

这篇具有很好参考价值的文章主要介绍了【web自动化】selenium+python八大元素定位。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


推荐:b站软件测试老白

一、id定位

注意点
1.有id才能能使用id定位
2.id不能重复

通过百度页面,演示如何查找id确定id是否重复,其他方式定位也可以这样搜索
【web自动化】selenium+python八大元素定位,自动化,selenium,python,功能测试

 driver.find_element(By.ID,"放入id名字")
import time

from selenium import webdriver
from selenium.webdriver.common.by import By
# chrome()驱动
driver= webdriver.Chrome()
#窗口最大化
driver.maximize_window()
driver.get("https://www.baidu.com/")
#找到输入框元素 在搜索框插入信息
driver.find_element(By.ID,"kw").send_keys("selenium")
# 找到搜索按钮的元素  触发点击搜索
driver.find_element(By.ID,'su').click()
time.sleep(3)
driver.close()

二、class_name

driver.find_element(By.CLASS_NAME,"class名字")

代码如下(示例):

driver.find_element(By.CLASS_NAME,"s_ipt").send_keys("2024")
driver.find_element(By.ID,'su').click()

如果有多个class_name,可以使用 find_elements和取下标的方式
例如:打开哔哩哔哩页面,有番剧,电影等等,他们的class_name都是channel-link。可以通过取下标的方式,点击对应项。
【web自动化】selenium+python八大元素定位,自动化,selenium,python,功能测试

driver.find_elements(By.CLASS_NAME,"channel-link")[4].click()
#  elements取下标,综艺
# 遍历所有选项
for ele in driver.find_elements(By.CLASS_NAME,'channel-link'):
    print(ele.text)

三、name

driver.find_element(By.NAME,'name的名字')

代码如下(示例):

driver.find_element(By.NAME,'wd').send_keys("hello")

四、tag_name

标签唯一才能定位,不唯一标签也可通过下标定位,不推荐

driver.find_element(By.TAG_NAME,"输入标签")

代码如下(示例):
此处用bilibili,因为bilibili有一个input标签,可通过console -document.getElementsByTagName搜索是否唯一。

driver.find_element(By.TAG_NAME,"input").send_keys("selenium")

五、link_text文本查找

查找百度页面的新闻,ctrl+f调用搜索框,搜新闻,发现有四条
【web自动化】selenium+python八大元素定位,自动化,selenium,python,功能测试
【web自动化】selenium+python八大元素定位,自动化,selenium,python,功能测试
但是我们通过代码查询发现只收到一条数据,因为link_text搜索到的是全名
【web自动化】selenium+python八大元素定位,自动化,selenium,python,功能测试
debug一下,右键复制红框代码,打开计算器,发现只有1条信息
【web自动化】selenium+python八大元素定位,自动化,selenium,python,功能测试

代码如下(示例):

driver= webdriver.Chrome()
driver.get("https://www.baidu.com/")
driver.find_element(By.LINK_TEXT,"新闻").click()

六、partial_link_text

#driver.find_element(By.PARTIAL_LINK_TEXT,"闻").click()
driver.find_elements(By.PARTIAL_LINK_TEXT,'新闻')[0].click()

七、CSS_SELECTOR

css常用汇总
【web自动化】selenium+python八大元素定位,自动化,selenium,python,功能测试

#通过标签定位
driver.find_element(By.CSS_SELECTOR,"input")
# 通过css中id搜素
# driver.find_element(By.CSS_SELECTOR,"#kw").send_keys('selenium')
# driver.find_element(By.CSS_SELECTOR,"#su").click()
#属性
driver.find_element(By.CSS_SELECTOR,"[name='wd']")
#根据css标签属性定位  定位百度页面的图片按钮
driver.find_element(By.CSS_SELECTOR,"a[href='http://image.baidu.com/']").click()
#模糊匹配-包含-css
driver.find_element(By.CSS_SELECTOR,"a[href*='image.baidu.com']").click()
#模糊匹配-匹配开头
driver.find_element(By.CSS_SELECTOR,"a[href^='http://image.baidu']").click()
#模糊匹配-匹配结尾
driver.find_element(By.CSS_SELECTOR,"a[href$='image.baidu.com/']").click()
#组合定位  input  .class  搜素
driver.find_element(By.CSS_SELECTOR,'input.s_ipt').send_keys("selenium")

以下用的哔哩哔哩链接

#定位子元素
driver.find_element(By.CSS_SELECTOR,'div#s-top-left>a').click()
driver.find_element(By.CSS_SELECTOR,'div.s-top-left-new.s-isindex-wrap>a').click()  #点击新闻
driver.find_element(By.CSS_SELECTOR,"div#s-top-left>a:nth-child(3)").click()  #点击地图
driver.find_elements(By.CSS_SELECTOR,"div#s-top-left>a")[3].click()   #点击贴吧 elements
driver.find_element(By.CSS_SELECTOR,"div#s-top-left>a:first-child").click()

八、xpath

【web自动化】selenium+python八大元素定位,自动化,selenium,python,功能测试
【web自动化】selenium+python八大元素定位,自动化,selenium,python,功能测试

1.绝对路径 定位到地图【web自动化】selenium+python八大元素定位,自动化,selenium,python,功能测试

driver.find_element(By.XPATH,"/html/body/div/div/div[3]/a[3]").click()

在页面检查里div[2]可查到元素,但是在在代码里运行时需要div[3],不知道为什么。
下面是其他xpath方式
2.相对路径+属性
【web自动化】selenium+python八大元素定位,自动化,selenium,python,功能测试
2.1唯一标签属性

#根据id
driver.find_element(By.XPATH,'//input[@id="kw"]').send_keys("hello")
# 根据class
driver.find_element(By.XPATH,'//input[@class="s_ipt"]').send_keys("hello")

2.2多个属性组合定位

【web自动化】selenium+python八大元素定位,自动化,selenium,python,功能测试

driver.find_element(By.XPATH,'//input[@class="s_ipt" and  @name="wd"]').send_keys("hello")

【web自动化】selenium+python八大元素定位,自动化,selenium,python,功能测试

#点击贴吧
driver.find_element(By.XPATH,'//div[@id="s-top-left"]/a[4]').click()
#span 文本等于
driver.find_element(By.XPATH,'//span[text()="外卖小哥回应3年赚102万"]').click()
#span  文本包含
# driver.find_element(By.XPATH,'//span[contains(text(),"外卖")]').click()

3.找同级弟弟元素
https://element.eleme.cn/#/zh-CN/component/cascader
先找同级span元素,再找弟弟元素
【web自动化】selenium+python八大元素定位,自动化,selenium,python,功能测试
【web自动化】selenium+python八大元素定位,自动化,selenium,python,功能测试
从同级的贴吧标签对应到网盘

driver.find_element(By.XPATH,'//a[contains(text(),"贴吧") and @class="mnav c-font-normal c-color-t"]/following-sibling::a[3]').click()

同级哥哥就用preceding-sibling文章来源地址https://www.toymoban.com/news/detail-810531.html


到了这里,关于【web自动化】selenium+python八大元素定位的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • python+selenium的web自动化测试之8种元素定位方式详解

    目录 前言 单一属性定位 通过元素的id 通过元素的name 通过元素的class 通过元素的标签名 通过元素的超链接文本 通过元素的部分超链接文本 XPTH定位 CSS定位 辅助定位工具 ​ 我们在做WEB自动化时,最根本的就是操作页面上的各种元素,而操作的基础便是元素的定位,只有准确

    2023年04月16日
    浏览(35)
  • Web自动化 —— Selenium元素定位与防踩坑

    2. 基本元素定位二 3. CSS选择器定位法一 4. CSS选择器定位法二 浏览器完整的打开-关闭调用流程 5. xpath定位法 1、相对路径定位 //标签名[@属性名=\\\"属性值\\\"] 2、定位某个元素的父级元素 元素xpath/parent::\\\"父级元素标签名\\\" //*[@id=\\\"list\\\"]/dl/a/parent::dl 3、定位一组元素的第几个 xpath[数字

    2024年02月09日
    浏览(34)
  • Python+selenium自动化元素定位防踩坑

    在自动化UI测试过程中常常会在元素定位阶段就踩坑,碰到困扰已久的问题。 以下是个人整理元素定位报错原因和解决方法。 踩坑一:StaleElementReferenceException selenium.common.exceptions.StaleElementReferenceException: Message: stale element reference: element is not attached to the page document 异常原因:

    2024年02月06日
    浏览(32)
  • 3-UI自动化-八大元素定位,xpath定位方式和相关的常问面试题

    ♡ color{red}{heartsuit} ♡ 上篇我们了解了HTML页面的结构和常用的标签和属性,介绍2-UI自动化-HTML页面的构成和常见标签、属性。小白的话建议先看看,再来学习八大元素定位。 UI自动化面试基本上逃不了这道面试题。八大元素定位。 通过id属性 通过class属性,注意,表达式中

    2024年02月08日
    浏览(29)
  • 自动化测试(二)selenium八大获取元素方法及对象操作

    目录 webdriver API 脚本实例 元素的定位 1. 通过id定位: 2. 通过name方式定位 3. 通过tag name(标签名)定位 4. 通过class name (类名)方式定位 5. 通过CSS 方式定位 6. 通过xpath方式定位 7. link text定位 8. Partial link text 定位 操作测试对象  鼠标点击与键盘输入 submit 提交表单 text 获取

    2024年02月03日
    浏览(32)
  • selenium自动化元素定位之下拉列表框

    目录 一、查看被测应用元素信息 二、Select的下拉框怎么定位 其思路也是获取下拉的选项框,循环遍历寻找匹配的index,找到便设置成选中属性 三、非select的下拉框如何定位?  在编写webUI自动化过程中,有些元素的定位,不能直接通过id、name等快速定位到。这些特殊的元素

    2024年02月11日
    浏览(39)
  • 【Selenium】UI自动化|元素定位常见问题

    分析的可能原因: 页面还没有加载出来,就对页面上的元素进行的操作 元素在iframe中,先要理解下frame的实质,frame中实际上是嵌入了另一个页面,而webdriver每次只能在一个页面识别,因此需要先定位到相应的frame,对那个页面里的元素进行定位。 元素在新的窗口中,未切换句

    2024年04月10日
    浏览(43)
  • Selenium自动化实现高亮显示定位到的元素

    在调试Selenium脚本中,有时因为操作太快或操作不明显而不清楚是否定位到了正确的元素。我们可用通过执行js为定位到的元素添加样式,来高亮显示定位到的元素。 在Selenim Webdriver中,可以通过driver.exectue_scirpt() 执行JavaScript代码,执行的JavaScript代码是支持传入参数的,甚至

    2024年02月20日
    浏览(33)
  • 【selenium自动化测试】如何定位页面元素,及对页面元素的操作方法

    selenium元素定位 ​selenium定位元素的方式有8种。 fild_element(by,value):by表示使用的定位方式,定位方式可以参见By类。value表示值,例如:根据id定位 By.ID,value=id属性的值。该方法返回元素对象,返回值如下: 这个返回结果说明:返回值为WebElement类的对象,元素在使用方法时

    2024年02月10日
    浏览(47)
  • 【UI自动化】selenium元素定位各种框实例操作大全

    Text: 元素是input标签但是不能输入内容 第五个input输入框, disabled 属性被设置为 \\\"true\\\" 。 它被禁用了无法接收用户的输入。 第六个input输入框, readonly 属性指示该元素是否只读 ,如果设置了该属性,表示该元素只读不可编辑。因此,当 readonly 属性存在时,该输入框是不可

    2024年01月18日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包