Selenium4.9.1-元素定位方法大全

2023-10-29

一、在selenium里面使用什么方法进行元素定位?

1、单个元素定位:find_element

2、多个元素定位:find_elements

二、在selenium里面有7种元素定位方式

1、ID定位:

        find_element(By.ID,value)

#示例代码如下:
from selenium import webdriver
import time
driver1 = webdriver.Chrome()
driver1.get('http://www.baidu.com/')
# 根据id定位
driver1.find_element(By.ID,'kw').send_keys('软件测试')

2、name定位:

        find_element(By.NAME,value)

#示例代码如下:
from selenium import webdriver
import time
driver1 = webdriver.Chrome()
driver1.get('http://www.baidu.com/')
# 根据name定位
driver1.find_element(By.NAME,'wd').send_keys('软件测试')

3、class定位:

        find_element(By.CLASS_NAME,value)

#示例代码如下:
from selenium import webdriver
import time
driver1 = webdriver.Chrome()
driver1.get('http://www.baidu.com/')
# 根据class定位
driver1.find_element(By.NAME,'s_ipt').send_keys('软件测试')

4、tag定位:

        find_element(By.TAG,value)

#示例代码如下:
from selenium import webdriver
import time
driver1 = webdriver.Chrome()
driver1.get('http://www.baidu.com/')
# 根据tag定位
# 通过tag_name来定位元素,因为标签不止一个因此常和 find_elements 一起使用
#find_elements 返回的是一个列表,列表内是所有满足条件的元素
driver1.find_element(By.TAG,'a').send_keys('软件测试')

5、link定位:

​         1)find_element(By.LINK_TEXT,value)

#示例代码如下:
from selenium import webdriver
import time
driver1 = webdriver.Chrome()
driver1.get('http://www.baidu.com/')
#根据超链接的文字进行定位,只能定位链接文本   link_text
driver1.find_element(By.LINK_TEXT,'新闻').click()

​         2)find_element(By.PARTIAL_LINK_TEXT,value)

#示例代码如下:
from selenium import webdriver
import time
driver1 = webdriver.Chrome()
driver1.get('http://www.baidu.com/')
# 通过超链接的部分文本信息进行定位
driver1.find_element(By.PARTIAL_LINK_TEXT,"新").click()

6、xpath定位:

        find_element(By.XPATH,value)

        value填值的基本语法如下:

        1.基本语法
            //标签名[@属性名=属性值]
        2.父子层级
            //标签名[@属性名=属性值]/子标签名    //标签名[@属性名=属性值]//子标签名
        3.索引
            //标签名[@属性名=属性值]/子标签名[索引]   注意:索引从1开始
        4.模糊匹配
            //标签名[contains(@属性名,部分属性值)]
        5.多条件匹配
            //标签名[@属性1=属性值1 and @属性2=属性值2]

