在Selenium2-Java中,
ChromeDriver driver = new ChromeDriver();
和
WebDriver driver = new ChromeDriver();
?我在各种教程、示例等中都使用过这两种方法,并且不确定使用ChromeDriver与WebDriver对象之间的区别。
发布于 2016-09-08 04:31:28
萨蒂什的回答是正确的,但用更多外行的话来说,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。
发布于 2016-09-07 20:40:31
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 {}发布于 2018-08-31 12:37:15
WebDriver是一个接口
ChromeDriver是WebDriver接口的实现
https://docs.oracle.com/javase/tutorial/java/concepts/interface.html
在用法上没有差别:
ChromeDriver driver = new ChromeDriver();或
WebDriver driver = new ChromeDriver();https://stackoverflow.com/questions/39378442
复制相似问题