2016-11-07 118 views
0

我正在为我的应用程序编写自动化测试。 Google Chrome上的测试运行良好。但是当我在Internet Explorer 11上运行它们时,它们运行速度非常慢。当我在chrome上运行它们时,一个测试用例将在近5分钟内完成。但在IE11上,我已经运行了近3个小时的单个测试案例,测试仅在第二步。我试过以下的东西,使他们更快硒测试在Internet Explorer上运行速度非常慢

  1. 我用32位Internet Explorer驱动程序(我使用64位窗口)。与64位驱动程序相比,它运行速度很快,但仍然非常慢。
  2. 与CSS定位器相比,XPATH速度很慢,所以我用CSS定位器替换了所有XPATH定位器。它提高了Chrome浏览器的速度,但对于Internet Explorer,与以前相比速度没有太大的差别。
  3. 我试图在其他网站上为Internet Explorer运行一些简单的脚本,它们工作正常。但是当我为myapp编写类似的脚本时,我只需打开某个页面并单击一个按钮,在Chrome上花费了10多分钟时间,花了不到1分钟时间。
  4. 我没有使用任何隐式等待(硬编码等待,如告诉代码停止执行5秒)。相反在所有代码中,我使用的是基于某些元素的可见性的等待。这为Chrome和Firefox增加了时间,但对于Internet Explorer而言,速度并没有提高。
  5. 我也修改我的代码,以减少对DOM的冗余访问,但这也不会减少测试时间。

任何人都可以指导我如何使我的测试案例更快?我的应用程序是用AngularJS编写的,我没有任何访问应用程序代码的权限。我所能做的就是在测试方面让他们更快。

回答

0

请参阅本github上评论: https://github.com/SeleniumHQ/selenium-google-code-issue-archive/issues/5116#issuecomment-192106534

*我认为这可能是一个问题,或者

可能是JavaScript的创造问题,请尝试在测试期间禁用它,看看是否有助于

,并尝试这种代码也

InternetExplorerOptions options = new InternetExplorerOptions(); 
options.IntroduceInstabilityByIgnoringProtectedModeSettings = true; 
options.RequireWindowFocus = true; 
driver = new InternetExplorerDriver(options); 

,对不起,我不熟悉Python,请转换代码并尝试..

+0

我已经试过的32位驱动程序。它比64位驱动程序更快,但仍然非常慢。我在我的问题中提到过。 –

0

我发现,调用FindElements花了很长时间,只是通过设置这个InternetExplorerOptions下面它加快了很多东西。

var ieOptions = new InternetExplorerOptions(); 
 
ieOptions.EnablePersistentHover = false;