Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Selenium Webdriver和GeckoDriver之间有什么区别?_Java_Selenium_Selenium Webdriver_Geckodriver - Fatal编程技术网

Java Selenium Webdriver和GeckoDriver之间有什么区别?

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的引用(至少在我

我每5年左右使用一次硒,每次它都变得面目全非。我刚刚启动了一个新的Selenium项目,在谷歌上搜索了一些快速入门指南,如(2020年9月编写的)和(©2020),它们似乎都在使用WebDriver,例如,通过
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。你能给我看看你下载的东西和你的代码吗?