为什么代码// RemoteWebDriver driver = new FirefoxDriver();是不是用来代替// WebDriver driver = new FirefoxDriver()?

时间:2018-02-07 05:41:12

标签: selenium

为什么不使用代码//RemoteWebDriver driver= new FirefoxDriver();而不是//WebDriver driver= new FirefoxDriver()来创建驱动程序对象?

我觉得RemoteWebDriver为驱动程序实例提供了比webdriver引用更多的功能。有人可以澄清一下吗?

2 个答案:

答案 0 :(得分:0)

WebDriver将在代码实例化的计算机上启动Web浏览器。 例如。如果您编写了一些代码,然后运行它以查看您的操作,浏览器将弹出屏幕,您将看到WebDriver开始操作该Web浏览器窗口(如果一切顺利!)

我将在下面解释一个主要的例外情况, RemoteWebDriver 会做同样的事情;它会打开并操作一个浏览器窗口(如果一切顺利的话!)一般来说,你可以用RemoteWebDriver实际切换WebDriver的实例(好吧,有些高级的情况下你可能无法做到这一点)的主要区别是RemoteWebDriver发送该请求以打开并控制Web浏览器到服务器,因此您通常不会看到浏览器打开并做它的事情。

Selenium服务器是运行并等待RemoteWebDriver连接的程序。您可以在本地计算机上运行它来测试它。如果设置并运行它,您将能够创建RemoteWebDriver并看到Selenium服务器接受连接并允许您控制Web浏览器窗口。

使用RemoteWebDriver获得的收益?

如果您可以连接到本地Selenium服务器,您可以确信您拥有连接到远程Selenium服务器所需的知识和技能,甚至可以使用SauceLabs(托管Selenium等)的付费服务您可以在许多操作系统和许多浏览器上运行大量测试,而无需实际维护或安装任何浏览器(Linux,Windows 8,Windows 10,MacOS,Andriod,IOS,IE,Firefox,Opera,Safari,Firefox Mobile,等等。你现在想要异步地研究运行测试。您不必一次运行一个,因此可以在很短的时间内测试大量的OS /浏览器变体。

答案 1 :(得分:0)

当某些内容仅用于客户端/服务器通信时,这意味着什么?

当您使用具有一个集线器和多个客户端的Selenium网格时,您可以调用RemoteWebDriver来实例化服务器并向其发出请求。