2012-04-19 102 views
0

我想寫真實結構像這樣的HTML Selenium測試:如何點擊Selenium中特定元素旁邊的按鈕?

<table> 
    <tr id="row-1"> 
    <td><span class="some_data">what I'm looking for</span></td> 
    <td><button class="doSomething" onclick="..."></button></td> 
    </tr> 

    <tr id="row-n"> 
    <td><span class="some_data">not what I'm looking for</span></td> 
    <td><button class="doSomething" onclick="..."></button></td> 
    </tr> 
</table> 

我需要測試點擊那同一行what I'm looking for的按鈕。我可以找到span它在(driver.find_elements_by_xpath('//span[text() = "what I'm looking for"]')),但我不知道如何從那裏到相應的按鈕。

我正在使用Selenium Python bindings,版本2.21.2。

+0

如果您的行具有ID,則這些行應該是唯一的。你可以知道或輕鬆確定頁面之外哪個行ID是你想要的按鈕嗎?如果是這樣,只需從那裏開始並建立一個xpath到td [2]。 – 2012-04-19 19:06:04

+0

我希望:-)不,恐怕我所知道的只是'some_data'範圍內的文字。 – leedm777 2012-04-19 19:09:47

+0

您是否嘗試過使用父級和以下兄弟姐妹http://www.w3schools.com/xpath/xpath_axes.asp? – 2012-04-19 19:15:47

回答

3

嘗試:

//tr[td/span[text() = "what I'm looking for"]]/td/button 

如果發現其中有文本「我正在尋找」一個td/span,然後從該tr移動到裏面的td/buttontr