Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java webdriver是类还是接口?_Java_Selenium_Selenium Webdriver_Webdriver - Fatal编程技术网

Java webdriver是类还是接口?

Java webdriver是类还是接口?,java,selenium,selenium-webdriver,webdriver,Java,Selenium,Selenium Webdriver,Webdriver,从中,WebDriver是一个接口,但在Eclipse中,包org.openqa.selenium在项目浏览器中显示为一个类。此外,如果WebDriver是一个接口,则实现它的类(如ChromeDriver或InternetExplorerDriver)应该定义方法(如.get()或.getCurrentUrl())。我们在哪里可以看到这些方法的方法定义 WebDriver是一个公共接口,我不认为ChromeDriver或任何其他驱动程序实现WebDriver,而是扩展了RemoteWebDri

从中,WebDriver是一个接口,但在Eclipse中,包
org.openqa.selenium
在项目浏览器中显示为一个类。此外,如果WebDriver是一个接口,则实现它的类(如ChromeDriver或InternetExplorerDriver)应该定义方法(如
.get()
.getCurrentUrl()
)。我们在哪里可以看到这些方法的方法定义

WebDriver是一个公共接口,我不认为ChromeDriver或任何其他驱动程序实现WebDriver,而是扩展了RemoteWebDriver这一类

编辑

正如我所说的,驱动程序扩展了RemoteWebDriver,这就是这些方法的实际实现

public void get(String url) {
   execute(DriverCommand.GET, ImmutableMap.of("url", url));
}
Java源代码:

public interface WebDriver extends SearchContext {
  // Navigation

  /**
   * Load a new web page in the current browser window. This is done using an HTTP GET operation,
   * and the method will block until the load is complete. This will follow redirects issued either
   * by the server or as a meta-redirect from within the returned HTML. Should a meta-redirect
   * "rest" for any duration of time, it is best to wait until this timeout is over, since should
   * the underlying page change whilst your test is executing the results of future calls against
   * this interface will be against the freshly loaded page. Synonym for
   * {@link org.openqa.selenium.WebDriver.Navigation#to(String)}.
   *
   * @param url The URL to load. It is best to use a fully qualified URL
   */

WebDriver是一个公共接口,我们只需定义一个类型为interface的引用变量(driver)。现在,我们分配给它的任何对象都必须是实现接口的类(fireFoxDriver)的实例

但根据Selenium doc link(),它被命名为:-接口WebDriver所有高级接口:SearchContext所有已知的实现类:ChromeDriver、EdgeDriver、EventFiringWebDriver、FirefoxDriver、HtmlUnitDriver、InternetExplorerDriver、MarionetteDriver、OperaDriver、RemoteWebDriver、, SafariDriver@MainakSikdar我无法跟踪你的链接。@Jeff我知道现在哪里有混乱了。我将编辑我的答案以添加更多内容info@Saifur-谢谢。得到我的澄清。@JeffC-也感谢你在这里的帮助。