Python 如何选择隐藏标签的单选按钮

Python 如何选择隐藏标签的单选按钮,python,python-2.7,selenium,Python,Python 2.7,Selenium,我正在学习python,并尝试在单选按钮上进行基本的单击。此时选择了“返回”单选按钮,而我希望选择“单向”单选按钮。但是,当我运行代码时,它会声明找不到“单向”单选按钮 我想问我需要做什么才能找到一台隐藏在各种标签下的收音机 以下是基本代码: element = driver.find_element_by_xpath("//*[contains(@class, 'option')]") one_way = element.find_element_by_id('one-way').click(

我正在学习python,并尝试在单选按钮上进行基本的单击。此时选择了“返回”单选按钮,而我希望选择“单向”单选按钮。但是,当我运行代码时,它会声明找不到“单向”单选按钮

我想问我需要做什么才能找到一台隐藏在各种标签下的收音机

以下是基本代码:

element = driver.find_element_by_xpath("//*[contains(@class, 'option')]")
one_way = element.find_element_by_id('one-way').click()
更新的代码(仍不工作):


由于元素
id
是唯一的,因此实际上不需要代码的第一行。使用:

element = driver.find_element_by_id('one-way')
这将选择所需的元素。但是,如果该元素不在视图中(即在浏览器中不可见),则可能需要滚动到该元素,然后再单击它。为此,请使用:

driver.execute_script('return arguments[0].scrollIntoView();', element)
这将滚动元素到视图中。然后,您可以使用以下命令单击它:

element.click()

使用JAVASCRIPT/jQuery单击。。 即使您的元素不可见,它也会工作


默认情况下,Selenium不支持与不可见/隐藏元素交互。

您可以获取选项的所有文本/值,但不能与它们交互

隐藏此元素或选项有一个很好的原因:用户可能不会选择它。例如,选项仅适用于高级用户。在这种情况下,进行验证检查的良好web服务器将引发错误

另一句话:

一般来说,您可以使用选择元素的想法,如官方Selenium文档中所述(对于可见元素):


这是我第一次尝试的,但它指出这是一个错误:“ElementNotVisibleException:Message:元素当前不可见,因此可能无法与之交互”,这似乎不起作用。我会给你web的url,以便你可以看到我正在尝试做的事情。当页面打开时,只需单击“单向”按钮。我将我的完整当前代码(包括问题中的示例)尝试代码时的当前错误:WebDriverException:Message:this.getChromeWindowFromDocumentWindow(…)是未定义的自从您提到高级用户以来,这听起来像是一个非常合法的测试用例,以确保您在服务器端验证这一点,即使客户端篡改了一个隐藏选项。
element.click()
select = driver.find_element_by_tag_name("select")
allOptions = select.find_elements_by_tag_name("option")
for option in allOptions:
    print "Value is: " + option.get_attribute("value")
    option.click()