2015-09-19 3 views
3

От Selenium docs, WebDriver - это интерфейс, но в Eclipse пакет org.openqa.selenium показан как класс в Project Explorer. Кроме того, если WebDriver является интерфейсом, такие классы, как ChromeDriver или InternetExplorerDriver, которые реализуют его, должны определять методы, такие как .get() или .getCurrentUrl(). Где мы можем увидеть метод определения этих методов?Является ли webdriver классом или интерфейсом?

ответ

4

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 
    */ 
+0

Но согласно ссылке Селена дока (http://seleniumhq.github.io/selenium/docs/api/java/index.html), он mntioned как: - интерфейса WebDriver Все суперинтерфейсы: SearchContext Все известные исполнители Классы: ChromeDriver, EdgeDriver, EventFiringWebDriver, FirefoxDriver, HtmlUnitDriver, InternetExplorerDriver, MarionetteDriver, OperaDriver, RemoteWebDriver, SafariDriver –

+0

@MainakSikdar Я не в состоянии следовать вашей ссылке. – Saifur

+0

Ссылка работает отлично для меня – JeffC

1

WebDriver является public interface, мы просто определяем ссылочную переменную (драйвер), тип которой является интерфейсом. Теперь любой объект, который мы ему присваиваем, должен быть экземпляром класса (fireFoxDriver), реализующего интерфейс.