如何实例化不同版本的InternetExplorerDriver - Selenium 2?

seb*_*eli 11 testing integration-testing webdriver selenium-webdriver

只是想知道如何实例化InternetExplorerDriver的不同版本.

这就是我可以创建IE驱动程序的方法:

WebDriver ieWebDriver = new InternetExplorerDriver();
Run Code Online (Sandbox Code Playgroud)

但我无法区分IE6,IE7,IE8和IE9.

干杯,

小智 10

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

this.SetCapability(CapabilityType.BrowserName, "internet explorer");
this.SetCapability(CapabilityType.Version, "8");
this.SetCapability(CapabilityType.Platform, "WINDOWS");
Run Code Online (Sandbox Code Playgroud)

我编写了扩展方法,以便通过此调用更容易实例化任何版本:

DesiredCapabilities internetExplorer8 =
                          DesiredCapabilities.InternetExplorer().SetVersion("8");
IWebDriver webDriver = new RemoteWebDriver(seleniumHubUrl, internetExplorer8);
Run Code Online (Sandbox Code Playgroud)

如果您使用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;
    }
}
Run Code Online (Sandbox Code Playgroud)


jar*_*rib 3

Windows 仅支持安装单个 IE 版本。尽管存在一些可以运行多个版本的 hack,但我很确定您不会让它们与 WebDriver 一起使用(尽管我希望被证明是错误的)。

站在你的立场上,我可能会为你想要测试的每个版本设置一个 Windows VM,并使用 RemoteWebDriver 与它们对话。