我喜欢在java
中使用selenium
在页面中选择这个标签
<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: no such element: Unable to locate element: {"method":"xpath","selector":"input[type=submit]"}
org.openqa.selenium.InvalidSelectorException: invalid selector: An invalid or illegal selector was specified
如果我使用 Jsoup
,我可以通过以下方式轻松获得它:
System.out.println(document.select("input[type=submit]"));
我做错了什么?
最佳答案
正如@Jason 所指出的,您严重混淆了 XPath 表达式和 CSS 选择器语法。正确的表达方式是:
driver.findElement(By.xpath("//input[@type='submit']"));
driver.findElement(By.cssSelector("input[type=submit]"));
请注意,我不仅会检查按钮类型,因为页面上通常有多个提交按钮。有一个 addReportBtn
类,我会依赖定位器:
driver.findElement(By.cssSelector("input.addReportBtn"));
这也为可读性加分。
关于java - selenium 中的 WebElement 使用 attr 选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33827669/