WebDriver vs ChromeDriver
2022-09-03 03:56:06
在Selenium 2 - Java中,两者之间有什么区别
ChromeDriver driver = new ChromeDriver();
和
WebDriver driver = new ChromeDriver();
?我已经在各种教程,示例等中看到了这两种用法,并且不确定使用与对象之间的区别。ChromeDriver
WebDriver
在Selenium 2 - Java中,两者之间有什么区别
ChromeDriver driver = new ChromeDriver();
和
WebDriver driver = new ChromeDriver();
?我已经在各种教程,示例等中看到了这两种用法,并且不确定使用与对象之间的区别。ChromeDriver
WebDriver
Satish的答案是正确的,但用更外行的话来说,它特别而且只是Chrome的驱动力。 是一个更通用的驱动程序,可用于许多不同的浏览器...IE,Chrome,FF等ChromeDriver
WebDriver
如果您只关心 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接口的类。实际上,ChromeDriver扩展了实现WebDriver的RemoteWebDriver。只是为了添加每个WebDriver,如ChromeDriver,FirefoxDriver,EdgeDriver应该实现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 {}