【问题标题】:How to click on an hidden element of type href = "#" using selenium WebDriver如何使用 selenium WebDriver 单击 href = "#" 类型的隐藏元素
【发布时间】:2014-11-20 09:46:18
【问题描述】:

我正在尝试单击下拉列表中的元素,单击该元素时最初隐藏该元素,显示列表,我想单击列表中的一个名称。 我尝试使用选择下拉菜单..通过可见文本方法查找,但收到一个错误,提示该元素是输入类型而不是下拉菜单。

我尝试使用 xpath、Css 选择器、链接名和 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']"

提前致谢。

【问题讨论】:

  • 您能添加一张您的下拉菜单的快照吗?
  • 我无法上传图片,添加 Dropbox 链接,请下载并查看图片。 dropbox.com/s/d8bl9smymeh3eao/test.png?dl=0
  • 请检查 @Oleksii 的以下答案。我建议你也这样做。因为要使用 Select 类及其方法,下拉列表必须是 select type

标签: selenium-webdriver


【解决方案1】:

WebDriver 不允许点击隐藏元素。天真的方法只是执行 2 次点击。首先在下拉列表中,然后在选项中: click "//div[@class='dropdown']" 然后它会出现,而你 click "//div[@class='dropdown']//a[text()='Akram']"。也有可能在执行第二次点击时,下拉选项仍然可能被隐藏,在这种情况下,您需要等待它们首先出现。

【讨论】:

  • 有没有一种方法可以在 Xpath 字符串中传递变量名称,就像上面的情况一样,而不是点击“Akram”我想点击任何其他文本,所以是否可以将此文本添加到变量并使用 xpath 中的变量 "//div[@class='dropdown']//a[text()='Akram']"
  • 您使用什么语言?您需要在该语言中查找字符串连接。可能你可以这样做: String opt = "Akram"; String xpath = "//div[@class='dropdown']//a[text()='" + opt + "']";
  • 我正在使用 Java,感谢 Oleksii Matiiasevych 的帮助,上述解决方案有效。
猜你喜欢
  • 1970-01-01
  • 2013-07-01
  • 2016-01-07
  • 2014-04-02
  • 2020-01-29
  • 2012-08-15
  • 2012-09-03
  • 1970-01-01
  • 2016-04-14
相关资源
最近更新 更多