如何使用selenium WebDriver单击href =“#”类型的隐藏元素

时间:2014-11-20 09:46:19

标签: selenium-webdriver

我试图点击下拉列表中的元素,点击它时最初隐藏元素,显示列表,我想点击列表中的一个名称。 我尝试使用选择下拉列表...通过visbile文本方法查找,但得到一个错误,表示元素是输入类型而不是下拉列表。

我尝试使用xpath,Css选择器,linkname和Partiallinktext,但都没有用。

我需要点击的元素的HTML如下:

<div class="dropdown" style="display: none;">
<div class="search">
<div class="tree" style="display: block;">
<ul class="open">
<li>
<a class="parent open" href="#"></a>
<a class="current" data-nodeid="7" data-name="Global" data-nodemetadata="Global,Global" data-fullname="Global" href="#">Global</a>
<ul class="open">
<li>
<li>
a data-nodeid="807" data-name="Akram" data-nodemetadata="Akram,akram" data-fullname="Akram" `href="#">Akram</a>`
</li>
<li>

我想点击'Akram'元素。任何帮助将不胜感激。

有没有办法在Xpath字符串中传递变量名称,就像上面的情况一样,而不是单击'Akram'我想点击任何其他文本,那么是否可以将此文本添加到变量并使用xpath中的变量“// div [@ class ='dropdown'] // a [text()='Akram']”

提前致谢。

1 个答案:

答案 0 :(得分:3)

WebDriver不允许点击隐藏的元素。 Naїve方法只需执行2次点击。首先是下拉,第二个是选项: click "//div[@class='dropdown']"然后会显示,click "//div[@class='dropdown']//a[text()='Akram']"。此外,有可能在执行第二次点击时,仍然可以隐藏下拉选项,在这种情况下,您需要等待它们首先显示。