我有一个按钮的代码如下:
<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();
没找到按钮 谢谢你的帮助
答案 0 :(得分:5)
只需检查一个dialog-confirm
课程:
driver.findElement(By.className("dialog-confirm")).click();
或者,使用CSS Selector
:
driver.findElement(By.cssSelector("button.dialog-confirm")).click()
答案 1 :(得分:4)
使用cssSelector的其他方式:
使用完整属性,即:
driver.findElement(By.cssSelector("button[class='btn dialog-confirm btn-primary']"))
使用属性的一部分,即:
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();