Selenium WebDriver提供By.CSS_SELECTOR定位元素方法

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

`By.CSS_SELECTOR` 是 Selenium WebDriver 提供的一种定位元素的方法,它允许使用 CSS 选择器来定位页面上的元素。以下是常见的 CSS 选择器语法:

1. **标签选择器(Tag Selector)**:通过元素的标签名选择元素。
   - 示例:`p` 选取所有 p 标签的元素。

2. **类选择器(Class Selector)**:通过元素的类名选择元素。
   - 示例:`.container` 选取所有类名为 container 的元素。

3. **ID 选择器(ID Selector)**:通过元素的 ID 属性选择元素。
   - 示例:`#my_div` 选取 ID 属性为 my_div 的元素。

4. **属性选择器(Attribute Selector)**:根据元素的属性值选择元素。
   - 示例:`[name='username']` 选取所有 name 属性值为 username 的元素。

5. **子元素选择器(Child Selector)**:选择指定元素的直接子元素。
   - 示例:`div > p` 选取所有直接子元素为 div 的 p 元素。

6. **后代元素选择器(Descendant Selector)**:选择指定元素的后代元素。
   - 示例:`div p` 选取所有 div 元素下的 p 元素。

7. **相邻兄弟选择器(Adjacent Sibling Selector)**:选择指定元素的相邻兄弟元素。
   - 示例:`h2 + p` 选取紧跟在 h2 元素后的第一个 p 元素。

8. **通用兄弟选择器(General Sibling Selector)**:选择指定元素的所有兄弟元素。
   - 示例:`h2 ~ p` 选取紧跟在 h2 元素后的所有 p 元素。

9. **伪类选择器(Pseudo-class Selector)**:根据元素的状态或位置选择元素。
   - 示例:`:hover` 选取鼠标悬停在元素上的状态。:nth-child(n) 选取父元素的第 n 个子元素。

10. **伪元素选择器(Pseudo-element Selector)**:选择元素的特定部分。
    - 示例:`::before` 选取元素的前面生成的内容。::after 选取元素的后面生成的内容。

11. **属性存在选择器:选择具有指定属性的元素。
    - 示例:input[type] 选取所有具有 type 属性的 input 元素。

以上是一些常见的 CSS 选择器语法,结合使用它们可以实现灵活且精准的元素定位。

`By.CSS_SELECTOR` 定位元素并模拟用户与页面元素的交互的完整示例代码:文章来源地址https://www.toymoban.com/news/detail-856931.html

from selenium import webdriver
from selenium.webdriver.common.by import By
import time
# 启动 Chrome 浏览器
driver = webdriver.Chrome()

# 打开页面
driver.get("data:text/html;charset=utf-8," + """
<div id="my_div" class="container">
    <H4>type、press 和 check 方法来模拟用户与页面元素的交互操作</H4>
    <p>Paragraph 1</p>
    <p>Paragraph 2</p>
    <p>Paragraph 3</p>
    <label for="my_input">my_input :<input type="text" id="my_input"></label><BR><BR>
    <button id="my_button">Click Me</button>
    <input type="checkbox" id="my_checkbox">
    <form action="/submit">
        <!-- 复选框 -->
        <label for="checkbox1">选项1:</label>
        <input type="checkbox" id="checkbox1" name="option1" value="Option 1">
        
        <label for="checkbox2">选项2:</label>
        <input type="checkbox" id="checkbox2" name="option2" value="Option 2">
        
        <!-- 下拉框 -->
        <label for="dropdown">选择一项:</label>
        <select id="dropdown" name="dropdown">
            <option value="option1">选项1</option>
            <option value="option2">选项2</option>
            <option value="option3">选项3</option>
        </select>
        
        <input type="submit" value="提交">
    </form>
</div>
""")

# 使用 CSS 选择器定位元素并模拟用户与页面元素的交互
# 输入文本
driver.find_element(By.CSS_SELECTOR, "input#my_input").send_keys("Hello, World!")

# 点击按钮
driver.find_element(By.CSS_SELECTOR, "button#my_button").click()

