📌  相关文章
📜  find_element_by_css_selector() 驱动方法 – Selenium Python(1)

📅  最后修改于: 2023-12-03 15:15:04.248000             🧑  作者: Mango

find_element_by_css_selector() 驱动方法 - Selenium Python

在使用 Selenium Python 进行网页自动化测试时,可以使用 find_element_by_css_selector() 方法根据 CSS 选择器查找页面元素。

语法
element = driver.find_element_by_css_selector(selector)

其中,selector 是 CSS 选择器。这个方法返回找到的第一个匹配元素,如果没有找到匹配元素,则会抛出 NoSuchElementException 异常。

批量查找元素

需要查找多个元素时,可以使用 find_elements_by_css_selector() 方法:

elements = driver.find_elements_by_css_selector(selector)

注意,这个方法返回的是一个列表,如果没有找到任何匹配元素,则返回空列表。

示例代码
from selenium import webdriver

# 创建浏览器对象
driver = webdriver.Chrome()

# 访问网页
driver.get("https://www.baidu.com")

# 使用 CSS 选择器查找输入框
input_box = driver.find_element_by_css_selector("#kw")

# 清空输入框,并输入文本
input_box.clear()
input_box.send_keys("Python Selenium")

# 使用 CSS 选择器查找搜索按钮,并点击
search_btn = driver.find_element_by_css_selector("#su")
search_btn.click()

# 关闭浏览器窗口
driver.quit()
CSS 选择器语法

CSS 选择器是一种用来匹配 HTML 元素的字符串模式。下面是一些常见的 CSS 选择器语法:

  • tagname:匹配指定标签名的元素,如 divap 等。
  • #id:匹配指定 ID 的元素,如 <div id="content"> 可以使用 #content 选择器。
  • .class:匹配指定 class 的元素,如 <div class="article"> 可以使用 .article 选择器。
  • []:匹配具有指定属性的元素,如 [href="https://www.baidu.com"] 匹配所有 href 属性为 https://www.baidu.com 的元素。
  • :pseudo-class:匹配指定伪类的元素,如 :hover 匹配鼠标悬停的元素。

更多 CSS 选择器语法可以在 W3School 上查看。

在使用 Python 的 find_element_by_css_selector() 方法时,不需要在选择器字符串前面加入任何前缀,例如 $.#。只需要按照正确的语法编写 CSS 选择器即可。