2016-07-30 45 views
0

在IE11上运行时,我的脚本性能非常低。我的脚本中的一些脚本在2-3分钟内运行,并且在IE上花费超过25分钟。我正在使用Robot Framework,我的大多数定位器都是xpath。我的应用程序没有元素的ID定位符。为了实验目的,我尝试切换到CSS,但这只是略微提高了性能。 据我所知,由于IE没有本地xpath引擎,IEdriverserver使用wicked-good-xpath进行解析。这个xpath库应该是最快的。 是否有任何其他修改/增强功能可以改善脚本的性能?机器人框架中的IE 11性能

+0

当我通过元素列表遍历DOM时,性能很糟糕。如从跨度,div等列表中获取文本 – user3262242

回答

1

如果您正在使用64-bit IEdriverserver,你需要IEdriverserver的32-bit来取代它,因为IEdriverserver的64位是非常的执行速度很慢。

IE驱动程序确定根本原因。当您在64位版本的Windows上运行IE 10或更高版本时,默认情况下,托管包含窗口的进程(包括浏览器镶边(地址栏,导航按钮,菜单等)为 )为64位处理。 托管实际呈现内容的窗口的过程(每个 选项卡内)都是一个32位过程。

一些注意事项。细心的读者已经意识到,这意味着即使当您运行64位Windows时,您可能也会使用32位版本的IE来呈现内容的 。这是继续使用IE 10驱动程序的32位版本 的一个强有力的参数:您实际上并没有针对IE的64位版本 运行。

如果你坚持,你必须运行IEDriverServer.exe的64位版本,你可以通过设置nativeEvents 能力为false的任何机制语言的结合提供了这种禁用本地事件。

希望它有帮助.. :)

+0

谢谢Saurabh,我做到了。但表现并没有太大的改善。在Chrome和Firefox中执行的时间大约是3分钟,但IE大约是17分钟。该脚本主要遍历一个表来获取数据。 – user3262242

+0

@ user3262242我建议你尽量使用cssSelector,如果可能的话,因为IE浏览器的xpath速度要慢得多...... :) –

+0

当我在IE上运行测试时使用Robot Framework中编写的测试时,它并没有什么帮助 – user3262242