为什么不使用代码//RemoteWebDriver driver= new FirefoxDriver();
而不是//WebDriver driver= new FirefoxDriver()
来创建驱动程序对象?
我觉得RemoteWebDriver为驱动程序实例提供了比webdriver引用更多的功能。有人可以澄清一下吗?
答案 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
来实例化服务器并向其发出请求。