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

abh*_*bhi 12 python selenium automation web-applications webdriver

我有一个Web应用程序,我正在使用WebDriver和Python.

问题是有这样的菜单 在此输入图像描述 如果我在箭头按钮上手动单击它会扩展到我需要选择特定字段的另一个子菜单.

我可以找到第三个菜单但是当我点击它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>
Run Code Online (Sandbox Code Playgroud)

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

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

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

Mat*_*Zeg 11

抓住您想要点击的元素:

# Or using xparth or something
element = driver.find_element_by_css_selector(css_selector)
Run Code Online (Sandbox Code Playgroud)

点击使用javascript:

driver.execute_script("$(arguments[0]).click();", element)
Run Code Online (Sandbox Code Playgroud)

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

  • 我不得不使用driver.execute_script("arguments [0] .click();",element) (4认同)

小智 6

您可以使用JavaScriptExecutor

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

通过JavaScriptExecutor发布JS

  (JavascriptExecutor(webdriver)).executeScript("document.getElementsByClassName('post-tag')[0].click();");
Run Code Online (Sandbox Code Playgroud)

  • 能不能请你详细说明一下. (2认同)