【问题标题】:How to select radio button using selenium如何使用硒选择单选按钮
【发布时间】:2013-04-17 18:41:51
【问题描述】:

我正在尝试使用 selenium 和 python 单击此单选按钮。

<input type="radio" name="tweet_target_1" value="website" class="tweet-website-button radio-selection-validate serialize-me newline-before field-order-15">

我有

website = driver.find_element(name="tweet_target_1")
website.click()

但它不允许我点击它。如何使用名称、值或类、值等的组合单击?

是否有关于如何使用硒的良好信息来源?因为我发现的大部分内容都是在 java 上,而我正在使用 python。

编辑:使用 XPATH

我试过了

website = driver.find_elements(By.XPATH, "//form[@id='dmca_form' and @class='twitter-form custom-form']/div[20][@class='list-container']/div[1][@class='list-item']/div[7][@class='clearfix inf-tweet init-hide']/div[@class='input']/ul[@class='options']/li[2]/label/input[@class='tweet-website-button radio-selection-validate serialize-me newline-before field-order-15']/")
website.click()

我一直在努力

AttributeError: 'list' object has no attribute 'click'

【问题讨论】:

    标签: python html selenium


    【解决方案1】:

    我知道这可能来得太晚了,但我最近才加入。

    提示:使用 Firebug 和 Firepath。找到单选按钮并找出相关元素的 xpath。

    website = driver.find_element_by_xpath(".//**")
    website.click()
    

    website = driver.find_element_by_xpath(".//**").click()
    

    这应该在您尝试的所有时候都有效。另外,只需使用from selenium import webdriver 应该使click() 函数正常工作。

    【讨论】:

    • 嗨@grizzlyBearGrouser,您可能想要格式化代码示例的一个小技巧,代码块缩进四个空格,以及使用反引号的内联代码(例如code
    • @robjohncox:嘿,谢谢你的提示。以后会牢记在心。
    【解决方案2】:

    我不确定你在哪里找到的文档说你可以像这样调用find_element,但你应该做driver.find_element_by_name("tweet_target_1")driver.find_element(By.NAME, "tweet_target_1")(当然首先导入By)。此外,Selenium Java 代码很容易转换为 Python 代码;它遵循一些非常简单的转换规则,如果您仍有疑问,库本身的所有代码也将在您的机器上查看。

    【讨论】:

    • 也许我正在使用不同版本的 selenium,但它对我不起作用,我不断收到website = driver.find_element(By.NAME,"tweet_target_1") NameError: name 'By' is not defined。我还需要能够通过名称/id 和值找到一个元素。
    • 你先from selenium.webdriver.common.by import By 了吗?是的,这就是为什么有find_element_by_namefind_element_by_id,以及By.NAMEBy.IDBy.ID 实际上也是 find_element 的默认值...
    • 好吧,你是对的。但是没有价值选择吗?如您所见,上面是一个只有名称和值的单选按钮。我不能选择名字,因为有不止一个选项,而且我不能上课,因为它会出现在其他地方。按名称选择然后按值单击不是一个选项吗?
    • 你必须通过某些东西来选择元素,但你可以使用 xpath 或 css 定位器,这两者都允许你按任意属性进行索引。
    • 您可以在虚拟机或虚拟显示器上运行它,但这需要一些重要且相当先进的配置和工程。您也可以使用 HTMLUnit 之类的无头驱动程序之一运行它,但是您并没有真正进行浏览器测试。所以简短的回答是“不”。
    猜你喜欢
    • 2020-10-15
    • 2021-09-19
    • 2011-08-14
    • 1970-01-01
    • 2021-08-12
    • 1970-01-01
    • 2017-12-26
    • 2018-11-02
    • 1970-01-01
    相关资源
    最近更新 更多