如何在selenium web驱动程序中添加IE驱动程序或Chrome驱动程序时启动已安装的浏览器?

时间:2015-09-16 06:44:15

标签: java internet-explorer selenium selenium-webdriver chrome-web-driver

我在计算机上安装了IE浏览器和Chrome浏览器。我想从原始浏览器运行我的selenium脚本,包含所有附加组件和默认设置。

我能够找到具有一些功能的浏览器的* .exe。但是无法在浏览器中编写和打开链接(driver.get())。请参考以下代码。

DesiredCapabilities cap = new DesiredCapabilities();
cap.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true);
cap.setCapability(InternetExplorerDriver.INITIAL_BROWSER_URL, DriverTestNG.url);
DesiredCapabilities.internetExplorer().setCapability("ignoreProtectedModeSettings", true);
System.setProperty("webdriver.ie.driver", "src/main/resources/Framework/Drivers/Windows/IEDriverServer_Win32_2.40.0/IEDriverServer.exe");
cap.setCapability("IE.binary", "C:\\Program Files\\Internet Explorer\\iexplore.exe");
cap.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
cap.setJavascriptEnabled(true);
cap.setCapability("requireWindowFocus", true);
cap.setCapability("enablePersistentHover", false);
cap.setCapability("elementScrollBehavior", 1);
cap.setCapability("cssSelectorsEnabled", true);
cap.setCapability("nativeEvents", true);
driver = new InternetExplorerDriver(cap);

可能是我错过了什么。我不确定selenium web驱动程序是否支持此功能。

请指导我。

提前致谢。

1 个答案:

答案 0 :(得分:2)

关于您的标题,您无法在不使用webDriver的情况下运行Internet Explorer或Chrome,因为您需要使用webDriver作为API来访问IE或Chrome的功能。

但您仍然可以使用扩展程序和默认设置。您没有看到任何运行chromeDriver的扩展的原因是它始终为每个测试会话创建一个新的临时配置文件。如果您想使用扩展程序和设置运行自己的自定义配置文件,则必须通过定义user-data-dir告诉chromeDriver应使用哪个用户配置文件。

您可以在此处找到相应功能: https://sites.google.com/a/chromium.org/chromedriver/capabilities

示例:

ChromeOptions options = new ChromeOptions();
options.addArguments("user-data-dir=C:/Users/user_name/AppData/Local/Google/Chrome/User Data");

您还可以使用以下方式指定扩展名: https://sites.google.com/a/chromium.org/chromedriver/extensions

我不使用IEdriver所以我不能告诉你它是如何与IE一起工作的,但据我所知,Internet Explorer没有配置文件,扩展程序在注册表中的某处管理。所以我认为在运行测试之前安装的扩展也可以通过IEWebDriver