我使用的是量角器v4.0.9和节点v6.8.1(尽管我也在4.6上测试了这个问题)。我有一个测试,通过一系列按钮点击来获取表单。代码看起来像这样:
browser.get('http://someurl');
// App select button
element(by.id('btn-select-app')).click();
// portal select
element(by.id('row-test-portal')).click();
// provisioning form button
element(by.id('btn-provisioning-form')).click();
然后是一个迭代表单并填充它的函数。如果我从头到尾运行测试(包括填写表单的函数),当它尝试开始填写表单时会失败,因为它在错误的页面上 - 也就是说,即使终端告诉我它执行了对配置按钮的单击,表单没有加载。
如果我缩短测试并仅使用您在上面的块中看到的命令运行它,它就会通过。
当我在调试模式下运行时,我可以执行"元素(by.id(' btn-provisioning-form'))。click();",但它似乎没有做任何事情 - 它会告诉我它执行了点击,但表单没有出现在页面上 - 我仍然在上一页。请注意,上面的测试包含在单击配置表单按钮之前的另一个按钮单击,它似乎正常工作。
我已经为按钮使用不同的定位器,包括xpath和css,但没有任何东西可以让我进入配置表单。
按钮代码
<div class="col-md-1">
<button id="btn-provisioning-form" ng-show="foo()"
class="btn btn-success glyphicon etc" ng-click="blah()"
aria-label="Provision" popover="Provision" popover-trigger="mouseenter">+</button>
</div>
其他一些注意事项 - 我已经设法使用Selenium IDE复制测试,当我从Selenium IDE UI运行该测试时,它可以单击按钮并转到表单。当我使用量角器时,看起来这个问题就出现了。
TL; DR:量角器告诉我它点击了按钮,但按钮点击不会导致页面发生任何变化。当我手动点击量角器外面的按钮时,它工作得很好。为什么会这样?
答案 0 :(得分:0)
点击JavaScript代码点击,而不是普通的量角器点击。