2

我正在使用Selenium WebDriver和Ruby,并试图创建将在IE8中测试的脚本。我无法找到如何设置iedriver在IE8模式下启动或如何在webdriver启动后将其切换到IE8的答案。我在Windows 7上,所以我只有IE9可用。我目前用来在IE9中启动webdriver的代码是使用Selenium WebDriver在Ruby中将IE9更改为IE8

$driver = Selenium::WebDriver.for :ie 

任何帮助将不胜感激。我看起来很高和低,但无法找到任何回答这个问题。如果你需要我的额外信息,我会很乐意提供。非常感谢你。

+0

将它降级到IE8可能更容易,而不是试图用WebDriver进行更改。 http://windows.microsoft.com/en-US/windows7/how-do-i-install-or-uninstall-internet-explorer-9 – nmunson

+0

谢谢我会调查这个,看看它是否会为我工作。我仍然需要对IE9进行测试,因此如果需要将其降低到8,那么这是一个令人不满意的解决方案。如果可以同时安装,我还必须弄清楚如何告诉它要启动哪个版本的IE。 –

+0

Internet Explorer 8与Windows 7不兼容。我需要找到一种在IE8模式下使用IE9的webdriver的方法。 –

回答

6

如果你想告诉在运行时的IE版本,你可以使用DesiredCapabilities.

DesiredCapabilities ieCapabilities = null; 
    ieCapabilities = DesiredCapabilities.internetExplorer(); 
    ieCapabilities.setBrowserName("internet explorer"); 
    ieCapabilities.setVersion("Version Number"); 
    driver = new InternetExplorerDriver(ieCapabilities); 

欲了解更多信息有关DesiredCapabilities使用这个链接http://code.google.com/p/selenium/wiki/DesiredCapabilities

在评论中你说我需要IE 8和9.实际上这是不可能的,Windows目前支持在一个盒子里只安装一个IE版本。 IEDriver使用安装的IE版本启动。

如果你想使用多个版本的IE来测试,那么更好的选择去Windows Virtual Machines。您可以使用RemoteWebdriver实例与虚拟机通话。

1

实际上,Selenium WebDriver目前不支持此功能。目前针对IE模式的增强请求将作为来自Manigandan的评论中引用的DesiredCapabilities功能的一部分来实现。

您可以按照增强请求在这里:在增强请求中提到http://code.google.com/p/selenium/issues/detail?id=2564

其他可能的解决方案是操纵FEATURE_BROWSER_EMULATION注册表项(见http://msdn.microsoft.com/en-us/library/ee330730(v=vs.85).aspx)或使用键盘命令来打开开发人员工具,并从那里选择模式(我不确定这个解决方案的效果如何,因为Python中的解决方法需要将WebDriver对象转换为Selenium 1.0对象)。

+9

我应该指出,我**强烈**反对这个增强请求。我认为它是有缺陷的,而且它的实现在IE驱动程序中没有地方。指导原则是这样的:IE驱动程序不应该尝试更改注册表,因为它会影响计算机上所有未来的IE实例。如果IE驱动程序希望驱动多个IE实例,即使缓存现有值并恢复它也充满危险。这一增强请求看到白天的光线的机会很渺茫。 – JimEvans

相关问题