一、Chrome
错误一:Exception in thread "main" java.lang.IllegalStateException: The path to the driver executable must be set by the webdriver.chrome.driver system property; for more information, see http://code.google.com/p/selenium/wiki/ChromeDriver. The latest version can be downloaded from http://chromedriver.storage.googleapis.com/index.html
解决方法:
System.setProperty("webdriver.chrome.driver", "D:/workspace/chromedriver.exe");
System.setProperty("webdriver.chrome.bin", "C:/Program Files/Google/Chrome/Application/chrome.exe");
错误二、Exception in thread "main" org.openqa.selenium.WebDriverException: unknown error: version info not a dictionary
解决方法:https://code.google.com/p/chromedriver/downloads/list
http://chromedriver.storage.googleapis.com/index.html?path=2.7/
chromedriver版本和chrome浏览器版本不对应,重新下载chromedriver.exe
二、IE
错误一:Exception in thread "main" org.openqa.selenium.WebDriverException: Unexpected error launching Internet Explorer. Protected Mode settings are not the same for all zones. Enable Protected Mode must be set to the same value (enabled or disabled) for all zones. (WARNING: The server did not provide any stacktrace information)
错误代码不一样了,安全模式问题?继续google一下。有人提示问题原因如下:
如果IE浏览器设置安全性较高,在“Internet Options”中都不要选择“Enable Protected Mode”(保护模式),否则可能遇到如下的错误提示。
解决方法:
一种是修改掉IE的设置,不要在任何情况下使用保护模式(protected mode),另一种即是前面代码中如下片段在运行时设置IE的Capabilities。
第二种方法应该是在运行时设置IE的部分参数。鉴于代码健壮性考虑,使用第二种方法,继续修改代码。
System.setProperty("webdriver.ie.driver", "D:/workspace/IEDriverServer.exe");
//WebDriver driver =new InternetExplorerDriver();
DesiredCapabilities ieCapabilities = DesiredCapabilities.internetExplorer();
ieCapabilities.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS,true);
WebDriver driver = new InternetExplorerDriver(ieCapabilities);