如何使用 selenium python 查找包含特定字符串的所有按钮?

Posted

技术标签:

【中文标题】如何使用 selenium python 查找包含特定字符串的所有按钮?【英文标题】:How to find all buttons which contains a specific string using selenium python? 【发布时间】:2022-01-22 21:08:53 【问题描述】:

我想查找页面上所有包含单词“card”或单词“bag”的按钮。

例如它可以是“添加到卡片”或“添加到袋子”或“卡片”等。

from selenium import webdriver 
from selenium.webdriver.support.color import Color
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.common.action_chains import ActionChains

driver = webdriver.Chrome(executable_path = ChromeDriverManager().install())
driver.get('https://www.inshoes.gr/andrikes-zones-andrikes-zones-dermatines-diplis-opseos-33000481-kamel-mavro')
buttons=driver.find_element_by_xpath('//button[normalize-space()="Click me!"]')

for button in buttons:
    print (button)

【问题讨论】:

例如它可以是“添加到卡片”或“添加到袋子”或“卡片”等 - 您正在查看哪些按钮,请指定它们。 【参考方案1】:

我将以下内容用于这个确切的用例(用于接受 cookie):

buttons = driver.find_elements_by_xpath("//button[contains(text(), 'Accept cookies')]") # Try Click Cookies

您可以随意更换文字。

【讨论】:

谢谢!我怎样才能得到这个的背景颜色? 对不起,我不太清楚你的意思,按钮的背景颜色?你能给我看一个按钮的例子吗(就实际的html而言)。 f我想要一个网站列表,我想为每个网站找到“添加到卡片按钮”并找到它的颜色 明白,我需要查看您尝试从中抓取的其中一个 html 标签的示例,以便我了解它的结构。 概览 .add-to-cart-button:hover, .variant-overview .add-to-cart-button:hover background-color: #b41733;【参考方案2】:

要查找页面上包含单词 card 或单词 bag 的所有按钮,您可以加入俱乐部在 lambda 表达式中使用xpath 的条件,您可以使用以下Locator Strategy:

elements = WebDriverWait(driver,20).until(lambda driver: driver.find_element(By.XPATH,"//button[contains(., 'card')]") or driver.find_element(By.XPATH,"//button[contains(., 'bag')]"))

【讨论】:

以上是关于如何使用 selenium python 查找包含特定字符串的所有按钮?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Selenium 和 Python 在元素中查找元素?

如何在 Selenium 和 Python 中使用类型查找元素

Python爬虫编程思想(96):使用Selenium查找多个节点

Selenium web 自动化使用 python:如何使用 selenium 处理表以通过匹配文本来查找特定行并删除该行

如何使用python在selenium中通过其id名称的一部分查找元素

如何使用 Selenium 和 Python 查找从 covid 中恢复的人数的类路径