【Python】Python 模块用法:selenium 4 版本页面元素定位方法汇总

这篇具有很好参考价值的文章主要介绍了【Python】Python 模块用法:selenium 4 版本页面元素定位方法汇总。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、定位页面元素方法源码说明 

(1)Webdriver.common

(2)selenium.webdriver.common.by

(3)By

二、定位页面元素方法用法汇总

(1)2.0 及以下低版本 selenium :By 定位页面元素方法用法(可忽略)

(2)3.0 ~ 3.9 版本 selenium:By 定位页面元素方法用法

(3)4.0 ~ 4.9 版本 selenium:By 定位页面元素方法用法

(4)页面元素定位方法汇总



一、定位页面元素方法源码说明 

(1)Webdriver.common

Selenium Documentationhttps://www.selenium.dev/selenium/docs/api/py/api.html#webdriver-common【Python】Python 模块用法:selenium 4 版本页面元素定位方法汇总


(2)selenium.webdriver.common.by

selenium.webdriver.common.byhttps://www.selenium.dev/selenium/docs/api/py/webdriver/selenium.webdriver.common.by.html#module-selenium.webdriver.common.by【Python】Python 模块用法:selenium 4 版本页面元素定位方法汇总

【Python】Python 模块用法:selenium 4 版本页面元素定位方法汇总


(3)By

Source code for selenium.webdriver.common.byhttps://www.selenium.dev/selenium/docs/api/py/_modules/selenium/webdriver/common/by.html#By

【Python】Python 模块用法:selenium 4 版本页面元素定位方法汇总

Licensed to the Software Freedom Conservancy (SFC) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The SFC licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

# *************************************** 译文 ********************************************#

已经根据一个或多个贡献者许可协议授权给软件自由保护协会(SFC)。有关版权所有权的其他信息,请参见随附此工作的 NOTICE 文件。SFC 根据 Apache License,Version 2.0(“许可证”)向您许可此文件;除遵守许可证外,您不得使用此文件。您可以在以下网址获得许可证的副本:http://www.apache.org/licenses/LICENSE-2.0

除非适用法律要求或书面同意,许可下分发的软件都是按 “原样” 分发的,没有任何明示或暗示的保证或条件。请查看许可证以获得许可下的特定权限和限制。

class By:
    """By 实现源码"""
    """支持的元素定位策略集合"""
    ID = "id"
    XPATH = "xpath"
    LINK_TEXT = "link text"
    PARTIAL_LINK_TEXT = "partial link text"
    NAME = "name"
    TAG_NAME = "tag name"
    CLASS_NAME = "class name"
    CSS_SELECTOR = "css selector"

By 包支持的定位器分类(8 种):

ID 、XPATH 、LINK_TEXT 、PARTIAL_LINK_TEXT 、NAME 、TAG_NAME 、CLASS_NAME 、CSS_SELECTOR



二、定位页面元素方法用法汇总

(1)2.0 及以下低版本 selenium :By 定位页面元素方法用法(可忽略)

# 从 selenium.webdriver.common.by 导入 By 包进行元素定位
from selenium.webdriver.common.by import By
 
# 先使用 find_element 和 find_elements 方法,再结合 By 类来指明定位分类来实现页面元素定位
# 写法:find_element(By.*,"变量值") ;find_element(By.*,"变量值")
 
# 示例:使用 tag name 定位单个元素
find_element(By.TAG_NAME,"tag name 值")
 
# 示例:使用 tag name 定位多个元素
find_elements(By.TAG_NAME,"tag name 值")

(2)3.0 ~ 3.9 版本 selenium:By 定位页面元素方法用法

【Python】selenium 基础使用:3.0 ~ 3.9 版本页面元素定位方法汇总https://gusanshang.blog.csdn.net/article/details/111936507


(3)4.0 ~ 4.9 版本 selenium:By 定位页面元素方法用法

selenium 4.0 ~ 4.9 写法共计 4 种,既能兼容 selenium 3.0 ~ 3.9 旧版写法,也多出 2 种新版写法,注意:selenium 4 只能在 Python 3.7 及其以上版本使用。

