2017-07-06 59 views
0

我想讓硒單擊選擇按鈕,但我不能使用by.linkText(),因爲有兩個同名的按鈕。 我正在使用此xpath ".//*[contains(@id,'view-something_111111_2A22DF2_)']/div/a[text()='Select']";來查找按鈕,但找不到它。我也試過".//*[contains(@id,'view-something_111111_2A22DF2_)']/div/a";。 我查看了Selenium文檔,似乎無法找到解決方案。如何點擊2個具有相同名稱,無標識和同一類的鏈接中的一個。硒java

下面是網站的一段代碼:

<div id="view-something_111111_2A22DF2_0" class="coverage-wrap collapse" aria-expanded="false" style="height: 30px;">...</div> 
 
<div class="btn-raplace"> 
 
    <a class="btn-beer" data-toggle="collapse" data-target="#view-effectData_111111_2A22DF2_0">Select</a>

參考,第二個選擇按鈕有這樣的代碼:

<div id="view-something_111111_2A3B5DF2_0" class="coverage-wrap collapse" aria-expanded="false" style="height: 30px;">...</div> 
 
<div class="btn-raplace"> 
 
    <a class="btn-beer" data-toggle="collapse" data-target="#view-effectData_111111_2A3B5DF2_0">Select</a>
這就是爲什麼我我在我的xpath中使用了id。

謝謝。

+0

你能格式化HTML DOM(部分網站代碼)正確地供我們進一步分析?謝謝 – DebanjanB

+0

這樣更好嗎? – Gingja

+0

考慮以下步驟:1.點擊編輯編輯問題。 2.將光標放置在要粘貼HTML DOM的位置。 3.點擊JavaScript/HTML/CSS,打開代碼片段窗口。 4.點擊HTML區域。 5.粘貼你的代碼。 6.點擊「Tidy」來格式化您的代碼。 7.點擊「保存並插入帖子」 – DebanjanB

回答

0

我可以在你使用的Xpath中看到兩個錯誤。

的第一個錯誤:

.//*[contains(@id,'view-something_111111_2A22DF2_)']是incorrect.You放置了單引號在錯誤的地方。它應該是 // DIV [含有(@ ID, '查看-something_111111_2A22DF2')]

第二個錯誤

與類= 「BTN-raplace」 元素DIV不是孩子的上述元素。我可以在HTML中看到上面的元素在這個元素之前有結束標籤。

請更換您的XPATH:
// DIV [包含(@ ID, '視圖something_111111_2A22DF2')] /以下同胞:: DIV [1] /一

+0

哇,我剛剛看到的第一個錯誤,第二個錯誤教會了我一些新的東西,精美的作品,非常感謝你。 – Gingja

0

這裏是回答你的問題:

使用此XPath:

//div[@class='btn-raplace']/a[@class='btn-beer'] 

讓我知道如果這個回答你的問題。

+0

問題是第二個按鈕具有完全相同的類名稱。我需要點擊的鏈接取決於'「.//* [contains(@ id,'view-something_111111_2A22DF2 _)']'(主要是2A22DF2,可以改變但我可以照顧) – Gingja

+0

你可以擴展HTML DOM,所以我可以看到2選擇標籤之間的確切區別嗎?將它的公共URL也分享給我,謝謝 – DebanjanB

+0

我已經添加了上面的第二個按鈕 – Gingja

1

你可以試試這個XPATH: - //*[@class="btn-raplace"]/a[@class="btn-beer"][1]這裏[1]是ur按鈕的位置。你想要點擊的地方

+0

不幸的是,我需要它依賴'view-something_111111_THIS NUMBER_0'因爲這個數字發生了什麼變化 – Gingja

相關問題