在不使用 webdriver 的情况下,我发现.Include(x => x.Balance)
.ThenInclude(x => x.MCTSIB)
.Include(x => x.Balance)
.ThenInclude(x => x.Balance.C1)
方法的返回类型为driver.FindElement
。
使用Webdriver时,我发现WebElement-Remotewebdriver
方法的返回类型为FindElement
。
WebElement-Webdriver
如果Chromedriver正在实现Webdriver界面,为什么我看到ChromeDriver driver = new ChromeDriver();
driver.get("https://ui.freecrm.com/");
driver.findElement(By.xpath("//div[@class='ui fluid large blue submit button']"));
的返回类型为findElement
而不是Webelement-RemoteWebdriver
?
我知道Webelement-Webdriver
类实现了RemoteWebdriver
接口。什么时候使用Webdriver
?为什么?
答案 0 :(得分:1)
SearchContext
是根接口,由webdriver
和webelement
接口扩展。
因此,当我们谈论webdriver接口时,有两个实现该接口的类
有6个类扩展了RemoteWebDriver类,例如ChromeDriver
,FF
,IE
等。
看看官方文件怎么说:
您可以使用 WebDriver 远程,就像使用本地一样。主要区别在于远程 WebDriver 需要进行配置,以便它可以在单独的计算机上运行测试。远程WebDriver由两部分组成:客户端和服务器。客户端是您的 WebDriver 测试,而服务器只是Java servlet ,可以在任何现代的 JEE 应用服务器中托管。
有关更多信息,请参见:official Link
问:如果Chromedriver正在实现Webdriver接口,为什么我看到findElement的返回类型为Webelement-RemoteWebdriver而不是Webelement-Webdriver?Ans: Chromedriver 是一个公共类,未实现 Webdriver 界面。 并扩展了RemoteWebDriver受保护的类。