""" selenium 4 旧版写法"""
""" 从 selenium 导入 webdriver 包进行元素定位"""
from selenium import webdriver

""" 
注意:* 需小写字母,且用于括号外有连接符,用于括号内无连接符:
写法 1 :find_element_by_*("变量值") ;find_elements_by_*("变量值")
写法 2 :find_element(by = "*", value = "变量值") ;find_elements(by = "*", value = "变量值")
""" 
 
# 示例:使用 tag name 定位单个元素
find_element_by_tag_name("tag name 值") 
find_element(by = "tag name", value = "tag name 值")
 
# 示例:使用 tag name 定位多个元素
find_elements_by_tag_name("tag name 值") 
find_elements(by = "tag name", value = "tag name 值")
""" selenium 4 新版写法"""
""" 从 selenium 导入 webdriver 的 By 包进行元素定位"""
from selenium import webdriver
from selenium.webdriver.common.by import By

"""
注意:* 需大写字母且有连接符:
写法 1 :find_element(By.*,"变量值") ;find_elements(By.*,"变量值")
写法 2 :find_element(by = By.*, value = "变量值") ;find_elements(by = By.*, value = "变量值")
"""

# 示例:使用 tag name 定位单个元素
find_element(By.TAG_NAME,"sb_form_q")
find_element(by = By.TAG_NAME, value = "sb_form_q")
 
# 示例:使用 tag name 定位多个元素
find_elements(By.TAG_NAME,"sb_form_q")
find_elements(by = By.TAG_NAME, value = "sb_form_q")

【Python】Python 模块用法:selenium 4 版本页面元素定位方法汇总  文章来源地址https://www.toymoban.com/news/detail-411871.html


(4)页面元素定位方法汇总

