在Python中使用Selenium单击/选择单选按钮

Das*_*uno 14 python selenium selenium-webdriver

我试图从3个按钮的列表中进行选择,但找不到选择它们的方法.以下是我正在使用的HTML.

<input name="pollQuestion" type="radio" value="SRF"> 
    <font face="arial,sans-serif" size="-1">ChoiceOne</font><br />
<input name="pollQuestion" type="radio" value="COM">
    <font face="arial,sans-serif" size="-1">ChoiceTwo</font><br />
<input name="pollQuestion" type="radio" value="MOT">
    <font face="arial,sans-serif" size="-1">ChoiceThree</font>
Run Code Online (Sandbox Code Playgroud)

我可以使用以下代码找到它:

for i in browser.find_elements_by_xpath("//*[@type='radio']"):
     print i.get_attribute("value")
Run Code Online (Sandbox Code Playgroud)

输出:SRF,COM,MOT

但我想选择ChoiceOne.(点击它)我该怎么做?

Yi *_*eng 38

使用CSS Selector或XPath value直接选择属性,然后单击它.

browser.find_elements_by_css("input[type='radio'][value='SRF']").click
# browser.find_element_by_xpath(".//input[@type='radio' and @value='SRF']").click
Run Code Online (Sandbox Code Playgroud)

更正(但OP应该学习如何在文档中查找)

  • 在Python绑定中,find_elements_by_css不存在,它被称为find_elements_by_css_selector.应该能够查看异常消息并回顾这里的文档并找出原因.
  • 注意之间的差异find_element_by_css_selectorfind_elements_by_css_selector?第一个找到第一个匹配元素,第二个找到一个列表,所以你需要使用[0]来索引.是API文档.我使用后者的原因是因为我复制了你的代码,我不应该这样做.

  • 实际上它是`find_element_by_css_selector("input[type='radio'][value='SRF']").click()` (5认同)