Selenium RemoteWebDriver和WebDriver之间有什么区别?
实际上,我找不到一个很好的解释,来解释在Selenium中RemoteWebDriver和WebDriver之间的区别 下面是eclipse告诉我将WebDriver转换为RemoteWebDriver的代码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
(!((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驱动程序类