使用By.className时无法单击“保存”按钮,而div中的className可用

时间:2014-06-26 10:09:33

标签: selenium selenium-webdriver

By.className可用的情况下,无法使用classNam点击保存按钮 可用按钮的网页代码

<div class="popupFooter">
<div align="center">
<input id="Preview-btn" class="btn-primary previewDetaile" type="button" value="Preview">
<input class="btn-primary validateProfile" type="button" value="Save">
<input id="clear" class="btn-primary" type="button" value="Cancel">
</div></div>

Selenium Code

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

问题: 无法单击“保存”按钮

2 个答案:

答案 0 :(得分:5)

您的问题是您搜索的多个类名不适用于By.className。试试吧

driver.findElement(By.className("validateProfile")).click();

代替。要按多个类名选择元素,您可以找到解决方案here

答案 1 :(得分:2)

使用CSS选择器非常容易:

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

如需完整参考:

http://www.w3schools.com/cssref/css_selectors.asp

正如@Sebastian指出的那样,这可能是因为By.className只接受一个类名(我认为它们并非偶然地命名为By.classNames :))