2016-12-01 286 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

相關問題