我试图点击下拉列表中的元素,点击它时最初隐藏元素,显示列表,我想点击列表中的一个名称。 我尝试使用选择下拉列表...通过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']”
提前致谢。
答案 0 :(得分:3)
WebDriver不允许点击隐藏的元素。 Naїve方法只需执行2次点击。首先是下拉,第二个是选项:
click "//div[@class='dropdown']"
然后会显示,click "//div[@class='dropdown']//a[text()='Akram']"
。此外,有可能在执行第二次点击时,仍然可以隐藏下拉选项,在这种情况下,您需要等待它们首先显示。