Требуется логическое разъяснение в интерфейсе WebDriver и классе ChromeDriver - PullRequest
0 голосов
/ 11 апреля 2020

Подскажите, пожалуйста, мои сомнения:

Драйвер WebDriver = новый ChromeDriver ();

  1. мы знаем, что WebDriver является интерфейсом, а драйвер Chrome является классом, который реализует интерфейс

WebDriver.

Это означает, что при любых методах, определенных в интерфейсе, мы просто переопределяем то же самое с Chrome классом драйвера.

Драйвер ChromeDriver = новый ChromeDriver ();

Теперь, если мы напишем код, как указано выше ... Тем не менее, мы можем запустить код.

Теперь мои сомнения :

  1. Мы не имеем отношения к интерфейсу Webdriver здесь. Но Still Code будет запускать и успешно выполнять методы ... Как? Потому что в классе ChromeDriver у нас нет таких методов, как:

getTitle (), getCurrentUrl () et c. Эти методы абсолютно относятся к интерфейсу WebDriver.

ChromeDriver является классом и создает для него Object и получает методы с Object.

И с созданием объектаObject мы получаем методы, такие как: getTitle (), getCurrentUrl ()

через ChromeDriver Object?

1 Ответ

2 голосов
/ 11 апреля 2020

Ответ на все ваши сомнения:

  1. Все абстрактные методы интерфейса WebDriver реализованы в RemoteWebDriver классе, который расширяется классами браузера, такими как Chrome Driver et c. И все абстрактные методы интерфейса WebDriver реализованы в классе RemoteWebDriver. Вот почему вы можете получить такие методы, как getTitle (), getCurrentUrl () через ChromeDriver Object.

Надеюсь, это поможет вам enter image description here

...