【问题标题】:what is the difference between cssSelector and ByCssSelector in seleniumselenium 中的 cssSelector 和 ByCssSelector 有什么区别
【发布时间】:2021-02-13 17:33:56
【问题描述】:

下面代码中的 By.cssSelector 和 By.ByCssSelector 有什么区别。

driver.findElement(By.cssSelector("test")).click(); driver.findElement(By.ByCssSelector.id("")).click();

【问题讨论】:

  • 你在哪里找到By.ByCssSelector.id()

标签: java selenium findelement


【解决方案1】:

cssSelector - By Class 的静态方法。

ByCssSelector - By Class 的静态内部类。

cssSelector 方法在内部创建ByCssSelector 类。

因此

driver.findElement(By.cssSelector("test")).click();

可以写成

driver.findElement(new By.ByCssSelector("test")).click();

两者都是一样的。

更新:

driver.findElement(By.ByCssSelector.id("test")).click();

以上声明无效,因为

  • findElement 需要 By 对象并且缺少 new 关键字。

  • 调用ByCssSelector时我们必须传递css选择器值,因为它有
    带 cssselector 值的参数化构造函数。

  • ByCssSelector 内部类没有可调用的 id 方法。

【讨论】:

  • 你没有联系By.ByCssSelector.id() :)
  • 那句话没有意义。我们必须在调用ByCssSelector 时传递 css 选择器值,因为它具有参数化构造函数,该构造函数采用 cssselector 值。
猜你喜欢
  • 2016-05-17
  • 1970-01-01
  • 2018-06-13
  • 2019-03-17
  • 1970-01-01
  • 1970-01-01
  • 2016-03-12
  • 2021-02-16
  • 2021-01-26
相关资源
最近更新 更多