Selenium RemoteWebDriver和WebDriver之间有什么区别?

Selenium RemoteWebDriver和WebDriver之间有什么区别?,selenium,selenium-webdriver,remotewebdriver,Selenium,Selenium Webdriver,Remotewebdriver,实际上,我找不到一个很好的解释,来解释在Selenium中RemoteWebDriver和WebDriver之间的区别 下面是eclipse告诉我将WebDriver转换为RemoteWebDriver的代码 (!((RemoteWebDriver)驱动程序).getSessionId().toString()包含(“null”)) 那么为什么我不应该使用RemoteWebDriver而不是WebDriver呢?RemoteWebDriver是一个实现接口WebDriver的具体类 Remot

实际上,我找不到一个很好的解释,来解释在Selenium中RemoteWebDriver和WebDriver之间的区别

下面是eclipse告诉我将WebDriver转换为RemoteWebDriver的代码

(!((RemoteWebDriver)驱动程序).getSessionId().toString()包含(“null”))

那么为什么我不应该使用RemoteWebDriver而不是WebDriver呢?

RemoteWebDriver
是一个实现接口
WebDriver
的具体类


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

因此,您的对象需要显式向下转换以使用
getSessionId
方法,因为
WebDriver
本身不知道任何纯由
RemoteWebDriver
定义的方法或变量

说到问题——“为什么我不应该使用
RemoteWebDriver
而不是
WebDriver
?”

是的,您可以使用
RemoteWebDriver
而不是
WebDriver
,但是这会使代码不符合设计原则-
“代码到接口”

您的代码可以正常工作,但没有任何问题


但是,它将不能灵活地使用将来可能出现的其他驱动程序实现(尽管可能性不大),这些驱动程序实现
WebDriver
,但不扩展
RemoteWebdriver
。在这种情况下,
RemoteWebDriver
类型的变量不能分配给类的对象,该类对象是
WebDriver的
实现,但不扩展
RemoteWebDriver

remote用于在其他机器上使用浏览器运行驱动程序。请检查Java文档和。e、 g.搜索上下文接口->Web驱动程序接口->远程Web驱动程序类->Chrome驱动程序类->Chrome驱动程序类