为什么要点击的元素(通过量角器)被点击,但没有任何反应?

时间:2016-11-01 21:31:50

标签: selenium protractor

我使用的是量角器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:量角器告诉我它点击了按钮,但按钮点击不会导致页面发生任何变化。当我手动点击量角器外面的按钮时,它工作得很好。为什么会这样?

1 个答案:

答案 0 :(得分:0)

点击JavaScript代码点击,而不是普通的量角器点击。