1

我正在通过一个非常简单的测试来学习Protractor:

describe(“打钩游戏”,function(){它('标记播放的位置',function(){browser.ignoreSynchronization=true;浏览器.get('文件:///C:/Users/potero/angleral/angular_TickTackToe/TickTackToe.html');var p00=元素(通过.id(“p00”));p00.点击();期望(p00.getText()).toEqual(“X”);});});

Chrome几乎毫不费力地通过了这项测试。但我也必须在IE上进行测试,所以我在量角器conf文件中添加了必要的行,结果如下:

exports.config={selenium地址:'http://localhost:4444/wd/hub',规格:['../specs/**/*.progractorspec.js'],多功能:[{“浏览器名称”:“internet explorer”}, {'browserName':'chrome'}]};

Chrome一直通过测试,但由于每个区域的保护模式设置不同,IE无法启动。我让他们平等,我继续读下去这个SO问题。然后启动了IE,但测试失败,原因是IE找不到id为p00的元素(请检查上面的规范)。通过读取控制台上的错误输出,我看到IE selenium驱动程序的属性“ignoreProtectedModeSettings”被设置为false。这引起了我的注意,所以我在IE中重置了保护模式设置,并在量角器conf文件中添加了一行,结果如下:

exports.config={selenium地址:'http://localhost:4444/wd/hub',规格:['../specs/**/*.progractorspec.js'],多功能:[{“浏览器名称”:“internet explorer”,“ignoreProtectedModeSettings”:true}, {'browserName':'chrome'}]};

IE测试通过了。每次我运行它。那么,为什么与安全设置相关的属性允许我使用Protractor选择器通过id查找元素?

1答案1

重置为默认值
2

保护模式下的背景

Internet Explorer的保护模式是一个安全沙盒,它依赖于Windows中的完整性级别系统。一个进程可能只有一个完整性级别(IL),因此如果您在Internet(Protected Mode,LowIL)和Intranet(non-Protected Model,MediumIL)站点之间导航IE实例,Internet Explorer必须在新进程中处理导航。在Vista上的IE7中,这是非常明显的,一个新的浏览器窗口将自动打开。在IE8中,随着Loosely-Coupled IE(LCIE)的引入,我们可以更巧妙地处理这个问题。

您可以在此处找到更多信息:http://blogs.msdn.com/b/ieinternals/archive/2011/08/03/internet-eplorer-automation-protected-mode-lcie-default-integrity-level-medial.aspx

您的答案

单击“发布您的答案”,表示您同意我们的服务条款并确认您已阅读我们的隐私政策

不是你想要的答案吗?浏览标记的其他问题问你自己的问题