javascript - Protractor 中的 by.tagName 与 by.css

标签 javascript selenium protractor

当通过标签名搜索元素时,我们可以这样做:

element(by.tagName("my-tag-name"));

或者,我们也可以这样做:

element(by.css("my-tag-name"));  // or $("my-tag-name")

我在审查其他人的合并请求时经常看到后者。可能是因为 by.css() 在一般情况下使用更广泛,人们常常忘记有一个专门的定位器。

按标签名搜索时,两者在功能或性能上有什么区别吗?

最佳答案

在 Protractor 中 by.tagNameby.css继承自 webdriver.WebDriver ,

内部 webdriver.WebDriver implement , by.tagName将转换为调用 by.css如下:

  /**
   * Locates elements with a given tag name.
   *
   * @param {string} name The tag name to search for.
   * @return {!By} The new locator.
   * @deprecated Use {@link By.css() By.css(tagName)} instead.
   */
  static tagName(name) {
    return By.css(name);
  }

所以 by.tagName(<tag name>)相当于by.css(<tag name>)在 Protractor 中。

关于javascript - Protractor 中的 by.tagName 与 by.css,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53877435/

相关文章:

javascript - 如何使 Protractor 的 ElementArrayFinder 'each' 函数等待当前操作完成后再进入下一次迭代?

javascript - 如何将输入框中的值添加到数组中,然后输出其内容?

javascript - Node.js 渲染express后连接到tcp套接字

javascript - 导致移动导航无法点击的页面转换

javascript - 中止 ecmascript7 异步函数

javascript - 如何从 selenium 的 console.log 中提取数组?

Angular: Protractor - count() 未解析并导致超时

Python Selenium - 在文本框中输入值

java - 驱动程序可执行文件不存在 : Selenium Firefox

selenium-webdriver - 是否应该在页面对象之外提供元素?