RemoteWebDriver和WebDriver有什么区别?

时间:2019-08-16 17:42:18

标签: selenium selenium-webdriver remotewebdriver

我实际上无法很好地解释Selenium中RemoteWebDriver和WebDriver之间的区别。

这是eclipse告诉我的将WebDriver转换为RemoteWebDriver的代码。

(!((RemoteWebDriver) driver).getSessionId().toString().contains("null"))

那我为什么不只使用RemoteWebDriver代替WebDriver?

1 个答案:

答案 0 :(得分:3)

RemoteWebDriver是实现接口WebDriver的具体类。

RemoteWebDriver类包含接口WebDriver未声明的其他方法。方法'getSessionId()'是其中之一。

因此,由于getSessionId本身不了解任何纯粹由WebDriver定义的方法或变量,因此需要显式地向下转换对象以使用RemoteWebDriver方法。

  

出现一个问题-“为什么我不应该只使用RemoteWebDriver而不是WebDriver?”

是的,您可以使用RemoteWebDriver而不是WebDriver,但是这会使代码不符合设计原则-'Code to the interface'

您的代码可以正常运行,尽管没有任何问题。

但是,它不能灵活地使用将来可能(但不太可能)实现WebDriver但不扩展RemoteWebdriver的其他驱动程序实现。在这种情况下,无法将RemoteWebDriver类型的变量分配给实现了WebDriver's但不能扩展RemoteWebDriver

的类的对象