2017-04-26 71 views
-1

我有一個動態生成的表與thead和tbody。這裏是例子:通過文本查找元素,獲取xpath並放入列表中,因爲每個td都是唯一元素 - 硒webdriver junit

<tbody id="tableId" class="someclass1"> 
<tr id="rowId1" class="somesubclass"> 
<td id="item1" class="othersubclass"> 
    <span class="attr">john Doe</span> 
<td id="item2"> 
    <span class="attr">55</span> 
<td id="item3"> 
    <span class="attr">5 street</span> 
<td id="item2"> 
    <span class="attr">cat</span> 
<tr id="rowId2" class="somesubclass2"> 
<td id="item1" class="othersubclass2"> 
    <span class="attr">joe smith</span> 
<td id="item2"> 
    <span class="attr">60</span> 
<td id="item3"> 
    <span class="attr">2 street</span> 
<td id="item2"> 
    <span class="attr">dog</span> 

| joe doe | 55 | 5 street | cat | | joe foo | 60 | 1 street | dog |

我想找到一個文本行,其中名稱是joe doe並將其放入列表中。

Locatior正在與此合作,但它不是一個列表。

@FindBy(xpath = "//tbody[contains(@id,'tableId')]/tr[td//text()[contains(.,'joe doe')]]") 
private List<WebElement> list; 

我得到的名單,但因爲一切都已經投入到這樣的第一個位置,我不能遍歷:

列表第一個元素是:喬母鹿55 5個街道貓所以這是[ 0]元素

如何找到該行作爲列表,其中每個td是列表中的唯一元素。

(迭代,轉換爲字符串等是沒有問題的,只是定位器。)

謝謝!

+0

您正在使用哪種語言? Java/PHP/Python? – SomeDude

+0

對不起,我沒有提到它。 Java +硒webdriver。 – brobee

回答

0

我不明白-1是什麼。無論如何,這是別人的答案,希望這有助於!

有一個很好的谷歌kinda firepath插件:SelAssist,我用它來測試我的xpath定位器。

問題是,td丟失了。所以正確的定位器是

//tbody[contains(@id,'tableId')]/tr[td//text()[contains(.,'joe doe')]]/td 

它給出了我不僅一個元素的列表。

乾杯!