如何使用webdriver查找按钮元素?

时间:2014-12-17 16:14:59

标签: java selenium selenium-webdriver

我有一个按钮的代码如下:

<div class="buttons">
<button class="btn dialog-confirm btn-primary" style="margin-left: 4px;">Confirm</button>
<button class="btn dialog-cancel" style="margin-left: 4px;">Cancel</button>
</div>

确认有两个按钮,另一个是取消 我可以找到带XPath的按钮,但我不想使用XPath。 在这种情况下是否有其他方法可以找到按钮元素?

我试过了:

driver.findElement(By.className("btn dialog-confirm btn-primary")).click();

没找到按钮 谢谢你的帮助

5 个答案:

答案 0 :(得分:5)

只需检查一个dialog-confirm课程:

driver.findElement(By.className("dialog-confirm")).click();

或者,使用CSS Selector

driver.findElement(By.cssSelector("button.dialog-confirm")).click()

答案 1 :(得分:4)

使用cssSelector的其他方式:

  1. 使用完整属性,即:

    driver.findElement(By.cssSelector("button[class='btn dialog-confirm btn-primary']"))

  2. 使用属性的一部分,即:

    driver.findElement(By.cssSelector("button[class*='dialog-confirm']"))
    

答案 2 :(得分:3)

添加到alecxe和主奴隶的答案。如果按钮文本单击它会更加具体,这也更容易理解。找到下面带有xpath按钮的代码段。

driver.findElement(By.xpath("//button[text()='Confirm']")).click();
driver.findElement(By.xpath("//button[text()='Cancel']")).click();

答案 3 :(得分:2)

投票支持alecxe,你在两个帐户上的尝试是错误的,当你在多个类上匹配时应该使用By.cssSelector,当它们设置在同一个元素上时,你用一个点连接它们,比如

driver.findElement(By.cssSelector(".btn.dialog-confirm.btn-primary")).click();

答案 4 :(得分:0)

这对我有用:

driver.find_element_by_class_name('buyable-full-width').click();