html - 同一类元素的 Protractor 定位器

标签 html css typescript protractor

我是 Protractor 和 E2E 测试的新手,想确定我的 CSS 定位器方法是否适用于同一类的相同元素。

我有一个 HTML Fiddle here它描绘了一个包含两个 div 元素的网页,每个元素包含两个按钮:这些按钮都属于同一类。 HTML 如下:

<!DOCTYPE html>
<html>
<body>
  <div>
    <button class="btn1" tooltip="Color">
              <span class="color-indicator" style="background-color: rgb(0, 0, 0);">
    </button>
    <button class="btn1" tooltip="Background Color">
              <span class="color-indicator" style="background-color: rgb(50, 50, 50);">
    </button>
  </div>
  <div>
    <button class="btn1" tooltip="Color">
              <span class="color-indicator" style="background-color: rgb(0, 0, 0);">
    </button>
    <button class="btn1" tooltip="Background Color">
              <span class="color-indicator" style="background-color: rgb(50, 50, 50);">
    </button>
  </div>
</body>
</html>

我需要单击每个 div 中的每个按钮元素。这些按钮可以通过 element(by.css()) Locator 使用它们的 CSS 选择器访问(例如 "body > div:nth-child(1) > button:nth-child(1 )") 但是否有更好的方法来访问这些元素?

我的网站有很多这样的例子,我想知道是否有更好的方法来访问这样的元素,除了在我的 中硬编码它们的 nth-child 数字it() 脚本。网页上的元素将来可能会重新排序,因此使用编号可能会导致以后出现问题。

谢谢 :-)

最佳答案

如果您知 Prop 有相同类的按钮的确切数量,则可以使用 css 选择器定位它们;在这种情况下,有 4 个,所以它看起来像这样::

element.all(by.css('.btn1')).get(0);
element.all(by.css('.btn1')).get(1);
element.all(by.css('.btn1')).get(2);
element.all(by.css('.btn1')).get(3);

如果有帮助,请告诉我!

关于html - 同一类元素的 Protractor 定位器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55077564/

相关文章:

html - 如何仅在父元素中应用变换?

javascript - 不用 jQuery 处理丢失的图像

javascript - 需要能够暂停和恢复 SetTimeout

javascript - 阻止选择在 IE 中有效但在 Chrome 中无效的文本?

css - 在文本下方使用不同颜色的下划线

javascript - 如何使用多个url参数来显示/隐藏多个div

javascript - 按文件扩展 Monaco Editor 提示

html - 垂直居中对齐 float 内容

reactjs - 如何修复 css 文件上的 typescript 编译器错误?

javascript - 附加到 Typescript 中的对象变量