java - selenium 中的 WebElement 使用 attr 选择

标签 java selenium xpath css-selectors

我喜欢在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/

相关文章:

java - @Autowired 在 Spring 中的类上

ruby-on-rails-3 - 在 cucumber / capybara / Selenium 中 stub Ajax请求?

hadoop - 在 pig 中分离元组的元组

python - 使用 python 解析 PDF 在 cssselect 上失败

java - 创建 Observables 树并添加订阅者作为叶子

Java - H2 数据库 - getGeneratedKeys() 不返回任何结果

java - 字符串文字的自动驻留

selenium - 阻止具有多个执行程序的节点接受更多作业,直到给定作业完成

python - 如何使用带有 python 的 Selenium WebDriver 获取 Web 元素的颜色?

java - Java中如何使用XPath检查节点是否具有一个或多个特定属性?