只是想知道如何实例化InternetExplorerDriver的不同版本。
这就是我可以创建IE驱动程序的方法:
WebDriver ieWebDriver = new InternetExplorerDriver();
但我无法区分IE6,IE7,IE8和IE9。
干杯,
只是想知道如何实例化InternetExplorerDriver的不同版本。
这就是我可以创建IE驱动程序的方法:
WebDriver ieWebDriver = new InternetExplorerDriver();
但我无法区分IE6,IE7,IE8和IE9。
干杯,
Windows仅支持安装单个IE版本。虽然有一些黑客可以运行多个版本,但我很确定你不会让他们使用WebDriver(虽然我很想被证明是错误的)。
在您的考虑中,我可能会为您要测试的每个版本设置一个Windows VM,并使用RemoteWebDriver与它们进行通信。
Windows仅支持安装单个IE版本。虽然有一些黑客可以运行多个版本,但我很确定你不会让他们使用WebDriver(虽然我很想被证明是错误的)。
在您的考虑中,我可能会为您要测试的每个版本设置一个Windows VM,并使用RemoteWebDriver与它们进行通信。
是的你可以。 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网格/集线器,例如,这是非常有意义的。多个虚拟机,每个虚拟机具有不同版本的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;
}
}
要实例化不同的版本,可以使用capability.setVersion将版本设置为所需的版本号。同时,在启动节点时,需要在命令行中添加以下参数:
-browser“browserName = internet explorer,maxInstances = 5,platform = WINDOWS,version = 8”
要在同一节点上支持多个版本,可以多次使用“-browser”。
但是,最新的IE支持“浏览器模式” - 只需按F12并选择浏览模式。 AFAIK它运行得很好 - 至少与IE8和IE7相比。 我很好奇它是否可以通过javascript访问并在Selenium中自动更改?