在 Selenium 中查找所有可能的按钮元素 python

Finding all possible button elements in Selenium python

我正在尝试从网站获取所有按钮,但似乎 Selenium 语法已更改但文档未更新。我正在尝试从网站获取按钮,如下所示:

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.common.by import By

driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))
url = 'https://www.programiz.com/python-programming'
driver.get(url)
buttons = driver.find_element(by=By.TAG_NAME("button"))

但是我收到以下错误:

TypeError: 'str' object is not callable

如前所述,文档仍然说要使用已折旧的 find_element_by_tag_name。有人可以帮忙吗?谢谢

问题出在 TAG_NAME 它只是常量而不是可调用的方法, 文档的新用法应该是:

driver.find_element(By.TAG_NAME, 'button') 

在此处查看文档 https://www.selenium.dev/selenium/docs/api/py/index.html#example-1

find_element_by_* 命令现在

要查找所有 <button> 元素,您可以使用以下 :

  • 使用tag_name:

    buttons = driver.find_elements(By.TAG_NAME, "button")
    
  • 使用css_selector:

    buttons = driver.find_elements(By.CSS_SELECTOR, "button")
    
  • 使用 xpath:

    buttons = driver.find_elements(By.XPATH, "//button")