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

2024-03-28 10:36:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个使用WebDriver和Python自动运行的web应用程序。

问题是有这样一个菜单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行实际上隐藏了子菜单(尽我所能)

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

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


Tags: divnoneweb应用程序styledisplay菜单position
3条回答

您可以使用JavaScriptExecutor

例如-document.getElementsByClassName('post-tag')[0].click();

通过JavaScriptExecutor发布JS

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

获取要单击的元素:

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

使用javascript单击它:

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

注意:我正在使用jQuery,否则用javascript选择它本机

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

$('.targetClass')

相关问题 更多 >