12

我有一个使用 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>

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

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

注意:我已经解决了几个与隐藏 Web 元素交互相关的 SO 问题,但它们与我的情况不同。

4

3 回答 3

13

抓住你要点击的元素:

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

使用 javascript 点击它:

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

注意:我使用的是 jQuery,否则使用 javascript 选择它

于 2015-04-28T12:33:57.500 回答
6

您可以使用 JavaScriptExecutor

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

通过 JavaScriptExecutor 发出 JS

  (JavascriptExecutor(webdriver)).executeScript("document.getElementsByClassName('post-tag')[0].click();");
于 2013-07-03T12:48:01.987 回答
0

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

$('.targetClass')
于 2013-07-03T18:51:45.533 回答