如何在 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 单击按钮?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用java中的selenium Web驱动程序中的分页搜索表中的元素
如何使用 javascript 使用 selenium Webdriver 使用 java 设置所选 Web 元素的属性?
我已使用 selenium web 驱动程序 JAVA 将产品添加到手推车中,然后将其从购物车中删除。我如何断言产品是不是被移除?