首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用Python和Selenium选择此按钮?

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

Stack Overflow用户
提问于 2018-07-29 01:50:13
回答 2查看 67关注 0票数 0

我正在尝试使用Python和Selenium在这些按钮上单击Yes或No:

这些按钮的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()

但这并没有识别出任何元素。

您将如何选择和单击这些按钮?

EN

回答 2

Stack Overflow用户

发布于 2018-07-29 01:54:08

您可以再次尝试使用xpath (尝试从源代码中精确复制xpath ):

dontHaveISBN=driver.find_element_by_xpath('xpath_here')
dontHaveISBN.click()
票数 1
EN

Stack Overflow用户

发布于 2018-07-29 20:39:37

xpath try中,您忘记了结束的],这就是它无效的原因。但是这个定位器还有一个更大的问题:它也匹配NO按钮。

在您给出多个类作为参数的class_name尝试中,find_elements_by_class_name只接收一个类作为参数。

data-id属性似乎是唯一的,您可以使用它

# Yes button
driver.find_element_by_css_selector('[data-id="1"]')

# No button
driver.find_element_by_css_selector('[data-id="0"]')

# using xpath
driver.find_element_by_xpath('//a[@data-id="1"]')

或使用文本

driver.find_element_by_link_text('Yes')

driver.find_element_by_xpath('//a[text()="Yes"]')
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51573844

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档