我正在使用 Protractor 测试我们的 AngularJS 应用程序(同时使用 Chrome 和 IE 驱动程序)。IEDriverServer 在大多数页面上都可以正常工作,除了这一页,几乎所有 Click() 事件都会导致“等待页面加载超时”异常。
IE驱动选项设置如下:
var ieOptions = new InternetExplorerOptions
{
BrowserCommandLineArguments = "-private",
EnableNativeEvents = false,
IgnoreZoomLevel = true,
IntroduceInstabilityByIgnoringProtectedModeSettings = false
};
// No Proxy
var proxy = new Proxy()
{
Kind = ProxyKind.Direct
};
ieOptions.Proxy = proxy;
此外,IgnoreSynchronization = true。
编辑 1:我认为这个页面和其他页面的区别在于它使用了 Javascript SignalR。我在它的 head 部分中找到了此代码,而其他页面中没有。这可能是超时异常的原因吗?我该怎么做才能让它工作?
<script src="https://localhost:37121/signalr/poll?transport=longPolling&connectionToken=AQAAANCMnd8BFdERjHoAwE%2FCl%2BsBAAAAUwalDb1qVUqsBmCLuURNHwAAAAACAAAAAAADZgAAwAAAABAAAADr9g2GQVKvK1pb%2FivxTu%2BBAAAAAASAAACgAAAAEAAAAB5eAALolT7EtoL1Y9C1xPooAAAA3TnUmbajNM9RIJ8oDRsPGLjavLcB2M10CyoJMXrnpv9H9XzB4bRVLBQAAABrEcirF0pjR5t%2Fst0mWJ0MnJYVlA%3D%3D&messageId=d-9774B3D8-B%2C24%7CC%2C0%7CD%2C0%7CE%2C0&connectionData=%5B%7B%22name%22%3A%22devicehub%22%7D%5D&tid=8&callback=jQuery21103819021041958953_1481549049341&_=1481549049371" async=""></script>
编辑 2:我将 ImplicitWait、SetPageLoadTimeout 和 SetScriptTimeout 设置多长时间并不重要。在指定的等待时间过后,单击事件将返回异常。