如何使用Python和Selenium选择此按钮?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (151)

我试图使用Python和Selenium在以下按钮上单击“是”或“否”:

这些按钮的HTML如下:

我尝试基于XPath进行选择:

isbnButton = browser.find_elements_by_xpath("//a[@data-toggle='haveisbn'")

正如一位朋友所建议的,但它给了我一个错误,即字符串不是有效的XPath表达式。我对XPath几乎一无所知,在等待答案的时候,我正在做一个教程,但我希望有人能引导我朝着正确的方向前进。

我最初尝试的是:

dontHaveISBN = driver.find_elements_by_class_name('btn radio btn-radio btn-primary not-active w-100')
dontHaveISBN[1].click()

但这并不能识别任何元素。

如何选择并单击这些按钮?

提问于
用户回答回答于

你可以尝试使用以下代码:

wait = WebDriverWait(driver, 10)
yes_button = wait.until(EC.element_to_be_clickable((By.LINK_TEXT, 'Yes')))
yes_button.click()  

最好用链接文本XPath

如果你只想使用XPath,那么应该是:

//a[text()='Yes']

请注意,你必须导入以下内容:

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC    
用户回答回答于

你可以再次尝试使用XPath(尝试准确地从源代码复制XPath):

dontHaveISBN=driver.find_element_by_xpath('xpath_here')
dontHaveISBN.click()

扫码关注云+社区

领取腾讯云代金券