просто интересно, как я могу создавать разные версии InternetExplorerDriver.
Вот как я могу создать драйвер IE:
WebDriver ieWebDriver = new InternetExplorerDriver();
но я не могу различить IE6, IE7, IE8 и IE9.
Ваше здоровье,
просто интересно, как я могу создавать разные версии InternetExplorerDriver.
Вот как я могу создать драйвер IE:
WebDriver ieWebDriver = new InternetExplorerDriver();
но я не могу различить IE6, IE7, IE8 и IE9.
Ваше здоровье,
Windows поддерживает установку только одной версии IE. Хотя существуют некоторые хаки для запуска нескольких версий, я почти уверен, что вы не заставите их работать с WebDriver (хотя я хотел бы оказаться неправым).
На вашем месте я бы, вероятно, настроил виртуальную машину Windows для каждой версии, которую вы хотите протестировать, и использовал 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 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;
}
}
Чтобы создать разные версии, вы можете установить версию, используя возможность.setVersion, на требуемый номер версии. При этом при запуске ноды нужно добавить в командную строку следующие параметры:
-browser "browserName = Internet Explorer, maxInstances = 5, платформа = WINDOWS, версия = 8"
Для поддержки нескольких версий на одном узле вы можете использовать «-browser» несколько раз.
Однако последняя версия IE поддерживает «режим браузера» — просто нажмите F12 и выберите режим просмотра. Насколько я знаю, это работает довольно хорошо - по крайней мере, по сравнению с IE8 и IE7. Мне любопытно, можно ли получить к нему доступ с помощью javascript и автоматически изменить в Selenium?