codeceptJS - 如何从列表中单击特定元素

时间:2016-10-21 13:32:30

标签: codeceptjs

使用量角器可以通过element.all(by.css("li")).get(0)

来实现

如何使用codecept做到这一点?

我尝试没有成功:

I.click('.item').get(1);
I.click('.item:nth-child(2)');

3 个答案:

答案 0 :(得分:3)

使用XPath单击元素是您拥有的最佳选择。但是,您可能拥有元素标记的各种实例。所以你的XPath必须是绝对的

例如:

I.click(" //的Li [含有(@class,'下一个&#39)]&#34);

I.click(" // DIV [含有(@class,'下一个&#39)] /锂[1]&#34);

注意:@class可以更改为您要使用的任何标识符。

答案 1 :(得分:1)

您可以使用XPath单击第一个li元素。

I.click('//li[1]');

答案 2 :(得分:1)

还可以抓取所有匹配特定模式的元素,然后通过其索引指定您想要的元素。就我而言,我需要单击页面上的所有复选框。在这里,我抓取了所有具有相同 xpath 模式的元素(使用 I.grabNumberOfVisibleElements("//fieldset/label") 并使用 for 循环遍历它们的索引

  module.exports = {
  firstCheckbox: { xpath: '//li[1]//fieldset/label'},
 
  async clickOnClassAssociations() {

    await I.waitForElement(this.firstCheckbox, WAIT_FOR_TIMEOUT)

    const totalCb = await I.grabNumberOfVisibleElements("//fieldset/label")

    for (let i=1; i<=totalCb; i++) {
      await I.waitForElement(`//li[${i}]//fieldset/label`, WAIT_FOR_TIMEOUT);
      await I.click( `//li[${i}]//fieldset/label`);
    }
  },
};