2010-02-02 183 views
6

我需要找到硒<div>某些內容和click它,像這樣:Selenium:如何找到特定內容的div?

 
<tr> 
    <td>clickAndWait</td> 
    <td>//div[@class='gwt-Label' ***WITH CONTENT='Logout'***]</td> 
    <td>5000</td> 
</tr> 

是否有某種方式來做到這一點?我不想使用絕對xpath。

回答

7

試試這個:

//div[@class='gwt-Label' and contains(., 'Logout')] 
+0

聽起來不錯,但我不能得到它工作。搜索文檔,但沒有發現;你有鏈接嗎? – 2010-02-02 13:41:17

+0

http://www.w3.org/TR/xpath/#function-contains – krosenvold 2010-02-02 13:42:49

+0

哦。您需要在'。'周圍放置單引號。編輯 – krosenvold 2010-02-02 13:45:11

8

您還可以使用CSS定位器:

<div class="gwt-Label">This FindMe DIV</div> 

可以用位於:

css=.gwt-Label:contains('FindMe') 
+0

Selenium標識定位器,找到div,但點擊從來沒有通過!有任何想法嗎? – 2010-02-02 15:15:58

+0

可能是DIV不是響應點擊的元素。是否有可能更適合的父母/子女元素? ''click'有時也會出現問題,您可以嘗試'mouseDown','mouseUp'命令。 – 2010-02-02 15:58:46

1

也許你的XPath只是倒不做什麼您認爲。您可能需要使用string()函數來連接塊中的所有文本。

例如,在測試計劃(使用Selenium作爲後端),你會做這樣的事情:

Click //div[@class='gwt-Label'][contains(string(),'Logout')] 

注意使用字符串()