2016-12-01 289 views
-1

我无法点击列表webelement。这是列表的HTML。我需要点击管理员标签。如何点击selenium中的div标签列表元素java

<ul id="ctl00_PostIssueContent_PostIssueTrxLinks_TransactionTabsList" class="TransactionLinksTab listitem-cursor-pointer"> 
    <li> 
     <div>Transactions</div> 
    </li> 
    <li> 
     <div>Restricted</div> 
    </li> 
    <li> 
     <div>Quotes</div> 
    </li> 
    <li> 
     <div>Admin</div> 
    </li> 
</ul> 

我试图与代码

driver.findElement(By.xpath("//*[@id='TransactionLinksTabContainer']/ul/li[3]/div")).click(); 

,但没有奏效。

感谢您的回复。但没有人工作。用户界面中的webelement是一个选项卡。在UI中它有四个选项卡。如果我点击该管理员标签,那么一大串元素将被展示。 enter image description here

+0

我更新了问题中的格式。将来,请使用四个空格缩进代码和HTML,使其格式正确,以便更容易阅读。 – JeffC

+0

请澄清当您的代码运行时会发生什么......是否有错误消息或发生了什么?如果适用,请包括整个错误消息。 – JeffC

回答

0

您可能想要包含html。这是一个下拉列表?它是一个点击打开列表或鼠标悬停?从这个角度考虑,我作为一个用户在做什么?如果它是鼠标悬停,则需要将鼠标悬停在元素上。如果您必须先点击才能打开菜单,请先执行此操作。然后点击元素只需执行下面的操作即可。我更喜欢C#人,但下面的xpath可能会有所帮助。

//div[text()='Admin'] 
+0

如果您有任何问题,请在评论中提问。它使你的答案看起来不像是答案,更像是一个扩展评论。 DIV包含字符串“Admin”,而不是LI,因此您需要更新XPath。它也是一个精确的字符串匹配,所以你不需要'contains()'。 – JeffC

+0

当我写这个时,html不存在。更正xml。 – Dazed

+0

错误xpath。得到了交叉污染的工作其他东西呃 – Dazed

0

我认为你的XPath刚刚关闭。您似乎已经开始使用其他父元素,因为XPath中的ID与您发布的HTML不匹配。试试这个XPath,而不是:

"//*[@id='ctl00_PostIssueContent_PostIssueTrxLinks_TransactionTabsList']/li/div[text()='Admin']" 

我纠正了ID,后代,并通过使用text()添加的确切字符串匹配以“管理员”。

+0

我试过这个..但也没有工作。 – Nagalatha

+0

它以什么方式不起作用?错误讯息还是?根据您提供的HTML,此XPath是正确的。如果这不起作用,您将不得不做更多的调查并提供更多信息。 – JeffC

0

这应该工作:

driver.findElement(By.xpath( “// UL [@ ID = 'ctl00_PostIssueContent_PostIssueTrxLinks_TransactionTabsList'] // LI/DIV [文本()= '管理员']”)) 。点击();

+0

@Ramnath。我试过这个,但它没有奏效。 – Nagalatha

相关问题