# 勾选复选框
driver.find_element(By.CSS_SELECTOR, "input#my_checkbox").click()

# 选择下拉框选项
driver.find_element(By.CSS_SELECTOR, "select#dropdown option[value='option2']").click()

# 提交表单
driver.find_element(By.CSS_SELECTOR, "input[type='submit']").click()

time.sleep(5)
# 关闭浏览器
driver.quit()

# find_element(by, value) 方法是 WebDriver 类对象中用于查找单个页面元素的方法。它接受两个参数:
# by: 指定定位元素的方法,可以是以下之一:
# By.ID: 使用元素的 id 属性来定位。
# By.NAME: 使用元素的 name 属性来定位。
# By.XPATH: 使用 XPath 表达式来定位。
# By.LINK_TEXT: 使用链接文本来定位 <a> 元素。
# By.PARTIAL_LINK_TEXT: 使用部分链接文本来定位 <a> 元素。
# By.TAG_NAME: 使用标签名称来定位。
# By.CLASS_NAME: 使用 class 属性来定位。
# By.CSS_SELECTOR: 使用 CSS 选择器来定位。
# value: 定位方法对应的值,即要定位的元素的具体标识信息。
# 该方法会返回匹配的第一个元素,如果找不到匹配的元素,会抛出 NoSuchElementException 异常。

# `By.CSS_SELECTOR` 是 Selenium WebDriver 提供的一种定位元素的方法,它允许使用 CSS 选择器来定位页面上的元素。
# 以下是常见的 CSS 选择器语法:
# 1. **标签选择器(Tag Selector)**:通过元素的标签名选择元素。
#    - 示例:`p` 选取所有 p 标签的元素。
# 2. **类选择器(Class Selector)**:通过元素的类名选择元素。
#    - 示例:`.container` 选取所有类名为 container 的元素。
# 3. **ID 选择器(ID Selector)**:通过元素的 ID 属性选择元素。
#    - 示例:`#my_div` 选取 ID 属性为 my_div 的元素。
# 4. **属性选择器(Attribute Selector)**:根据元素的属性值选择元素。
#    - 示例:`[name='username']` 选取所有 name 属性值为 username 的元素。
# 5. **子元素选择器(Child Selector)**:选择指定元素的直接子元素。
#    - 示例:`div > p` 选取所有直接子元素为 div 的 p 元素。
# 6. **后代元素选择器(Descendant Selector)**:选择指定元素的后代元素。
#    - 示例:`div p` 选取所有 div 元素下的 p 元素。
# 7. **相邻兄弟选择器(Adjacent Sibling Selector)**:选择指定元素的相邻兄弟元素。
#    - 示例:`h2 + p` 选取紧跟在 h2 元素后的第一个 p 元素。
# 8. **通用兄弟选择器(General Sibling Selector)**:选择指定元素的所有兄弟元素。
#    - 示例:`h2 ~ p` 选取紧跟在 h2 元素后的所有 p 元素。
# 9. **伪类选择器(Pseudo-class Selector)**:根据元素的状态或位置选择元素。
#    - 示例:`:hover` 选取鼠标悬停在元素上的状态。:nth-child(n) 选取父元素的第 n 个子元素。
# 10. **伪元素选择器(Pseudo-element Selector)**:选择元素的特定部分。
#     - 示例:`::before` 选取元素的前面生成的内容。::after 选取元素的后面生成的内容。
# 11. **属性存在选择器:选择具有指定属性的元素。
#     - 示例:input[type] 选取所有具有 type 属性的 input 元素。

# 以上是一些常见的 CSS 选择器语法,结合使用它们可以实现灵活且精准的元素定位。

