selenium中的WebElement选择attr

时间:2015-11-20 13:16:04

标签: java selenium xpath css-selectors

我想在selenium

中使用java在页面中选择此标记
<input class="btn btn-success addReportBtn" type="submit" />

这是我到目前为止所尝试的内容:

driver.findElement(By.xpath("//input[type=submit]"));
driver.findElement(By.cssSelector("//input[@type='submit']"));

我分别得到了这两个例外:

  

org.openqa.selenium.NoSuchElementException:没有这样的元素:无法找到元素:{“method”:“xpath”,“selector”:“input [type = submit]”}

     

org.openqa.selenium.InvalidSelectorException:无效的选择器:指定了无效或非法的选择器

如果我使用Jsoup,我可以通过以下方式轻松获得:

System.out.println(document.select("input[type=submit]"));

我做错了什么?

2 个答案:

答案 0 :(得分:5)

正如@Jason指出的那样,你正在认真地混合使用XPath表达式和CSS选择器语法。正确的表达式是:

driver.findElement(By.xpath("//input[@type='submit']"));
driver.findElement(By.cssSelector("input[type=submit]"));

请注意,我不仅会检查按钮类型,因为页面上通常有多个提交按钮。有addReportBtn类我会依赖定位器:

driver.findElement(By.cssSelector("input.addReportBtn"));

这也为可读性提供了一个加号。

答案 1 :(得分:3)

试试这些:

driver.findElement(By.xpath("//input[@type='submit']"));
driver.findElement(By.cssSelector("input[type='submit']"));