Testing 如何使用量角器js单击表中行中的按钮

Testing 如何使用量角器js单击表中行中的按钮,testing,jasmine,protractor,Testing,Jasmine,Protractor,我正在写量角器测试用例。我想点击编辑按钮。当我通过id进行检查时,找不到它 代码: 代码 开始日期 BID00{{batch.id} {{batch.start_date} 如何使其工作?您的示例中存在一些问题。在html中,ID在页面上应该是唯一的。所以不能在重复的元素中使用id 你有几个选择。您可以通过按钮的一个样式类来寻址该按钮,而另一个按钮没有类似的样式类 element(by.repeater('batch in batches.list').row(0)).element(by.

我正在写量角器测试用例。我想点击编辑按钮。当我通过
id
进行检查时,找不到它

代码:


代码
开始日期
BID00{{batch.id}
{{batch.start_date}

如何使其工作?

您的示例中存在一些问题。在html中,ID在页面上应该是唯一的。所以不能在重复的元素中使用id

你有几个选择。您可以通过按钮的一个样式类来寻址该按钮,而另一个按钮没有类似的样式类

element(by.repeater('batch in batches.list').row(0)).element(by.css('button.btn-default')).click();
你也可以指定你想要的第一个按钮

element(by.repeater('batch in batches.list').row(0)).element(by.css('button:first-of-type')).click();
或者,您也可以只使用css来处理元素。有时比中继器更容易维护:

element(by.css('tr:first-of-type > td:last-child > button:first-of-type')).click();

你的例子中有几个问题。在html中,ID在页面上应该是唯一的。所以不能在重复的元素中使用id

你有几个选择。您可以通过按钮的一个样式类来寻址该按钮,而另一个按钮没有类似的样式类

element(by.repeater('batch in batches.list').row(0)).element(by.css('button.btn-default')).click();
你也可以指定你想要的第一个按钮

element(by.repeater('batch in batches.list').row(0)).element(by.css('button:first-of-type')).click();
或者,您也可以只使用css来处理元素。有时比中继器更容易维护:

element(by.css('tr:first-of-type > td:last-child > button:first-of-type')).click();

在这里,我没有发送延迟,所以发生了什么,我检查的按钮,这是没有加载
睡眠时间(500);解决了我的问题。花了这么多时间来识别

这里我没有发送延迟,所以发生了什么,我正在检查未加载的按钮
睡眠时间(500);解决了我的问题。当我使用element(by.repeater('batch in batches.list').row(0)).element(by.id('edit')).click()时,识别

花了很多时间;我得到错误:使用定位器by.repeater(batch in batches.list)找不到元素。行(“0”)“您能建议吗@当我使用元素(by.repeater('batch in batches.list').row(0)).element(by.id('edit')).click();我得到错误:使用定位器by.repeater(batch in batches.list)找不到元素。行(“0”)“您能建议吗@Andres Dwo当我使用最后一个选项时,我使用locator:By.cssSelector(“tr:first of type>td:last child>button:first of type”)找不到元素。当我使用第二个选项时,我得到错误:使用locator:By.repeater(batch in batches.list”).row(“0”)找不到元素。我测试过了。您使用的量角器版本以及何时在调试中启动量角器并使用browser.debugger();在单击表达式之前,您能看到按钮吗?当我使用最后一个选项时,我使用locator:By.cssSelector(“tr:first of type>td:last child>button:first of type”)找不到元素。当我使用第二个选项时,我得到错误:使用locator:By.repeater(batch in batches.list)找不到元素。行(“0”)“这是wierd。我测试过了。您使用的量角器版本以及何时在调试中启动量角器并使用browser.debugger();在单击表达式之前,可以看到按钮吗?