Как создать разные версии InternetExplorerDriver - Selenium 2? - PullRequest
11 голосов
/ 19 апреля 2011

просто интересно, как я могу создать различные версии InternetExplorerDriver.

Вот как я могу создать драйвер IE:

WebDriver ieWebDriver = new InternetExplorerDriver();

, но я не могу различить IE6, IE7,IE8 и IE9.

Приветствия,

Ответы [ 4 ]

10 голосов
/ 15 декабря 2011

Да, вы можете. 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;
    }
}
3 голосов
/ 19 апреля 2011

Windows поддерживает установку только одной версии IE. Несмотря на то, что существует несколько хаков для запуска нескольких версий, я уверен, что вы не сможете заставить их работать с WebDriver (хотя я бы хотел, чтобы их ошиблись).

Я бы, вероятно, настроил виртуальную машину Windows для каждой версии, которую вы хотите протестировать, и использовал бы RemoteWebDriver для общения с ними.

1 голос
/ 10 декабря 2014

Для создания экземпляров разных версий вы можете установить версию с помощьюability.setVersion для требуемого номера версии.В то же время при запуске узла необходимо добавить следующие параметры в командной строке:

-browser "browserName = internet explorer, maxInstances = 5, platform = WINDOWS, version = 8"

Для поддержки нескольких версий на одном узле вы можете использовать «-browser» несколько раз.

0 голосов
/ 27 апреля 2011

Однако последняя версия IE поддерживает «режим браузера» - просто нажмите F12 и выберите режим просмотра. AFAIK это работает довольно хорошо - по крайней мере, по сравнению с IE8 и IE7. Мне интересно, может ли он быть доступен через javascript и автоматически изменен в Selenium?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...