如何点击使用Selenium WebDriver隐藏的元素?

时间:2013-07-03 12:34:44

标签: python web-applications selenium automation webdriver

我有一个Web应用程序,我使用WebDriver和Python自动执行。

问题是有一个类似这样的菜单enter image description here 如果我在箭头按钮上手动点击它会扩展到我需要选择特定字段的另一个子菜单。

我可以找到第三个菜单但是当我使用element.click()点击它而不是展开菜单并向我显示其子菜单项时,它会显示所有子菜单的合并内容。

(手动扩展到子菜单是通过实际点击组名前的小箭头图标来实现的) 那么我如何实际点击此箭头图标以将其中一个组菜单展开到子菜单中。

如果有帮助,这是与第三组菜单相对应的HTML

<div id="node_3_item" class="treeLabelSelected" style="padding-left: 0px; background-position: 0px -24px;">
<span style="background-position: 0px -24px;">XXX Groups</span>
</div>
<div style="display: none;"></div>
</div>

display: none行实际上隐藏了子菜单(据我所知)

任何关于如何处理的建议将不胜感激。 感谢

注意:我已经讨论了几个与隐藏网页元素交互相关的问题,但它们与我的情况不同。

3 个答案:

答案 0 :(得分:9)

抓住您想要点击的元素:

# Or using xparth or something
element = driver.find_element_by_css_selector(css_selector)

使用javascript:

点击它
driver.execute_script("$(arguments[0]).click();", element)

注意:我使用jQuery,否则使用javascript选择原生

答案 1 :(得分:5)

您可以使用JavaScriptExecutor

对于Eg。 - document.getElementsByClassName('post-tag')[0].click();

通过JavaScriptExecutor发布JS

  (JavascriptExecutor(webdriver)).executeScript("document.getElementsByClassName('post-tag')[0].click();");

答案 2 :(得分:0)

如果您的应用程序使用jQuery,您可以使用它来指定一个目标元素,这将简化您的工作。 E.g。

$('.targetClass')