2012-01-15 105 views
24

我在同一頁面上有2個按鈕Cancel和Next按鈕,但它只有一個id(請參見下面的代碼)。我想按Next,但每次只是確定取消按鈕而沒有Next按鈕。如何解決這個問題?如果按鈕沒有ID,如何使用Selenium按鈕/點擊按鈕?

<td align="center"> 
    <input type="button" id="cancelButton" value="Cancel" title="cancel" class="Submit_Button" style="background-color: rgb(0, 0, 160);"> 
    <input type="submit" value="Next" title="next" class="Submit_Button"> 
</td> 
+2

你在用什麼? Selenium RC或WebDriver(Selenium 2)?你使用哪種語言? Java的? C#?蟒蛇?或者是什麼? – 2013-01-16 04:44:24

回答

15

硒IDE,你可以這樣做:

 
Command | clickAndWait 
Target | //input[@value='Next' and @title='next'] 

它應該工作的罰款。

+0

非常好......它正在工作.. :) – ChanGan 2012-01-16 14:48:38

18

使用xpath選擇(這裏的快速tutorial),而不是ID:

#python: 
from selenium.webdriver import Firefox 

YOUR_PAGE_URL = 'http://mypage.com/' 
NEXT_BUTTON_XPATH = '//input[@type="submit" and @title="next"]' 

browser = Firefox() 
browser.get(YOUR_PAGE_URL) 

button = browser.find_element_by_xpath(NEXT_BUTTON_XPATH) 
button.click() 

或者,如果你用 「香草」 硒,只要使用相同的XPath選擇,而不是按鈕ID:

NEXT_BUTTON_XPATH = '//input[@type="submit" and @title="next"]' 
selenium.click(NEXT_BUTTON_XPATH) 
1

您不需要僅使用標識符作爲元素定位器。您可以使用幾種方法來查找元素。閱讀this article並選擇最適合你的。

+0

這個鏈接並沒有解決我的問題.. – ChanGan 2012-01-16 12:36:20

+0

但讀完後你應該知道該怎麼做,當元素沒有'id'屬性。 – faramka 2012-01-16 13:20:11

0

您可以使用xpath來標識該元素。

+0

如果我使用該xpath,總是按取消,而不是Next .. – ChanGan 2012-01-16 12:36:03

+0

你使用了哪個xPath,它不起作用? – faramka 2012-01-16 13:21:26

2

對於下一步按鈕可以使用XPath或如下cssSelector:

的xpath用於下一步按鈕://輸入[@值= '下一步']

cssPath用於下一步按鈕:輸入[值=下]

3

使用文本和屬性值來代替ID

driver.findElementByXpath("//input[@value='cancel'][@title='cancel']").click(); 

類似地對於下一步。