我一直在浏览我正在研究的Angular应用程序,使用Protractor为应用程序的所有不同部分测试CRUD功能.所有CRUD页面都有创建/编辑按钮,无论您使用哪个页面,按钮都会打开相同的模式,无论它们是创建还是编辑.
我不一致地遇到上面的问题.我确实会运行测试,它会给我这个错误,而不是打开模态,然后我会再次运行它,它将打开模态,同样的测试将通过.然后再次尝试确保它再次失败.等等
让测试的唯一问题似乎是浏览器/测试套件的问题,而不是实际的代码,这是非常烦人的.只是要明确我在Chrome中测试它.
处理这类问题的方法是什么,问题是传递和失败的不一致?我不清楚究竟需要修复什么设置.
没有看到并运行您的实际测试很难说,但这里有一些尝试:
最大化浏览器窗口:
browser.driver.manage().window().maximize();
禁用所有角度动画
增加隐式等待超时
使用elementToBeClickable
内置的预期条件:
var EC = protractor.ExpectedConditions; var elm = element(by.id("myelement")); browser.wait(EC.elementToBeClickable(elm), 5000);
在单击之前滚动到元素的视图:
browser.executeScript("arguments[0].scrollIntoView();", elm.getWebElement());
在点击之前移动到元素:
browser.actions().mouseMove(elm).click(elm).perform();
点击通过javascript:
browser.executeScript("arguments[0].click();", elm.getWebElement());