
[英]What is the difference between DefaultSelenium and RemoteWebDriver?
[英]What is the difference between RemoteWebDriver and WebDriver?
我实际上找不到一个很好的解释,说明了在Selenium中RemoteWebDriver和WebDriver之间的区别。
这是eclipse告诉我将WebDriver转换为RemoteWebDriver的代码。
(!((RemoteWebDriver) driver).getSessionId().toString().contains("null"))
那么为什么我不应该只使用RemoteWebDriver而不是WebDriver呢?
RemoteWebDriver
是一个实现接口WebDriver
的具体类。
RemoteWebDriver
类包含未由接口WebDriver
声明的其他方法。 方法'getSessionId()'
就是其中之一。
因此,您的对象需要明确地下载以使用getSessionId
方法,因为WebDriver
本身不知道任何由RemoteWebDriver
纯定义的方法或变量。
提出问题 - “为什么我不应该只使用
RemoteWebDriver
而不是WebDriver
?”
是的,您可以使用RemoteWebDriver
而不是WebDriver
,但它使代码不符合设计原则 - 'Code to the interface'
您的代码可以正常工作,但没有任何问题。
但是,它不具备使用其他驱动程序实现的灵活性,这些驱动程序实现可能在将来(尽管非常不可能)实现WebDriver
但不扩展RemoteWebdriver
。 在这种情况下, RemoteWebDriver
类型的变量不能分配给类的对象是哪个WebDriver's
实现但不扩展RemoteWebDriver
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.