WebDriver与ChromeDriver
在Selenium 2 – Java中,有什么区别
ChromeDriver driver = new ChromeDriver();
和
WebDriver driver = new ChromeDriver();
? 我已经看过这两个用于各种教程,示例等。
WebDriver是一个界面,而ChromeDriver是一个实现WebDriver界面的类。 实际上ChromeDriver扩展了实现WebDriver的RemoteWebDriver。 只需添加像ChromeDriver,FirefoxDriver,EdgeDriver这样的Every WebDriver就可以实现WebDriver。
以下是ChromeDriver和RemoteDriver类的签名
public class ChromeDriver extends RemoteWebDriver implements LocationContext, WebStorage {} public class RemoteWebDriver implements WebDriver, JavascriptExecutor, FindsById, FindsByClassName, FindsByLinkText, FindsByName, FindsByCssSelector, FindsByTagName, FindsByXPath, HasInputDevices, HasCapabilities, TakesScreenshot {}
Satish的回答是正确的,但更多的外行人认为, ChromeDriver
是专门的Chrome驱动程序。 WebDriver
是一个更通用的驱动程序,可用于许多不同的浏览器… IE,Chrome,FF等。
如果您只关心Chrome,可以使用创建驱动程序
ChromeDriver driver = new ChromeDriver();
如果要创建一个返回指定浏览器驱动程序的函数,可以执行以下操作。
public static WebDriver startDriver(Browsers browserType) { switch (browserType) { case FIREFOX: ... return new FirefoxDriver(); case CHROME: ... return new ChromeDriver(); case IE32: ... return new InternetExplorerDriver(); case IE64: ... return new InternetExplorerDriver(); default: throw new InvalidParameterException("Unknown browser type"); } } public enum Browsers { CHROME, FIREFOX, IE32, IE64; }
……然后把它称为……
WebDriver driver = startDriver(Browsers.FIREFOX); driver.get("http://www.google.com");
根据您指定的浏览器,该浏览器将启动并导航至google.com。
WebDriver是一个界面
ChromeDriver是WebDriver界面的一个实现
https://docs.oracle.com/javase/tutorial/java/concepts/interface.html
使用方法没有区别:
ChromeDriver driver = new ChromeDriver();
要么
WebDriver driver = new ChromeDriver();
- Chrome原生邮件无法执行批处理文件
- org.openqa.selenium.WebDriverException:chrome无法访问 – 尝试启动新会话时
- Chrome版本44在selenium测试中存在一些问题
- 使用Selenium的Chrome驱动程序:“找不到适合RemoteWebDriver的构造函数”
- 错误E:使用HtmlUnit执行javascript
- Chrome删除了Java支持
- 我可以从Java应用程序中删除下载的JNLP文件(Java Web start / JWS)吗?
- 在Selenium的inconginto模式下运行chrome浏览器
- 哪个ChromeDriver版本与哪个Chrome浏览器版本兼容?