我在同一页面上有2个按钮取消和下一个按钮,但它只有一个ID(参见下面的代码)。我想按下Next但每次只识别取消按钮而不是下一步按钮。如何解决这个问题?
<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>
答案 0 :(得分: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()
或者,如果您使用“vanilla”Selenium,只需使用相同的xpath选择器而不是按钮ID:
NEXT_BUTTON_XPATH = '//input[@type="submit" and @title="next"]'
selenium.click(NEXT_BUTTON_XPATH)
答案 1 :(得分:18)
在Selenium IDE中,你可以这样做:
Command | clickAndWait Target | //input[@value='Next' and @title='next']
它应该可以正常工作。
答案 2 :(得分:4)
使用text和value属性而不是id
driver.findElementByXpath("//input[@value='cancel'][@title='cancel']").click();
同样适用于Next。
答案 3 :(得分:2)
对于Next按钮,您可以使用xpath或cssSelector,如下所示:
下一步按钮的xpath://输入[@ value ='下一步']
下一步按钮的cssPath:输入[value = Next]
答案 4 :(得分:1)
您不需要仅使用标识符作为元素定位器。您可以使用几种方法来查找元素。阅读this article并选择最适合您。
答案 5 :(得分:0)
您可以使用xpath来识别该元素。
答案 6 :(得分:0)
You can achieve this by using cssSelector
// Use of List web elements:
String cssSelectorOfLoginButton="input[type='button'][id='login']";
//****Add cssSelector of your 1st webelement
//List<WebElement> button
=driver.findElements(By.cssSelector(cssSelectorOfLoginButton));
button.get(0).click();
I hope this work for you