定位方法 定位方法说明 定位单个元素写法(4 种) 定位多个元素写法(4 种)
id 使用 id 定位 from selenium import webdriver
find_element_by_id("id 值")
find_element(by = "id", value = "id 值")
无:因为 id 为唯一值,所以不能定位多个
from selenium import webdriver
from selenium.webdriver.common.by import By
find_element(By.ID,"id 值")
find_element(by = By.ID, value = "id 值")
xpath 使用 XPath 定位 from selenium import webdriver
find_element_by_xpath("XPath 定位表达式")
find_element(by = "xpath", value = "XPath 定位表达式")
from selenium import webdriver
find_elements_by_xpath("XPath 定位表达式")
find_elements(by = "xpath", value = "XPath 定位表达式")
from selenium import webdriver
from selenium.webdriver.common.by import By
find_element(By.XPATH,"XPath 定位表达式")
find_element(by = By.XPATH, value = "XPath 定位表达式")
from selenium import webdriver
from selenium.webdriver.common.by import By
find_elements(By.XPATH,"XPath 定位表达式")
find_elements(by = By.XPATH, value = "XPath 定位表达式")
link text 使用链接的全部文字内容定位 from selenium import webdriver
find_element_by_link_text("链接的全部文字内容")
find_element(by = "link text", value = "链接的全部文字内容")
from selenium import webdriver
find_elements_by_link_text("链接的全部文字内容")
find_elements(by = "link text", value = "链接的全部文字内容")
from selenium import webdriver
from selenium.webdriver.common.by import By
find_element(By.LINK_TEXT,"链接的全部文字内容")
find_element(by = By.LINK_TEXT, value = "链接的全部文字内容")
from selenium import webdriver
from selenium.webdriver.common.by import By
find_elements(By.LINK_TEXT,"链接的全部文字内容")
find_elements(by = By.LINK_TEXT, value = "链接的全部文字内容")
partial link text 使用链接的部分文字内容定位 from selenium import webdriver
find_element_by_partial_link_text("链接的部分文字内容")
find_element(by = "partial link text", value = "链接的部分文字内容")
from selenium import webdriver
find_elements_by_partial_link_text("链接的部分文字内容")
find_elements(by = "partial link text", value = "链接的部分文字内容")
from selenium import webdriver
from selenium.webdriver.common.by import By
find_element(By.PARTIAL_LINK_TEXT,"链接的部分文字内容")
find_element(by = By.PARTIAL_LINK_TEXTK_TEXT, value = "链接的部分文字内容")
from selenium import webdriver
from selenium.webdriver.common.by import By
find_elements(By.PARTIAL_LINK_TEXT,"链接的部分文字内容")
find_elements(by = By.PARTIAL_LINK_TEXTK_TEXT, value = "链接的部分文字内容")
name 使用 name 定位 from selenium import webdriver
find_element_by_name("name 值")
find_element(by = "name", value = "name 值")
from selenium import webdriver
find_elements_by_name("name 值")
find_elements(by = "name", value = "name 值")
from selenium import webdriver
from selenium.webdriver.common.by import By
find_element(By.NAME,"name 值")
find_element(by = By.NAME, value = "name 值")
from selenium import webdriver
from selenium.webdriver.common.by import By
find_elements(By.NAME,"name 值")
find_elements(by = By.NAME, value = "name 值")
tag name 使用标签名称定位 from selenium import webdriver
find_element_by_tag_name("页面中的 HTML 标签名称")
find_element(by = "tag name", value = "页面中的 HTML 标签名称")
from selenium import webdriver
find_elements_by_tag_name("页面中的 HTML 标签名称")
find_elements(by = "tag name", value = "页面中的 HTML 标签名称")
from selenium import webdriver
from selenium.webdriver.common.by import By
find_element(By.TAG_NAME,"页面中的 HTML 标签名称")
find_element(by = By.TAG_NAMEME, value = "页面中的 HTML 标签名称")
from selenium import webdriver
from selenium.webdriver.common.by import By
find_elements(By.TAG_NAME,"页面中的 HTML 标签名称")
find_elements(by = By.TAG_NAMEME, value = "页面中的 HTML 标签名称")
class name 使用 class name 定位 from selenium import webdriver
find_element_by_class_name("页面元素的 Class 属性值")
find_element(by = "class name", value = "页面元素的 Class 属性值")
from selenium import webdriver
find_elements_by_class_name("页面元素的 Class 属性值")
find_elements(by = "class name", value = "页面元素的 Class 属性值")
from selenium import webdriver
from selenium.webdriver.common.by import By
find_element(By.CLASS_NAME,"页面元素的 Class 属性值")
find_element(by = By.CLASS_NAME, value = "页面元素的 Class 属性值")
from selenium import webdriver
from selenium.webdriver.common.by import By
find_elements(By.CLASS_NAME,"页面元素的 Class 属性值")
find_elements(by = By.CLASS_NAME, value = "页面元素的 Class 属性值")
css selector 使用 CSS 方式定位 from selenium import webdriver
find_element_by_css_selector("CSS 定位表达式")
find_element(by = "css selector", value = "CSS 定位表达式")
from selenium import webdriver
find_elements_by_css_selector("CSS 定位表达式")
find_elements(by = "css selector", value = "CSS 定位表达式")
from selenium import webdriver
from selenium.webdriver.common.by import By
find_element(By.CSS_SELECTOR,"CSS 定位表达式")
find_element(by = By.CSS_SELECTOR, value = "CSS 定位表达式")
from selenium import webdriver
from selenium.webdriver.common.by import By
find_elements(By.CSS_SELECTOR,"CSS 定位表达式")
find_elements(by = By.CSS_SELECTOR, value = "CSS 定位表达式")

