📅  最后修改于: 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 选择器是一种用来匹配 HTML 元素的字符串模式。下面是一些常见的 CSS 选择器语法:
tagname
:匹配指定标签名的元素,如 div
、a
、p
等。#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 选择器即可。