在 Python 中使用 Selenium 查找元素
Python 中的 selenium 包用于通过 Web 浏览器实现自动化; 它与几乎所有主要浏览器兼容。 我们可以用 Python 编写脚本,在浏览器上自动执行一些任务。
本篇文章将介绍在 Python 中使用 selenium 查找网页中元素的不同方法。
在 Python 中使用 Selenium 查找元素
元素是网页的基本构造,用于定义其结构。 我们可以利用硒的不同功能来查找元素。
这些函数用于查找使用不同属性(如名称、xpath、id 等)的元素。 我们将使用这些方法从下面的 HTML 文档中检索元素。
<html>
<body>
<p class="content">Some text</p>
<a href="link.html"> Link_text </a>
<form id="some_form">
<input name="email" type="text" />
<input name="pass" type="password" />
</form>
</body>
</html>
请注意
,如果在任何情况下都没有匹配项,则会引发NoSuchElementException
异常。 它们都会返回找到匹配项的元素列表。
下面讨论这些方法。
使用 find_elements_by_name() 函数在 Python 中使用 Selenium 查找元素
网页上的不同元素都分配有名称属性。 我们可以使用 find_elements_by_name() 函数来检索与 name 属性值匹配的元素列表。
请参阅下面的代码。
from selenium import webdriver
driver = webdriver.Chrome(r'C:/path/to/chromedriver.exe')
driver.get("https://www.sample.org/")
e = driver.find_element_by_name('email')
让我们理解上面的代码。
- 我们首先导入 webdriver 类来创建自动化浏览器。 在我们的例子中,我们将使用 Google Chrome 浏览器的 chromedriver.exe。
-
我们使用
get()
函数检索希望从中获取元素的网站。 -
为了获取元素列表,我们使用
find_element_by_name()
函数并在函数内指定 name 属性的值。
请注意
,对于下面讨论的每种方法,代码将保持相同。 只有检索元素的函数(在本例中为find_element_by_name()
)会发生变化。
在 Python 中使用 find_elements_by_id() 函数通过 Selenium 查找元素
id 属性还可以返回在网页上找到的元素列表。 为此,我们可以使用 find_elements_by_id() 函数。
例如,
from selenium import webdriver
driver = webdriver.Chrome(r'C:/path/to/chromedriver.exe')
driver.get("https://www.sample.org/")
e = driver.find_element_by_id('some_form')
使用 find_elements_by_xpath() 函数在 Python 中使用 Selenium 查找元素
我们可以使用 xpath 的路径表达式从文档中检索节点。 要使用 xpath 查找元素,我们可以使用 find_elements_by_xpath() 函数。
路径表达式在函数中指定。
例如,
from selenium import webdriver
driver = webdriver.Chrome(r'C:/path/to/chromedriver.exe')
driver.get("https://www.sample.org/")
e = driver.find_element_by_xpath("/html/body/form[1]")
使用 find_elements_by_link_text() 函数在 Python 中使用 Selenium 查找元素
我们在文档中包含可以重定向到其他网页的元素。 这是通过使用锚标签来实现的。
使用 find_elements_by_link_text()
函数,我们可以使用链接文本检索元素。
请参阅下面的代码。
from selenium import webdriver
driver = webdriver.Chrome(r'C:/path/to/chromedriver.exe')
driver.get("https://www.sample.org/")
e = driver.find_element_by_link_text('Link_text')
使用 find_elements_by_partial_link_text() 函数在 Python 中使用 Selenium 查找元素
此功能与上一个功能类似。 不同之处在于它返回与链接的部分文本匹配的元素。
例如,
from selenium import webdriver
driver = webdriver.Chrome(r'C:/path/to/chromedriver.exe')
driver.get("https://www.sample.org/")
e = driver.find_element_by_partial_link_text('Link_')
在上面的示例中,我们可以观察到我们能够仅使用部分链接文本来检索元素。
使用 find_elements_by_tag_name() 函数在 Python 中使用 Selenium 查找元素
HTML 文档中的每个元素都有一个标签名称。 要使用标签名称查找元素,我们可以使用 Python 中的 find_element_by_tag_name()
。
请参阅下面的代码。
from selenium import webdriver
driver = webdriver.Chrome(r'C:/path/to/chromedriver.exe')
driver.get("https://www.sample.org/")
e = driver.find_element_by_tag_name('form')
使用 find_elements_by_class_name() 函数在 Python 中使用 Selenium 查找元素
我们可以使用 find_elements_by_class_name()
函数来检索与网页上给定类属性匹配的元素。
请参阅下面的代码。
from selenium import webdriver
driver = webdriver.Chrome(r'C:/path/to/chromedriver.exe')
driver.get("https://www.sample.org/")
e = driver.find_element_by_class_name('content')
使用 find_elements_by_css_selector() 函数在 Python 中使用 Selenium 查找元素
我们可以使用 CSS 选择器语法来设置 HTML 元素的样式。 CSS 选择器语法也可用于通过 find_elements_by_css_selector()
函数查找元素。
请参阅以下示例。
from selenium import webdriver
driver = webdriver.Chrome(r'C:/path/to/chromedriver.exe')
driver.get("https://www.sample.org/")
e = driver.find_element_by_css_selector('p.content')
使用 find_elements() 函数在 Python 中使用 Selenium 查找元素
find_elements()
函数是一个私有方法,可以从 HTML 文档中检索元素。 它就像前面讨论的所有方法的顶峰。
我们可以使用前面所有的属性作为参数来查找元素。
例如,
from selenium.webdriver.common.by import By
from selenium import webdriver
driver = webdriver.Chrome(r'C:/path/to/chromedriver.exe')
driver.get("https://www.sample.org/")
e = driver.find_elements(By.NAME, 'email')
上面的示例将像之前一样使用 name 属性查找元素。
总结
我们已经讨论了在 Python 中使用 selenium 根据不同属性查找元素的不同方法。 每个属性都有其功能。
我们还可以使用私有方法 find_elements 并提供不同的属性作为参数。 另一件需要注意的事情是,本文中的方法返回所有可能匹配的元素列表。
如果我们只需要找到一个元素,我们可以在每个讨论的函数中用 elements 替换 element 。 例如,find_elements 变为 find_element。
相关文章
Python 中使用 Selenium 单击按钮
发布时间:2023/07/03 浏览次数:115 分类:Python
-
本篇文章将介绍如何在 Python 中使用 selenium 单击网页上的按钮。Python 中使用 Selenium 单击按钮 我们将首先导入 webdriver 类并创建其对象以启动连接并打开 Web 浏览器。
Python 中 Selenium 的 send_keys() 函数
发布时间:2023/07/03 浏览次数:117 分类:Python
-
send_keys() 是将数字、文本和符号等键盘输入发送到应用程序的文本框的过程。 send_keys() 是 WebDriver 的一部分,每个键盘输入都会发送到此元素。Python 中 Selenium 的 send_keys() 函数
Python 中 Selenium 的 getAttribute() 函数
发布时间:2023/07/03 浏览次数:162 分类:Python
-
本文将解释如何使用 Selenium 的 getAttribute() 方法。Selenium Python 中的 getAttribute() 函数 getAttribute() 方法可以检索元素属性,例如锚标记的 href 属性。 该函数最初将尝试返回指定属性的值。
在 Python 中使用 Selenium 按文本查找元素
发布时间:2023/07/03 浏览次数:92 分类:Python
-
我们将通过示例介绍在Python中使用selenium通过文本查找元素的方法。在 Python 中使用 Selenium 按文本查找元素软件测试是检查应用程序是否满足用户需求的技术。
在Python中添加Selenium Web Driver等待
发布时间:2023/07/03 浏览次数:136 分类:Python
-
本文将介绍在Python中在Selenium Web驱动程序中添加等待的示例。Python Selenium Web 驱动程序等待 大多数 Web 应用程序都使用 AJAX 技术。
Selenium Python 中的动作链
发布时间:2023/07/03 浏览次数:159 分类:Python
-
动作链对象用于在 Python 中实现动作链。 动作链对象可以将所有动作存储在队列中,队列通过调用 perform() 函数来执行所有存储的操作。如何在 Selenium Python 中创建一个简单的动作链对象
Python Selenium 刷新页面
发布时间:2023/07/03 浏览次数:189 分类:Python
-
我们将学习如何使用 Selenium 在 Python 中刷新网页。在 Python 中安装 Selenium 要在本地计算机上安装 Selenium for Python,您可以在命令行界面 (CLI) 中使用著名的 pip 命令,如下所示。
使用 Selenium Python 检查元素是否存在
发布时间:2023/07/03 浏览次数:91 分类:Python
-
本文向您展示如何使用其 Python 客户端和 API 检查某个元素是否存在于 Selenium 中。使用 find_element() 使用 Selenium Python 检查元素是否存在
Python 中的 Schedule
发布时间:2023/07/03 浏览次数:194 分类:Python
-
本篇文章将介绍 Python 中的 Schedule 包,以在特定时间间隔后定期安排作业。Schedule是Python中的一个轻量级进程调度程序库 在 Python 中安装 Schedule 库