运行 使用 Webdriver 和不使用 Webdriver 的 Selenium 测试之间的区别
Difference between running Selenium test with using Webdriver and without using webdriver
在不使用 webdriver 的情况下,我观察到 driver.FindElement
方法的 return 类型为 WebElement-Remotewebdriver
。
通过使用 Webdriver,我观察到 FindElement
方法的 return 类型为 WebElement-Webdriver
。
ChromeDriver driver = new ChromeDriver();
driver.get("https://ui.freecrm.com/");
driver.findElement(By.xpath("//div[@class='ui fluid large blue submit button']"));
如果 Chromedriver 正在实现 Webdriver 接口,为什么我看到 findElement
的 return 类型是 Webelement-RemoteWebdriver
而不是 Webelement-Webdriver
?
而且我知道 RemoteWebdriver
class 实现了 Webdriver
接口。何时使用 remotewebdriver
,为什么?
SearchContext
是由webdriver
和webelement
接口扩展的根接口。
所以当我们谈论 webdriver 接口时,有两个 class 实现了这个接口
- EventFiringWebDriver。
- RemoteWebDriver.
有 6 个 class 扩展了 RemoteWebDriver class,例如 ChromeDriver
、FF
、IE
等
看看官方文档是怎么说的:
您可以WebDriver远程使用与本地相同的方式。主要区别在于远程 WebDriver 需要 配置 以便它可以 运行 在 上进行测试单独的机器。远程 WebDriver 由两部分组成:客户端和服务器。客户端是您的 WebDriver 测试,服务器只是一个 Java servlet,可以托管在任何现代 JEE 应用服务器。
更多可以参考:official Link
问。如果 Chromedriver 正在实现 Webdriver 接口,为什么我看到 return 类型的 findElement 是 Webelement-RemoteWebdriver 而不是 Webelement-Webdriver?
回答:Chromedriver 是一个 public class 没有实现 Webdriver 接口。
并扩展受保护的 RemoteWebDriver class.
在不使用 webdriver 的情况下,我观察到 driver.FindElement
方法的 return 类型为 WebElement-Remotewebdriver
。
通过使用 Webdriver,我观察到 FindElement
方法的 return 类型为 WebElement-Webdriver
。
ChromeDriver driver = new ChromeDriver();
driver.get("https://ui.freecrm.com/");
driver.findElement(By.xpath("//div[@class='ui fluid large blue submit button']"));
如果 Chromedriver 正在实现 Webdriver 接口,为什么我看到 findElement
的 return 类型是 Webelement-RemoteWebdriver
而不是 Webelement-Webdriver
?
而且我知道 RemoteWebdriver
class 实现了 Webdriver
接口。何时使用 remotewebdriver
,为什么?
SearchContext
是由webdriver
和webelement
接口扩展的根接口。
所以当我们谈论 webdriver 接口时,有两个 class 实现了这个接口
- EventFiringWebDriver。
- RemoteWebDriver.
有 6 个 class 扩展了 RemoteWebDriver class,例如 ChromeDriver
、FF
、IE
等
看看官方文档是怎么说的:
您可以WebDriver远程使用与本地相同的方式。主要区别在于远程 WebDriver 需要 配置 以便它可以 运行 在 上进行测试单独的机器。远程 WebDriver 由两部分组成:客户端和服务器。客户端是您的 WebDriver 测试,服务器只是一个 Java servlet,可以托管在任何现代 JEE 应用服务器。
更多可以参考:official Link
问。如果 Chromedriver 正在实现 Webdriver 接口,为什么我看到 return 类型的 findElement 是 Webelement-RemoteWebdriver 而不是 Webelement-Webdriver?
回答:Chromedriver 是一个 public class 没有实现 Webdriver 接口。 并扩展受保护的 RemoteWebDriver class.