Selenium WebDriver提供By.CSS

2024-03-20 1732阅读

温馨提示:这篇文章已超过435天没有更新,请注意相关的内容是否还可用!

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

Selenium WebDriver提供By.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` 定位元素并模拟用户与页面元素的交互的完整示例代码:

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," + """
    

type、press 和 check 方法来模拟用户与页面元素的交互操作

Paragraph 1

Paragraph 2

Paragraph 3

my_input :

Click Me 选项1: 选项2: 选择一项: 选项1 选项2 选项3 """) # 使用 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: 使用链接文本来定位 元素。 # By.PARTIAL_LINK_TEXT: 使用部分链接文本来定位 元素。 # 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 选择器语法,结合使用它们可以实现灵活且精准的元素定位。
VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]