我想在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]"));
我做错了什么?
答案 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']"));