2016-03-02 101 views
0

我正在使GWT應用程序自動化。有一個包含以下列的表格:複選框,用戶ID,用戶名,Fname,LName,電子郵件。如何根據行值選擇表格中的複選框?

下面是一個單行表中的代碼:

</div> 
</td> 
</tr> 
</tbody> 
</table> 
</div> 
</td> 
<td class="GB1F3LJFQ GB1F3LJKO" title="8902" align="right" style="height: 19px; width: 34px;"> 
<div style="height: 19px; width: 34px;"> 
<div class="gwt-HTML">8902</div> 
</div> 
</td> 
<td class="GB1F3LJFQ GB1F3LJKO" title="Agency_Group_0_Agency_Group_Member_0_dan_all_features_6" align="left" style="height: 19px; width: 146px;"> 
<div style="height: 19px; width: 146px;"> 
<div class="gwt-HTML">Agency_Group_0_Agency_Group_Member_0_dan_all_features_6</div> 
</div> 
</td> 
<td class="GB1F3LJFQ GB1F3LJKO" title="" align="left" style="height: 19px; width: 63px;"> 
<div style="height: 19px; width: 63px;"> 
<div class="gwt-HTML"> 

</div> 
</div> 
</td> 
<td class="GB1F3LJFQ GB1F3LJKO" title="" align="left" style="height: 19px; width: 28px;"> 
<div style="height: 19px; width: 28px;"> 
<div class="gwt-HTML"> 

</div> 
</div> 
</td> 
<td class="GB1F3LJFQ GB1F3LJKO" title="[email protected]" align="left" style="height: 19px; width: 146px;"> 
<div style="height: 19px; width: 146px;"> 
<div class="gwt-HTML">[email protected]</div> 
</div> 
</td> 
</tr> 
</tbody> 
</table> 

中的XPath的複選框: /HTML /體/ DIV [ 6]/DIV /表/ tbody的/ TR [2]/TD [2]/DIV/DIV/DIV/DIV /表/ tbody的/ TR [2]/TD/DIV/DIV/DIV/DIV [1] /格/表[10]/tbody的/ TR/TD [ 1]

用戶名列的xpath是: /html/body/div [6]/div/table/tbody/tr [2]/td [2]/div/div/div/div/table/tbody/tr [2]/td/div/div/div/div [1]/div/table [10]/tbody/tr/td [3]

我的代碼循環遍歷名稱列表應該點擊與該名稱相關聯的複選框: 作爲成員列表中的姓名: 打印'與%s'關聯的單擊複選框%姓名 chrome.find_element_by_xpath(「// tr [td [contains(text()='」+ ()

我得到的錯誤是: sele nium.common.exceptions.InvalidSelectorException:消息:無效的選擇器:由於以下錯誤,無法找到具有xpath表達式的元素// tr [td [contains(text()='Agency_Group_0_Agency_Group_Member_0_dan_all_features_6')]]/td [1] : SyntaxError:無法對'Document'執行'evaluate':字符串'// tr [td [contains(text()='Agency_Group_0_Agency_Group_Member_0_dan_all_features_6')]]/td [1]'不是有效的XPath表達式。 (會話信息:chrome = 48.0.2564.116)

我的問題是: 如何點擊與名稱關聯的複選框?

+0

也許有時你需要鼠標移到它,然後繼續前進,點擊它。你知道有時候物體不是直接啓用的,直到鼠標在它上面爲止。 – Srekk

回答

1

您沒有正確使用。替換:

//tr[td[contains(text()='" + name + "')]]/td[1] 

有:

//tr[td[contains(text(), '" + name + "')]]/td[1] 
+0

這幫了很大忙。感謝您的答覆。這條道路讓我意識到這是行不通的。但是,核心思想對解決問題非常有用。我最終使用的代碼是: chrome.find_element_by_xpath(「// tr [td [@ title ='」+ name +「']]/td [1]/div」)。click() – DanPost

相關問題