如何使用selenium在IE上更改浏览器模式?

如何使用selenium在IE上更改浏览器模式?,selenium,selenium-webdriver,Selenium,Selenium Webdriver,我正在尝试使用c#在使用selenium的IE上运行不同的浏览器模式。下面是一些代码: var ieWebDriver = new InternetExplorerDriver(@"PATHTOWEBDRIVER"); ieWebDriver.Keyboard.SendKeys(Keys.F12); ieWebDriver.Keyboard.SendKeys(Keys.LeftAlt); ieWebDriver.Keyboard.SendKeys("b"); ieWebDriver.Keybo

我正在尝试使用c#在使用selenium的IE上运行不同的浏览器模式。下面是一些代码:

var ieWebDriver = new InternetExplorerDriver(@"PATHTOWEBDRIVER");
ieWebDriver.Keyboard.SendKeys(Keys.F12);

ieWebDriver.Keyboard.SendKeys(Keys.LeftAlt);
ieWebDriver.Keyboard.SendKeys("b");
ieWebDriver.Keyboard.SendKeys(Keys.NumberPad7);
我可以打开开发工具(f12),但无法更改浏览器模式。IE是否阻止了这种应有的安全性?如果是的话,有没有其他方法可以用较低的IE版本呈现内容


谢谢

否。IEDriver将启动机器上安装的任何IE

更改“浏览器模式”不是您要将其更改为的版本的真实表示。IE7标准模式上的IE9不是IE7的真实版本

因此,你陷入了一个问题。你想测试不同版本的IE,你是怎么做的

问题是Windows允许您在任何时候在Windows PC上只有一个IE版本。是的,有很多黑客和程序可以让多个版本(IE5及以上)在一台机器上运行,但它们都是黑客。那些不能很好地工作的黑客,尽管如此,你甚至不能给IEDriverServer灵活性来做这件事

你必须有单独的Windows机器

另一种解决方法是在注册表中设置浏览器仿真模式,这也是一种黑客行为,如中所述

请注意,在上述问题中,接受的答案不起作用,但另一个答案可能起作用。请注意,对该答案的评论是由IEDriver本身的维护者提出的,强烈建议不要这样做


我还没有测试过的另一种解决方法可能是使用MSDN中记录的本机C#
键盘.SendKeys
。我不确定它是否会起作用(不认为有人使用过),但这是另一种选择。

Selenium支持对同一浏览器的不同版本进行跨浏览器测试,但不能通过在F12 Tools的浏览器模式下切换版本来实现

您可以使用不同版本的IE作为Selenium节点设置虚拟机,并使用Selenium Hub连接到它们。假设您有一个安装了IE9的Windows7虚拟机。您将在那里启动一个Selenium节点,并指定它接受IE9测试的请求。然后,您将为版本9创建InternetExplorerDriver,连接到集线器并运行测试。集线器找到具有IE9的节点并在那里运行测试

相关帖子如下:


这当然不同于您试图在一台机器上执行的操作,但它更可靠,并防止您对本地IE实例进行额外管理。

我认为设置“browserMode”确实会有所不同。我从手动测试站点了解到,调整浏览器模式实际上会在我将浏览器设置为该模式时产生预期的结果。也许有些情况下它不是真正的代表,但没有一个具体的例子,这只是一个笼统的声明,我不认为这是事实。@贾琼安,我不同意,恭敬地说,这篇帖子比我能解释得好得多:事实上的联系。谢谢你提供它。除非有事实支持,否则我倾向于不相信这种说法。如果你必须支持锁定到兼容模式的浏览器(IE默认为Intranet站点),那就太糟糕了,因为标题或元标记无法突破它。我需要为外部客户测试IE7到IE11,为内部客户测试IE7兼容模式下的IE11。