当前位置:首页 » 《关于电脑》 » 正文

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

26 人参与  2024年04月17日 13:35  分类 : 《关于电脑》  评论

点击全文阅读


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

from selenium import webdriverfrom selenium.webdriver.common.by import Byimport 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 选择器语法,结合使用它们可以实现灵活且精准的元素定位。


点击全文阅读


本文链接:http://zhangshiyu.com/post/96517.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • 她的记忆停留在了最爱初恋的那年许欣柔楚临川完本_她的记忆停留在了最爱初恋的那年(许欣柔楚临川)
  • 全书浏览假千金的实习生男友霸占我办公室,我反手让他们倾家荡产(顾家明)_假千金的实习生男友霸占我办公室,我反手让他们倾家荡产(顾家明)全书结局
  • 童养夫让我给他的新欢出修复费(林嘉芝林思雅)_童养夫让我给他的新欢出修复费林嘉芝林思雅
  • 全文资助生女婿让我给他白月光付三千万月子中心钱(宋清玉宋雅)列表_全文资助生女婿让我给他白月光付三千万月子中心钱
  • 碎在时光里的谎言喻景宴秦明月完本_碎在时光里的谎言(喻景宴秦明月)
  • 旧爱剜心吻成灰席鄢之岑秋全书免费旧爱剜心吻成灰席鄢之岑秋全书免费
  • 结婚六年丈夫不碰我谁知儿子亲爹是寡头(纪清言傅司砚),结婚六年丈夫不碰我谁知儿子亲爹是寡头
  • 老公想换掉我的男胎,我笑他自不量力(宋薇于继业)_老公想换掉我的男胎,我笑他自不量力宋薇于继业
  • 给太子下了噬心蛊后,皇后找上门(小夭赵劼)全书浏览_给太子下了噬心蛊后,皇后找上门全书浏览
  • 豪门绝嗣!带球跑的夫人回来了!(谢长宴慕清杳)_豪门绝嗣!带球跑的夫人回来了!谢长宴慕清杳
  • 完美身材(李朵林之晴)_完美身材李朵林之晴
  • 离婚后,我和快穿系统绑定(白意秋陈荣周立慧)_离婚后,我和快穿系统绑定(白意秋陈荣周立慧)

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1