find_element_by_css_selector() 驱动方法 – Selenium Python
Selenium 的Python模块是为使用Python执行自动化测试而构建的。 Selenium Python绑定提供了一个简单的 API 来使用Selenium WebDriver 编写功能/验收测试。安装selenium并签出 – 使用 get 方法导航链接后,您可能想更多地使用Selenium Python。在使用selenium (如 geeksforgeeks)打开页面后,您可能希望自动单击某些按钮或自动填写表格或任何此类自动化任务。
本文围绕如何使用Selenium Web Driver 的定位策略来抓取或定位网页中的元素。更具体地说,本文讨论了 find_element_by_css_selector()。使用此策略,将返回具有匹配 CSS 选择器的第一个元素。如果没有元素具有匹配的 CSS 选择器,则会引发 NoSuchElementException。
句法 -
driver.find_element_by_css_selector("CSS Selectors")
例子 -
例如,考虑这个页面源:
HTML
Site content goes here.
Python3
# Python program to demonstrate
# selenium
# import webdriver
from selenium import webdriver
# create webdriver object
driver = webdriver.Firefox()
# enter keyword to search
keyword = "geeksforgeeks"
# get geeksforgeeks.org
driver.get("https://www.geeksforgeeks.org/")
# get element
element = driver.find_element_by_css_selector("input.gsc-i-id2")
# print complete element
print(element)
现在,在您创建驱动程序后,您可以使用 -
content = driver.find_element_by_css_selector('p.content')
如何在Selenium中使用 driver.find_element_by_css_selector() 方法?
让我们尝试实际实现此方法并获取“https://www.geeksforgeeks.org/”的元素实例。让我们尝试使用其 id “GSC-i-id2”获取搜索表单输入。
创建一个名为 run.py 的文件来演示 find_element_by_css_selector 方法 -
Python3
# Python program to demonstrate
# selenium
# import webdriver
from selenium import webdriver
# create webdriver object
driver = webdriver.Firefox()
# enter keyword to search
keyword = "geeksforgeeks"
# get geeksforgeeks.org
driver.get("https://www.geeksforgeeks.org/")
# get element
element = driver.find_element_by_css_selector("input.gsc-i-id2")
# print complete element
print(element)
现在使用 -
Python run.py
首先,它会用 geeksforgeeks 打开 firefox 窗口,然后选择元素并在终端上打印,如下图所示。
浏览器输出 –
终端输出 -
用于定位单个元素的更多定位器
Locators | Description |
---|---|
find_element_by_id | The first element with the id attribute value matching the location will be returned. |
find_element_by_name | The first element with the name attribute value matching the location will be returned. |
find_element_by_xpath | The first element with the XPath syntax matching the location will be returned. |
find_element_by_link_text | The first element with the link text value matching the location will be returned. |
find_element_by_partial_link_text | The first element with the partial link text value matching the location will be returned. |
find_element_by_tag_name | The first element with the given tag name will be returned. |
find_element_by_class_name | the first element with the matching class attribute name will be returned. |
find_element_by_css_selector | The first element with the matching CSS selector will be returned. |