我正在使用Selenium / Protractor / Jasmine为使用Angular编写的Web应用程序编写测试自动化。我正在VirtualBox中运行测试(主机操作系统:Windows 8,来宾操作系统:Ubuntu 15.04)。到目前为止,测试非常基础(onPrepare函数登录并等待加载应用程序,第一个测试检查加载的页面是否具有正确的标题。
该应用程序已成功加载并登录。问题是,一旦发生这种情况,测试将不会继续,直到鼠标移动,并且仅在鼠标位于浏览器窗口的内容区域时。
1)如果我根本不移动鼠标,我最终会收到错误:“错误:超时 - 在jasmine.DEFAULT_TIMEOUT_INTERVAL指定的超时时间内未调用异步回调。”
2)如果我将鼠标移到其他窗口或浏览器窗口的非内容区域(窗口边框,地址栏等)上,我会得到相同的行为。
3)只要我将鼠标移到浏览器窗口的内容区域上,测试就会立即进行。
我已将测试代码提供给在Mac上运行它的同事,但他没有遇到此问题。这对我来说意味着它是在VirtualBox内部运行引起的问题,但我并非100%确定是这种情况。
我已尝试搜索Google和其他stackoverflow帖子,看看我是否能找到其他此类行为的报告,但一无所获。我也试过改变茉莉和量角器中的默认超时:
jasmine.DEFAULT_TIMEOUT_INTERVAL = 250000
allScriptsTimeout:300000
getPageTimeout:300000
,但这没有效果。
由于这是我在stackoverflow上提出的第一个问题,如果有更多关于此类问题的信息,请告诉我,我会添加它。
答案 0 :(得分:0)
我遇到了同样的问题,没有找到原因或确定的解决方案。我提出了一个解决方案,在单击操作后移动鼠标。
browser.actions().mouseMove({x: 50, y: 0}).perform ();
此后测试正常。