无法单击webdriver可见的链接

时间:2014-04-15 11:07:32

标签: java selenium-webdriver

<ul class="first-of-type">

<li id="yui-gen0" class="yuimenubaritem service_management first-of-type yuimenubaritem-hassubmenu topmenu-selected" groupindex="0" index="0">

<a class="yuimenubaritemlabel yuimenubaritemlabel-hassubmenu" href="#Service Management"> Service Management</a>

<div id="Service Management" class="yui-module yui-overlay yuimenu yui-overlay-hidden" style="z-index: 2; position: absolute; visibility: hidden;">

</li>

<li id="yui-gen1" class="yuimenubaritem signal_management yuimenubaritem-hassubmenu" groupindex="0" index="1">

<li id="yui-gen2" class="yuimenubaritem change_management yuimenubaritem-hassubmenu" groupindex="0" index="2">

<li id="yui-gen3" class="yuimenubaritem substitution_management yuimenubaritem-hassubmenu" groupindex="0" index="3">

<li id="yui-gen4" class="yuimenubaritem video_configuration_standard yuimenubaritem-hassubmenu" groupindex="0" index="4">

<li id="yui-gen5" class="yuimenubaritem dashboard yuimenubaritem-hassubmenu" groupindex="0" index="5">

<li id="yui-gen6" class="yuimenubaritem administration yuimenubaritem-hassubmenu" groupind

I'm not able to click the link - <a class="yuimenubaritemlabel yuimenubaritemlabel-hassubmenu" href="#Service Management"> Service Management</a>

我尝试使用以下代码,但它无效。

方法1:

WebElement e1 = driver.findElement(By.linkText("Service Management"));
e1.click();

Method 2(used Explicit wait as well):
action.moveToEleement(e1).build().perform();

请注意,上面提到的所有方法都是继续尝试点击该元素很长时间,但从不适合我。

任何有关的建议......

2 个答案:

答案 0 :(得分:0)

查看标记,我可以说文本Service Management之前有一个空格因此使用以下(文本前面有空格):

driver.findElement(By.linkText(" Service Management")).click();

或按照Subhrajyoti Majumder的回答。而不是我的答案,Subhrajyoti Majumder的回答很好。如果它适合你,请接受他的回答。

答案 1 :(得分:0)

要么提供答案TDHM,要么尝试使用XPath。这样我可能会点击这样:

driver.findElement(By.xpath("//a[contains(text(), 'Service Management')]")).click();

&#39;包含&#39; -part将查找包含&#39;服务管理&#39;的元素的文本值。 (我们的元素所做的)。

这样,即使决定在将来删除文本之前的空格,脚本也能正常工作。