просто интересно, как я могу создавать различные версии 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, чтобы поговорить с ними.
Да, вы можете. Желаемые возможности имеют общедоступный метод, который вы можете использовать:
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, а каждая из них - node, подключенная к концентратору.
И расширение:
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 на нужный номер версии. В то же время при запуске node вам необходимо добавить следующие параметры в командной строке:
-browser "browserName = internet explorer, maxInstances = 5, platform = WINDOWS, version = 8"
Для поддержки нескольких версий с одним и тем же node вы можете использовать "-browser" несколько раз.
Однако последний IE поддерживает "режим браузера" - просто нажмите F12 и выберите режим просмотра. AFAIK работает неплохо - по крайней мере, по сравнению с IE8 и IE7. Мне любопытно, можно ли получить доступ к javascript и автоматически изменить его в Selenium?