同じページに[キャンセル]と[次へ]の2つのボタンがありますが、IDは1つだけです(以下のコードを参照)。 [次へ]を押したかったのですが、[次へ]ボタンではなく[キャンセル]ボタンを識別するたびに。この問題を解決するには?
<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>
Selenium IDEでは次のことができます:
コマンド| clickAndWait ターゲット| // input [@ value = 'Next' and @ title = 'next']
正常に動作するはずです。
Idの代わりに xpath セレクター(ここでは簡単に tutorial )を使用します。
#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を使用する場合は、ボタンIDの代わりに同じxpathセレクターを使用します。
NEXT_BUTTON_XPATH = '//input[@type="submit" and @title="next"]'
Selenium.click(NEXT_BUTTON_XPATH)
idの代わりにtext属性とvalue属性を使用します
driver.findElementByXpath("//input[@value='cancel'][@title='cancel']").click();
次も同様です。
[次へ]ボタンには、次のようにxpathまたはcssSelectorを使用できます。
[次へ]ボタンのxpath:// input [@ value = 'Next']
[次へ]ボタンのcssPath:input [value = Next]
要素ロケーターとして識別子のみを使用する必要はありません。いくつかの方法を使用して要素を見つけることができます。 この記事 を読んで、最適なものを選択してください。
その要素を識別するためにxpathを使用できます。
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