如何使用 Selenium 通过文本查找元素
有关如何使用 Selenium 通过文本查找元素的分步指南。
重要提示:本教程将使用真实案例,因此您需要安装Selenium库和浏览器驱动程序。
步骤 1。 写下你的第一个 Selenium 脚本.
注意: 我们将使用 Python
和 Chrome WebDriver。 你可以添加 Chrome 网络驱动程序 至 这个 途径.
步骤 2。 现在你需要导入 By 选择器模块。
from selenium.webdriver.common.by import By
//*[contains (text(),'stock')]
它会在页面中查找文本包含特定字符串的任何元素。
element_by_text = driver.find_element(By.XPATH, "//*[contains (text(),'stock')]").text
print (element_by_text)
注意:我们使用driver.find_element()函数只是为了获取选择器找到的第一个元素。也可以使用driver.find_elements()函数来获取所有元素的列表。
这是脚本的输出结果,显示了您刚刚抓取的元素。
步骤 5.现在我们可以清理结果,从文本中提取数字,并将其作为整数变量进行其他操作。您可以使用一些简单的正则表达式来实现这一点。
在这里,我们找到element_by_text字符串中的十进制数,将其赋值给一个新变量,并单独打印出来:
in_stock = re.findall(r'\d+', element_by_text)[0]
print (f'In stock: {in_stock}')
这是脚本的输出结果。它显示了您刚刚抓取的书籍的库存情况。
结果:
恭喜,您刚刚使用 Selenium 提取了一本书的库存情况。
from selenium import webdriver
from selenium.webdriver.common.by import By
import re
driver = webdriver.Chrome()
driver.get("http://books.toscrape.com/catalogue/a-light-in-the-attic_1000/index.html")
element_by_text = driver.find_element(By.XPATH, "//*[contains (text(),'stock')]").text
driver.quit()
print (element_by_text)
in_stock = re.findall(r'\d+', element_by_text)[0]
print (f'In stock: {in_stock}')