jac*_*a1n 3 selenium selenium-webdriver remotewebdriver
我实际上无法很好地解释 RemoteWebDriver 和 Selenium 中的 WebDriver 之间的区别。
这是eclipse告诉我将WebDriver转换为RemoteWebDriver的代码。
(!((RemoteWebDriver) driver).getSessionId().toString().contains("null"))
Run Code Online (Sandbox Code Playgroud)
那么为什么我不应该只使用 RemoteWebDriver 而不是 WebDriver 呢?
RemoteWebDriver是一个实现 interface 的具体类WebDriver。
RemoteWebDriverclass 包含未由 interface 声明的其他方法WebDriver。方法'getSessionId()'就是其中之一。
因此,您的对象需要显式转换为使用getSessionId方法,因为WebDriver它本身不知道任何纯粹由RemoteWebDriver.
来到这个问题 - “为什么我不应该使用
RemoteWebDriver而不是WebDriver?”
是的,您可以使用RemoteWebDriver而不是WebDriver,但是它会使代码不符合设计原则 -'Code to the interface'
尽管没有任何问题,但您的代码可以正常工作。
但是,它不会灵活地使用将来可能出现的其他驱动程序实现(尽管不太可能),这些实现WebDriver但不扩展RemoteWebdriver. 在这种情况下,类型的变量RemoteWebDriver不能分配给类的对象是哪个WebDriver's实现但不扩展RemoteWebDriver
| 归档时间: |
|
| 查看次数: |
2229 次 |
| 最近记录: |