Python 硒不';不要点击某些元素

Python 硒不';不要点击某些元素,python,python-2.7,selenium,Python,Python 2.7,Selenium,我试图点击并取消选中某些复选框,我想取消选中 协议下的SOCKS4/5 慢中速 连接时间慢和中等 最终结果如下所示: 这是我的密码: from selenium import webdriver driver = webdriver.Firefox() driver.implicitly_wait(10) base_url = "http://proxylist.hidemyass.com/" driver.get(base_url) driver.find_element_by_xpa

我试图点击并取消选中某些复选框,我想取消选中

  • 协议下的SOCKS4/5
  • 慢中速
  • 连接时间慢和中等
  • 最终结果如下所示:


    这是我的密码:

    from selenium import webdriver
    
    driver = webdriver.Firefox()
    driver.implicitly_wait(10)
    base_url = "http://proxylist.hidemyass.com/"
    driver.get(base_url)
    
    driver.find_element_by_xpath("(//input[@name='pr[]'])[2]").click()
    driver.find_element_by_name("sp[]").click()
    driver.find_element_by_xpath("(//input[@name='sp[]'])[2]").click()
    driver.find_element_by_name("ct[]").click()
    driver.find_element_by_xpath("(//input[@name='ct[]'])[2]").click()
    

    但此代码仅在连接时间中取消选中慢速和中等,但不会取消选中
    1
    2
    中所述的复选框。这是为什么?

    看起来输入是隐藏的。但输入后的范围是可见的。我想试试这样的东西:

    (//input[@name='pr[]'])[2]/following-sibling::span
    

    我已经成功地使用

    a = driver.find_element_by_css_selector("input[value='2']")
    a.click()
    
    编辑:更广义的方法:

    fieldsets = driver.find_elements_by_css_selector('fieldset')
    protocol = [i for i in fieldsets if "protocol" in i.text.lower()][0]
    sock_input = protocol.find_element_by_css_selector('input[value="2"]')
    sock_input.click()
    

    对于“速度”和“连接时间”字段集实体,您只需重复前面的步骤即可

    无任何更改:(您使用的是什么驱动程序?Firefox驱动程序v.28 iirc中隐藏的样式复选框也存在类似问题。@limelights我使用的是Firefox 29.0.1顺便问一下,您是如何解决问题的?@KDawG我们还没有,我们仍在等待新驱动程序的发布。不确定是否已经更新。