Java Selenium Webdriver和GeckoDriver之间有什么区别?
我每5年左右使用一次硒,每次它都变得面目全非。我刚刚启动了一个新的Selenium项目,在谷歌上搜索了一些快速入门指南,如(2020年9月编写的)和(©2020),它们似乎都在使用WebDriver,例如,通过Java Selenium Webdriver和GeckoDriver之间有什么区别?,java,selenium,selenium-webdriver,geckodriver,Java,Selenium,Selenium Webdriver,Geckodriver,我每5年左右使用一次硒,每次它都变得面目全非。我刚刚启动了一个新的Selenium项目,在谷歌上搜索了一些快速入门指南,如(2020年9月编写的)和(©2020),它们似乎都在使用WebDriver,例如,通过WebDriver=new FirefoxDriver()启动示例虽然后者有一个免责声明说,从Firefox35(我有82)和更高版本,你应该使用Geckodriver 我使用从下载的Selenium for Java 3.141.59,但它只有两个对Geckodriver的引用(至少在我
WebDriver=new FirefoxDriver()启动示例代码>虽然后者有一个免责声明说,从Firefox35(我有82)和更高版本,你应该使用Geckodriver
我使用从下载的Selenium for Java 3.141.59,但它只有两个对Geckodriver的引用(至少在我的IDE中输入Ge
和autocomplete时显示的内容)、GeckoDriverInfo
和GeckoDriverService
(作为比较,有九个对WebDriver的引用)
我已经阅读了这里的信息,但这并没有让我变得更聪明,也没有(维基百科页面上甚至没有提到Geckodriver)
Webdriver和Geckodriver之间有什么区别
为什么,如果一个人下载了所有东西的最新/最新版本,如果Geckodriver是几年来推荐的工具,那么它不包括在内吗
如果Geckodriver是未来的发展方向,为什么最近编写的指南会使用Webdriver
我想我在问这个问题之前已经做了相当多的研究,但是可以自由地提出改进建议,因为我真的很困惑
webdriver是ChromeDriver(来自chrome)、GeckoDriver(FireFox)、IEDriver和RemoteDriver的父代。如果得到支持,可能会更多。因此,GeckoDriver用于控制FireFox浏览器实例,但它实现了WebDriver界面中提到的方法
GeckoDriver不包括在内,因为它只针对FireFox,其他用户可能希望使用其他浏览器
为了保持在不同浏览器中交换实现的灵活性:李>
WebDriver是一个应用程序。它定义了UI界面自动化的方式。GeckoDriver就是这种规范的实现——它是Firefox浏览器的WebDriver实现
所以,WebDriver基本上是一个服务器,它向一端公开RESTAPI,并知道如何控制另一端的浏览器
以下是E2E流的简短说明(适用于Firefox和Java):
您可以下载SeleniumJava库。它为与web驱动程序交互提供Java客户端
你下载壁虎河
在Java代码中调用WebDriver driver=new FirefoxDriver()代码>
Selenium库以OS本机方式启动GeckoDriver可执行文件
在Java代码中调用driver.get(“http://my.url“”
Selenium库对使用GeckoDriver启动的服务器进行REST调用。它根据调用端点
GeckoDriver然后将该命令转换为Firefox能够理解的内容,以便浏览器导航到所需的页面
因此,基本上你需要三件事才能让一切顺利进行:
- Selenium Java库,基本上是WebDriver REST API的Java客户端
- GeckoDriver(根据WebDriver规范实现RESTAPI,并将其转换为Firefox browse可以理解的命令)
- 火狐浏览器
所以我需要从上面的链接下载WebDriver和GeckoDriver?这引出了另一个问题:我只下载了WD,并编写了一个快速脚本,在Firefox中启动一个新窗口时没有问题。为什么?WebDriver通常已经存在于selenium模块中(至少在python和java中),您只需要下载GeckoDriver。你能给我看看你下载的东西和你的代码吗?