RemoteWebDriver
— это конкретный класс, реализующий интерфейс WebDriver
.
Класс RemoteWebDriver
содержит дополнительные методы, не объявленные интерфейсом WebDriver
. Метод 'getSessionId()'
является одним из них.
Следовательно, ваш объект должен быть явно понижен, чтобы использовать метод getSessionId
, поскольку сам WebDriver
не знает ни одного метода или переменной, которые полностью определены RemoteWebDriver
.
Переходя к вопросу - "почему бы мне просто не использовать RemoteWebDriver
вместо WebDriver
?"
Да, вы можете использовать RemoteWebDriver
вместо WebDriver
, однако это делает код не соответствующим принципу разработки - 'Code to the interface'
Ваш код будет работать нормально, хотя без каких-либо проблем.
Однако у него не будет гибкости для использования других реализаций драйверов, которые могут появиться в будущем (хотя это очень маловероятно), которые реализуют WebDriver
, но не расширяют RemoteWebdriver
. В таком случае переменная типа RemoteWebDriver
не может быть присвоена объекту класса, который WebDriver's
реализует, но не расширяет RemoteWebDriver
person
Sachin Ramdhan Boob
schedule
18.08.2019