find_element_by_id() 驱动方法 – Selenium Python
Selenium 的Python模块是为使用Python执行自动化测试而构建的。 Selenium Python绑定提供了一个简单的 API 来使用Selenium WebDriver 编写功能/验收测试。安装selenium并签出 - 使用 get 方法导航链接后,您可能想更多地使用Selenium Python。在使用selenium (如 geeksforgeeks)打开页面后,您可能希望自动单击某些按钮或自动填写表格或任何此类自动化任务。
本文围绕如何使用Selenium Web Driver 的定位策略来抓取或定位网页中的元素。更具体地说,本文讨论了 find_element_by_id()。使用此策略,将返回 id 属性值与位置匹配的第一个元素。如果没有元素具有匹配的 id 属性,则会引发 NoSuchElementException。
句法 -
driver.find_element_by_id("id_of_element")
例子 -
例如,考虑这个页面源:
html
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_id("gsc-i-id2")
# print complete element
print(element)
现在,在您创建驱动程序后,您可以使用 -
login_form = driver.find_element_by_id('loginForm')
如何在Selenium中使用 driver.find_element_by_id() 方法?
让我们尝试实际实现此方法并获取“https://www.geeksforgeeks.org/”的元素实例。让我们尝试使用其 id “gsc-i-id2”获取搜索表单输入。
创建一个名为 run.py 的文件来演示 find_element_by_id 方法 -
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_id("gsc-i-id2")
# print complete element
print(element)
现在使用 -
Python run.py
首先,它将使用 geeksforgeeks 打开 Firefox 窗口,然后选择元素并在终端上打印,如下所示。
浏览器输出 –
终端输出 -
用于定位单个元素的更多定位器
.math-table { 边框折叠:折叠;宽度:100%; } .math-table td { 边框:1px 实心 #5fb962;文本对齐:左!重要;填充:8px; } .math-table th { 边框:1px 实心 #5fb962;填充:8px; } .math-table tr>th{ 背景颜色:#c6ebd9;垂直对齐:中间; } .math-table tr:nth-child(odd) { background-color: #ffffff; }
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.