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

Posted

技术标签:

【中文标题】如何在 Java 中使用 Selenium WebDriver 单击按钮?【英文标题】:How can I click on a button using Selenium WebDriver with Java? 【发布时间】:2012-08-23 23:01:15 【问题描述】:

以下是按钮的html代码:

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

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

它不工作......

还有其他想法吗?页面上有2个同名按钮。

【问题讨论】:

【参考方案1】:
driver.submit()

应该可以。 如果 DOM 中按钮的顺序始终相同,这也应该有效:

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

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

【讨论】:

【参考方案2】:

试试:

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

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

另外,如果你知道需要点击这两个按钮中的哪一个,你可以试试:

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

其中[1] 是找到的第一个带有'Checkout' 文本的按钮

【讨论】:

【参考方案3】:

以下应该有效:

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

【讨论】:

【参考方案4】:
    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

【讨论】:

【参考方案5】:

我有添加附件按钮:

我用这段代码试过了:

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

【讨论】:

【参考方案6】:

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

在这里工作得很好:

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

或 By.CssSelector:

button.buttonLargeAlt

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

【讨论】:

或者那个是的 :) 如您所见,查找元素的方法有很多。

以上是关于如何在 Java 中使用 Selenium WebDriver 单击按钮?的主要内容,如果未能解决你的问题,请参考以下文章

如何搭建selenium+java环境搭建

Selenium Web自动化测试学习

如何在 Java 中执行 Selenium 测试

如何使用java中的selenium Web驱动程序中的分页搜索表中的元素

如何使用 javascript 使用 selenium Webdriver 使用 java 设置所选 Web 元素的属性?

我已使用 selenium web 驱动程序 JAVA 将产品添加到手推车中,然后将其从购物车中删除。我如何断言产品是不是被移除?