到了这里,关于【Python】Python 模块用法:selenium 4 版本页面元素定位方法汇总的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Python Selenium 八大元素定位方法(下)

    今天我们来学习UI自动化中,剩余五个元素定位方法:tag_name、link_text、partial_link_text、Xpath、css_selector 以tag_name元素定位为例 HTML是由不同的标签组成的,每个标签都是指的同一类,所以用tag定位效率低下,一般不建议使用。 以link_text元素定位为例 1、使用F12,定位到含有链接

    2024年02月12日
    浏览(46)
  • 【Python中Selenium元素定位的各种方法】

    1、元素定位操作: 2、创建浏览器驱动操作,导入By模块: 3、ID元素定位 4、name元素定位 5、class_name:class属性元素定位 6、tag_name:标签名元素定位 7、link_text:超链接标签元素定位 8、partial_link_text:超链接标签(模糊)元素定位 9、xpath:路径(绝对路径、相对路径)元素定位

    2024年02月19日
    浏览(40)
  • 自学Python 69 Selenium八大元素定位方法(新版BY方法)

      在学习使用Selenium对网页元素进行定位时,发现很多教程依然使用老版的元素定位方法,但是对于新版selenium来说,已经弃用了之前的元素定位方法,所以在使用的时候会发现有报错,会被一条横线划掉。所以今天来总结一下新版selenium对网页元素进行定位的操作方法。

    2024年02月13日
    浏览(84)
  • selenium页面元素定位、操作

       1、通过页面开发者工具(点击键盘F12或者空白处右击点击检查)中的element,查看页面html代码; 2、点击开发者工具左上角鼠标按钮; 3、鼠标移动至需要定位元素位置; 4、高亮显示; 5、右击选择定位方式。 1 打开 / 关闭浏览器 注意: 关闭浏览器close和quit的区别: 以

    2023年04月08日
    浏览(51)
  • Python+selenium自动化八大元素定位方法及实例(超详细)

    目录 一、selenium模块中的find_element_by_id方法无法使用 二、Python+selenium自动化八大元素定位方法 使用场景: 1、通过id属性定位:driver.find_element(By.ID,\\\"value\\\") 2、通过name属性定位:driver.find_element(By.NAME,\\\"value\\\") 3、通过class属性定位:driver.find_element(By.CLASS_NAME,\\\"value\\\") 4、通过tag_name属

    2024年02月19日
    浏览(49)
  • Selenium元素定位之页面检测技巧

    在进行web自动化测试的时候进行XPath或者CSS定位,需要检测页面元素定位是否正确,如果用脚本去检测,那么效率是极低的。 一般网上推选装额外的插件来实现页面元素定位检测 如:firebug。 其实F12开发者工具就能直接在页面上检测元素定位不需要装额外的插件。 有2种方式

    2024年02月05日
    浏览(43)
  • selenium对于页面改变的定位元素处理办法

    在学习selenimu中,总是发现元素定位不到,想了各种办法,最后总结大致有两个原因。 1.等待时间不够,页面还没有完全渲染就进行操作,使用time模块进行等待。 2.换了页面后,发现定位不到元素,因为浏览器还停留在最开始的页面,处理办法,加一行代码。 运行结果: 缺

    2024年02月01日
    浏览(47)
  • 自动化测试学习(六)-selenium定位元素之CSS选择器详细用法

    目录 1.通过class属性定位 2.通过id属性定位 3.通过标签名定位 4.其他方法定位    CSS是一种语言,它可以比较灵活的选择控件的任意属性,一般情况下比Xpath快,下面我们详细介绍CSS的用法。CSS常见语法如下表所示:  选择器 示例 描述 .class .s_ipt 选择class=\\\"s_ipt\\\"的所有元素 #i

    2024年01月17日
    浏览(52)
  • 新版Selenium使用Python对web页面多个相同Class Name属性的元素进行选择&新老版本对比

    在使用新版的Selenium对网页代码中存在相同class name属性的元素进行定位,在定位的过程中发现使用先前的定位方法已经无法成功对所要操作组件进行定位,这是什么问题呢?下面为大家进行解答。 大概为了统一编写格式,方便阅读理解,新版本的Selenium出来后,摒弃了旧版的

    2024年02月04日
    浏览(50)
  • selenium定位元素方法

    1、通过id定位元素 写法1: element = driver.find_element_by_id(\\\"kw\\\") 写法2: from selenium.webdriver.common.by import By element = driver.find_element(by=By.ID, value=\\\"kw\\\") Tips: by=By.ID表示以id的方式定位web元素,下面的例子有类似的写法以此类推 2、通过class定位元素 写法1: cheeses = driver.find_elements_by_clas

    2023年04月25日
    浏览(52)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包