到了这里,关于Selenium WebDriver提供By.CSS_SELECTOR定位元素方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Selenium:WebDriver简介及元素定位

    一、WebDriver原理 二、WebDriver定位方法 三、WebElement接口常用方法 1、关于WebDriver 设计模式:按照Server-Client的经典设计模式设计; Server端:即Remote Server(远程服务器),可以是任意的浏览器,当脚本启动浏览器时,该浏览器就是Remote Server,它的职责是等待Client发送请求并做出

    2024年02月01日
    浏览(26)
  • AppiumBy、MobileBy和selenium.webdriver.common.by的关系

    从下图可以看出,AppiumBy是导的selenium.webdriver.common.by包,继承的By MobileBy导的appium.webdriver.common.appiumby包,继承的AppiumBy 也就是说在实际代码中使用AppiumBy和MobileBy是一样的,不过MobileBy中明确说了,在2.1.0版本中弃用了MobileBy,最好是使用 AppiumBy

    2024年02月07日
    浏览(20)
  • selenium之By定位

    导入By类 导包: from selenium.webdriver.common.by import By By类的方法: 1. find_element(By.ID, ‘userA’) 2.需要两个参数,第一个参数为定位的类型,由By提供,第二个参数为定位的具体方式。

    2024年01月21日
    浏览(93)
  • Selenium:定位(二:By模块定位,简单无基础)

    目录 一、简介: 二、BY模块 三、find_element方法和find_elements方法 1)、find_element方法和find_elements方法的区别 2)、find_element方法和find_elements方法搭配BY模块使用         (1)find_element方法:         (2)find_elements方法: 三、测试用例 1)、定位逻辑 2)、实际用例 测试代码

    2024年01月15日
    浏览(53)
  • python+selenium报错AttributeError: ‘WebDriver‘ NameError: name ‘By‘ is not defined

    python 3.10.1 selenium 4.4.3 旧版本导包:    新版本导包: 需要多导一个,否则By 是报错的 定位语句  

    2024年02月16日
    浏览(36)
  • Selenium WebDriver对象没有“find_element_by_link_text“属性的解决方案

    Selenium WebDriver对象没有\\\"find_element_by_link_text\\\"属性的解决方案 当使用Selenium的Python绑定进行Web自动化测试时,您可能会遇到以下错误消息:“selenium ‘WebDriver’ object has no attribute ‘find_element_by_link_text’”。这通常是因为使用了不支持的方法或属性。在本文中,我将为您提供解

    2024年02月08日
    浏览(28)
  • selenium报错AttributeError: ‘WebDriver‘ object has no attribute ‘find_element_by_id‘

    “AttributeError: ‘WebDriver’ object has no attribute ‘find_element_by_id’” 错误通常出现在使用 Selenium WebDriver 时,代码中使用了 ‘find_element_by_id’ 方法,但 WebDriver 对象并没有这个方法。这通常是由于版本问题或代码中的拼写错误引起的。 要解决这个问题,您可以采取以下步骤:

    2024年02月08日
    浏览(37)
  • 解决selenium的WebDriver object has no attribute ‘find_element_by_xpath‘问题

    解决selenium的WebDriver object has no attribute \\\'find_element_by_xpath’问题 在使用selenium操作浏览器时,常见的一种定位元素的方式就是Xpath定位。但有时候会出现WebDriver object has no attribute \\\'find_element_by_xpath’的错误提示,意思是WebDriver对象没有该方法。 这通常是因为引入selenium包时未正

    2024年02月10日
    浏览(32)
  • Selenium中出现‘WebDriver‘对象没有‘find_element_by_xpath‘属性的错误解决方案(Python)

    Selenium中出现’WebDriver’对象没有’find_element_by_xpath’属性的错误解决方案(Python) Selenium是一个用于自动化Web浏览器测试的强大工具。它提供了许多方法来定位和操作网页元素。其中一种常用的方法是使用XPath来定位元素。然而,有时你可能会遇到一个错误,提示’WebDrive

    2024年02月04日
    浏览(28)
  • Selenium - Python - AttributeError: ‘WebDriver‘ object has no attribute ‘find_element_by_id‘

    selenium:4.7.2 chromeDriver:108.0.5359.22 下载 最近看selenium遇到了这个报错 看的是这个教程,代码也是里面的。 报错如下 后来查到原因是`find_element_*`已经被移除了 把`bor.find_element_by_id(\\\'key\\\')`换成`bor.find_element(\\\'id\\\',\\\'key\\\')`就行,其他几个类似   参考:Selenium - Python - AttributeError: \\\'We

    2024年02月11日
    浏览(35)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包