所有使用量角器和黄瓜的角度e2e测试在我的机器上运行平稳顺利。但只要我运行生成服务器上的测试中,我得到一个错误构建服务器上的量角器失败 - ElementNotVisibleError
ElementNotVisibleError: element not visible
Session info: chrome=51.0.2704.84
Driver info: chromedriver=2.21.371459
platform=Windows NT 6.1 SP1 x86_64
在开始的时候,我认为这事做具有定时,正在发生一些异步的东西,但调试我小时后甚至可以在我的本地机器上重现该错误。
最小化窗口是不够的,但如果我快速拖动鼠标使窗口尽可能小,我得到这个错误。所以这只是“窗口大小”的问题。
Thus the error message is quite ok, but how are protractor meant to run on a build server?
为什么有些测试通过?量角器似乎“看”到构建服务器上的东西,从而
我试图
browser.driver.manage().window().maximize();
我试图
browser.manage().window().setSize(1920, 1200);
,我试图改变我的代码的建议here,我尝试了很多更多(绝望)事物。没有工作。
现在我的一个大问题:如何在构建服务器上以稳定的方式运行量角器测试(在我的情况下为TFS)何时有最右边的按钮我想单击某个页面?
短代码示例:
browser.get(browser.baseUrl + '#/somePage').then...
element(by.id(buttonId)).click();
谢谢!
UPDATE:
我的问题的主要原因是事实,屏幕分辨率在运行生成服务器上测试了宽度为1024,因此的setSize(1920,1200)失败。出于这个原因,我现在加入了onPrepare功能目前resoltuion的输出,所以,我将在未来得到一个提示:
onPrepare: function() {
browser.executeScript('return { height: screen.availHeight, width: screen.availWidth, top: screen.availTop, left: screen.availLeft};').then(function (result) {
console.log("Screen resolution: ");
console.log(result);
});
browser.manage().window().setSize(1920, 1200);
当然,这可以延长一点点地抛出一个异常或东西喜欢这个。
快速检查。你确定'buttonId'是唯一的吗?..在输出中会出现什么情况:'element.all(by.id(“buttonId”))。count()。then(function(count){console.log(count);});'。? – alecxe
嗨@alecxe,非常感谢您的帮助。输出是1. – timtos
好吧,你确定这不是一个时间问题?你有没有尝试过'browser.wait(EC.elementToBeClickable(element(by.id(buttonId))),5000);'哪里'var EC = protractor.ExpectedConditions;'在点击按钮之前? – alecxe