7、css定位:

        find_element(By.CSS_SELECTOR,value)

        value填值的基本语法如下:

        1.基本语法
            标签名[属性名=属性值]    #id名  .class名
        2.父子层级
            标签名[属性名=属性值] 子标签        标签名[属性名=属性值]>子标签
        3.索引
            标签名[属性名=属性值] :nth-child(索引)   标签名[属性名=属性值]>:nth-child(索引)
        4.模糊匹配
            标签名[属性名*=部分属性值]
        5.多条件匹配
            标签名[属性名1=属性值1][属性名2=属性值2]

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Selenium4.9.1-元素定位方法大全 的相关文章

  • 如果用户在 Laravel 中经过身份验证,如何检查 Vue 组件?

    正如标题所述 我有点困惑如何根据用户是否登录并使用 Laravel 的 Auth 外观进行身份验证 使用 if else 语句处理 Vue 组件中的方法 我正在发出各种 Axios 请求 我需要根据用户是否登录来允许 禁止这些请求 我有 V
  • 可以使用带有 HTML5 播放器的 Amazon S3/CloudFront 流式传输视频吗?

    我想使用 HTML5 视频播放器并流式传输视频 S3 CloudFront 可以实现这一点吗 我了解 Amazon 使用 RTMP 流媒体协议和 HTML5video标签不支持 RTMP 有没有办法用 HTML5 播放器播放视频 Wayne
  • 使用 :hover 作为元素的内联样式(使用 HTML/CSS/php)[重复]

    这个问题在这里已经有答案了 可能的重复 如何将 a hover 规则嵌入到文档中间的样式属性中 https stackoverflow com questions 131653 how do i embed an ahover rule i
  • PHP 共享标头而不使用服务器端脚本?

    到目前为止我总是通过 PHP 解决简单的问题 您有一个包含页眉 菜单 页脚和内容字段的网站 每个页面的页眉 菜单和页脚通常是相同的 在没有 PHP 或任何其他服务器端语言的情况下 如何使页眉 菜单和页脚数据仅存在于一个文件中 例如 您不会有
  • 如何为 TBODY 应用垂直滚动条

    我的表中有 4 列和 5 行数据 我必须为 TBODY 应用垂直滚动条 TH 标题内容不应滚动 我对场景进行了编码 并且在我将滚动类应用于 TBODY 之前它工作正常 一旦我将滚动样式类应用于 TBODY 它就会破坏之前的对齐方式 任何人都
  • 不使用控件时,视频元素在 Chrome 中消失

    So I think这是一个浏览器错误 它出现在一个更复杂的设计 网站中 但我已经进行了很好的尝试 简化了我的代码和设计等 并发现了以下内容 嵌入时
  • 应用旋转时,HTML5 canvas Clip() 在 Chrome 中不起作用

    我试图在画布上使用剪辑区域 一旦坐标系旋转任何非零值 它就会停止工作 window onload function var canvas document getElementById mainCanvas var ctx canvas g
  • Javascript 播放声音性能重吗?

    我正在用 Javascript 制作一个简单的游戏 当一个物体与墙壁碰撞时 它会发出 砰 的声音 声音的响度取决于物体的速度 速度越高 gt 声音越大 播放功能 playSound function id vol ID of the sou
  • 使用画布仅删除文本而不删除图像

    我正在尝试删除画布元素中的文本 而不丢失Background Image of the Canvas Element 我想我需要保存Imagesrc并把它还给Canvas Element之后clearRect 但我不知道该怎么做 我希望有人
  • 使用 Selenium webdriver 和 Python 获取完全渲染的 HTML

    我正在尝试使用 Selenium webdriver 在 Python 中构建一个网络抓取工具 但是当我从 webdriver 检索网站源代码时 我无法访问所需的信息 我认为问题在于 一旦页面最初从服务器下载 内容就会通过 JavaScri
  • 如何倾斜 div 并保持背景图像不倾斜

    我已经花了几个小时了 所以希望有人能提供帮助 我有一个网站 其中大部分 div 都是倾斜的 大多数 div 都包含背景图像 现在我已经让 div 倾斜了 内容完美地位于其中 唯一的问题是背景图像 它与父级一起倾斜 我用谷歌搜索了很多 但找不
  • Perl 和 Selenium::远程::驱动程序

    再次编辑 我在弗吉尼亚州北部某处的 AWS 上有一台服务器 这是我的监控服务器 我从另一个状态 ssh 进入这个 Ubuntu 服务器来进行系统管理 我想在这台服务器上进行 Web 自动化测试 它将测试互联网上的 Web 应用程序 点击 U
  • 调整文本区域大小

    我需要使用文本区域来显示一些文本 问题是 如果我放置 4 5 行文本 就会出现滚动条 如何使用 CSS HTML 使文本区域与其内容一样大 没有滚动条 文本区域不需要动态更改其大小 我仅使用它来显示文本 我也可以使用禁用的文本区域 我希望文
  • 如何使用 a-href 标签链接回文件夹? [复制]

    这个问题在这里已经有答案了 好吧 我在文件夹中有一个页面 该页面称为 jobs html 该文件夹简称为 jobs 它是我的 网站 文件夹的子文件夹 在 main 文件夹的主目录中是我的 home html 文件 当我尝试做的时候 a hr
  • 网站 YouTube 嵌入视频不断播放

    我正在使用 youtube 提供的 iframe 在我的网站上嵌入视频 我还使用了一个 css 弹出窗口 这是我从这个页面学到的http www pat burt com web development how to do a css po
  • HTML2canvas 和 Canvas2image,下载的屏幕截图不显示我的 HTML 图像

    我一直在开发一个 HTML 页面 我想将其转换为图像 我一直在使用 html2canvas 和 canvas2image 脚本并采用此代码http jsfiddle net 8ypxW 3 http jsfiddle net 8ypxW 3
  • JSTL 在循环中每 5 个字段集创建一个新行

    您好 我目前正在迭代并在表中显示字段集列表 为了让布局变得更得体一些 我想在每次循环到达第五个字段集时创建一个新行 谢谢 JSP div class det table class det tr td td tr table div
  • 为什么“tbody”不设置表格的背景颜色?

    我在用 tbody 作为 CSS 选择器来设置background color在一个表中 我这样做是因为我有多个 tbody 表内的部分 它们具有不同的背景颜色 我的问题是 当使用border radius在细胞上 细胞不尊重backgro
  • 单击引导分页链接时调用 jquery 函数

    我想在单击引导分页链接时调用 jquery 函数 假设我想从第1页遍历到第2页 应该调用一个jquery函数 我正在使用以下代码 但它不起作用 ul pagination on click li function alert page ch
  • Selenium 是否可以单独用于自动化 Intranet Web 门户的测试,其中门户上的链接定向到 SAP 应用程序

    是否可以单独使用 Selenium 来自动测试 Intranet Web 门户 其中门户上的链接定向到 SAP 应用程序 Portal 仅适用于 IE 和 Windows 操作系统上的 SAP 应用程序 用最简单的话来说 Selenium

随机推荐