如何使用Selenium WebDriver with Java单击按钮?

时间:2012-08-29 10:45:23

标签: java selenium selenium-webdriver automated-tests

以下是按钮的HTML代码:

<span>
<button class="buttonLargeAlt" onclick="javascript:submitCheckout(this.form);"type="submit">Checkout</button>
</span>

我尝试了driver.findElement(By.xpath("//span[contains(.,'Checkout')]")).click();

它不起作用......

还有其他想法吗?页面上有两个名称相同的按钮。

6 个答案:

答案 0 :(得分:2)

driver.submit()

应该有效。 如果DOM中按钮的顺序始终相同,那么这也应该起作用:

driver.findElements(By.className("buttonLargeAlt")).get(0).click();

如果它是页面上的第一个buttonLargeAlt按钮。

答案 1 :(得分:2)

尝试:

//span/button[text()='Checkout' and @class='buttonLargeAlt']

//span/button[text()='Checkout'][1]

另外,如果您知道需要点击哪两个按钮,可以尝试:

//span/button[text()='Checkout'][1]

[1]是找到文字为'Checkout'

的第一个按钮

答案 2 :(得分:1)

以下情况应该有效:

driver.findElement(By.className("buttonLargeAlt")).click();
driver.findElement(By.xpath("//button[contains(@class='buttonLargeAlt')]")).click();
driver.findElement(By.xpath("//button[@class='buttonLargeAlt']")).click();

答案 3 :(得分:1)

    You can achieve this by using XPath with html input element id or by name
    //1. By XPath indexing option:  
    WebElement loginButtonId = 
    driver.findElement(By.xpath("//*[@id='login']"));
    //Xpath of login button i have get For firefox browser

    loginButtonId.click();

    I hope this work for you

答案 4 :(得分:0)

我有添加附件按钮:

我尝试过以下代码:

driver.findElement(By.xpath("//*[@id=\"attachments\"]/div/div/img")).sendKeys("C:\\Users\\NayazPasha\\Desktop\\Ndin selenium Testing outputs\\Collab Schedule onclick.png");

答案 5 :(得分:-1)

XPath只会获得跨度,而不是物理按钮。

在这里完美无缺:

//span[contains(.,'Checkout')]/button

或By.CssSelector:

button.buttonLargeAlt

如果仍然不能正常工作,请解释更多。它在iFrame中吗? Selenium给出了什么错误?