2011-04-19 66 views

回答

3

仅适用于Windows支持安装一个IE版本。虽然有些黑客可以运行多个版本,但我确信你不会让他们使用WebDriver(尽管我很想证明是错误的)。

在你的鞋子里,我可能会为你想测试的每个版本设置一个Windows VM,并使用RemoteWebDriver与他们交谈。

+0

是啊我打算有不同的IE安装多个虚拟机。以编程方式如何使用RemoteWebDriver调用不同的IE版本? – sebarmeli 2011-04-20 04:01:59

+0

您的代码需要知道哪个服务器具有哪个IE版本,然后使用正确的URL实例化RemoteWebDriver。 – jarib 2011-04-20 09:38:03

+0

Modern.IE网站允许您下载安装了各种版本IE的虚拟机映像https://www.modern.ie/en-us/virtualization-tools#downloads – 2014-10-23 08:32:05

0

但是,最新的IE支持“浏览器模式” - 只需按F12并选择浏览模式。 AFAIK它工作得很好 - 至少与IE8和IE7相比。 我很好奇它是否可以通过JavaScript访问并在Selenium中自动更改?

+0

简单的答案是:不,您不能模拟F12硒。 “浏览器模式”不太可靠。看到http://stackoverflow.com/a/11418046/1080590 – Miro 2014-02-07 11:10:17

10

是的,你可以。 DesiredCapabilities有,你可以使用一个公共方法:

this.SetCapability(CapabilityType.BrowserName, "internet explorer"); 
this.SetCapability(CapabilityType.Version, "8"); 
this.SetCapability(CapabilityType.Platform, "WINDOWS"); 

我写扩展方法,使之更容易被此实例调用任何版本:

DesiredCapabilities internetExplorer8 = 
          DesiredCapabilities.InternetExplorer().SetVersion("8"); 
IWebDriver webDriver = new RemoteWebDriver(seleniumHubUrl, internetExplorer8); 

如果使用RemoteWebDriver这确实是有道理的并有一个Selenium2 Grid/Hub设置多个节点,例如每个虚拟机具有不同版本的Internet Explorer,并且每个虚拟机都是连接到集线器的节点。

和扩展:

public static class DesiredCapabilitiesExtension 
{ 
    public static DesiredCapabilities SetBrowserName(this DesiredCapabilities desiredCapabilities, string browserName) 
    { 
     // make sure the browser name is lowercase 
     desiredCapabilities.SetCapability(CapabilityType.BrowserName, browserName.ToLowerInvariant()); 
     return desiredCapabilities; 
    } 

    public static DesiredCapabilities SetVersion(this DesiredCapabilities desiredCapabilities, string version) 
    { 
     desiredCapabilities.SetCapability(CapabilityType.Version, version); 
     return desiredCapabilities; 
    } 

    public static DesiredCapabilities SetPlatform(this DesiredCapabilities desiredCapabilities, string platform) 
    { 
     // make sure the platform is case sensitive, uppercase to make it work 
     desiredCapabilities.SetCapability(CapabilityType.Platform, platform.ToUpperInvariant()); 
     return desiredCapabilities; 
    } 
} 
+1

这不似乎工作。当我尝试设置版本时,网格无法找到任何版本的IE。尽管它使用版本号转发会话,但无法使用正确的版本定位浏览器,并引发了无法找到具有这些功能的浏览器的异常。 – 2014-10-09 11:13:55

1

为了实例不同的版本,你可以使用capability.setVersion到所需版本号中设置的版本。与此同时,在启动节点,您需要在命令行中添加以下参数:

-browser “browserName = Internet Explorer中,MAXINSTANCES = 5,平台= Windows,版本= 8”

为了在同一节点支持多个版本,可以多次使用“浏览器”。

+0

在节点启动时设置浏览器标志是非常重要的,否则网格将找不到所需的版本。谢谢! – Samuel 2016-11-07 21:19:07

相关问题