Angularjs 如何单击没有元素id的按钮
我正在使用量角器进行e2e测试。我想点击按钮。你有没有理由不使用量角器API,而是直接使用驱动程序?通过ng click进行选择也可能不是最好的方法(好的做法似乎是基于页面结构而不是机制进行选择),如果您不能简单地使用: 编辑:查看选择器的制作方式,上述操作将不起作用-请注意,by.button文本将仅匹配:Angularjs 如何单击没有元素id的按钮,angularjs,Angularjs,我正在使用量角器进行e2e测试。我想点击按钮。你有没有理由不使用量角器API,而是直接使用驱动程序?通过ng click进行选择也可能不是最好的方法(好的做法似乎是基于页面结构而不是机制进行选择),如果您不能简单地使用: 编辑:查看选择器的制作方式,上述操作将不起作用-请注意,by.button文本将仅匹配: 钮扣 输入类型=“按钮” 输入类型=“提交” 我把这个留给将来可能需要的人 如果这不起作用,也许您至少可以按类选择它,例如在父级内部?例如: element(by.css('.btn-
- 钮扣
- 输入类型=“按钮”
- 输入类型=“提交”
element(by.css('.btn-wrapper > .btn:nth-child(2)'));
也可以考虑为按钮添加单独的类/ ID,以后可能会有用。
最后一句话,如果你有一个大页面要测试,考虑使用,而不是在不同的步骤中选择相同的东西。这样,您就可以使用一个漂亮的、可维护的对象,而不是编写选择器,如:
myPage.placeOrderButton().click();
只是要考虑的事情。
< P>顺序按钮:$('[ng-if*="checkout"]').click();
取消按钮:
$('[ui-sref="main.store.featured"]').click();
这应该起作用:
element(by.css('[ng-click="ctrl.placeOrder()"]')).click();
我认为这里最简单、最可读的方法是通过文本定位元素: 您可能只需要添加一个:
我不知道这是否有帮助,但我发现一篇文章中有人在点击一个div时遇到了问题。仅仅点击一个div似乎有点难,但我认为这个链接可以帮助你解决问题
@vignesh,请编辑问题并在那里添加代码-不在评论中打开浏览器控制台,尝试使用您使用的选择器选择相同的元素,看看是否有效。如果不调整它。是的,在这种情况下可能不起作用。你试过我建议的下一种方法吗?答案很好,坚持下去!我认为,由于这个“按钮”的制作方式,选择器实际上与它不匹配。我认为最好的方法是更改html,使其与以下任何一个匹配:@wap300哦,是的,很好,它是
div
元素。我会更新答案。
element(by.css('[ng-click="ctrl.placeOrder()"]')).click();
element(by.xpath('//div[. = "Place Order"]'));
var EC = protractor.ExpectedConditions,
placeOrder = element(by.xpath('//div[. = "Place Order"]'));
browser.wait(EC.visibilityOf(placeOrder), 5000);
placeOrder.click();