关于Selenium WebDriver的geckodriver

2023-11-13

Selenium作为网站UI测试利器,为黑盒功能测试人员所喜爱。

下载Selenium的最新版本地址:http://selenium-release.storage.googleapis.com/index.html

友情提示:如果一直下载不了,可能是浏览器与下载工具的没有兼容,或者没安装下载工具的插件。用IE浏览器打开,可以完整下载。如果没有这个问题就忽略。

时至今日,Selenium已经到了3.3.1版了(2017年3月7日)。

自从Selenium3发布以来,火狐浏览器(Selenium支持火狐的技术最为成熟,因为可以方便获取从而控制网页信息,也是测试人员最喜欢用的浏览器之一)成为了一个普遍的问题。

因为Selenium3不支持向前支持火狐浏览器了,40以后版本的火狐,运行会出现问题。

例如Java代码:(实现打开浏览器,输入"WebDriver",搜索后,关闭浏览器)

package com.selenium.test;
 
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
 
public class seleniumHello {
 
    public static void main(String[] args) {
        //如果火狐浏览器没有默认安装在C盘,需要自己确定其路径
        System.setProperty("webdriver.firefox.bin", "D:/Program Files/Mozilla Firefox/firefox.exe"); 
        //定义驱动对象为 FirefoxDriver 对象
        WebDriver driver = new FirefoxDriver();
        //打开的网址
        driver.get("http://www.baidu.com/");
 
        //定位输入框元素
        WebElement txtbox = driver.findElement(By.name("wd"));
        //在输入框输入文本
        txtbox.sendKeys("WebDriver");
        //定位按钮元素
        WebElement btn = driver.findElement(By.id("su"));
        //点击按钮
        btn.click();
 
        //关闭驱动
        driver.close();
    }
}


友情提示:如果运行后,你发现只打开了浏览器,而没有打开网址。那么多数是版本问题:Selenium版本为3,或者火狐版本太高,一般Selenium2支持46以下的。

目前火狐版本是:50

 

现在运行会发现问题,在console中出现的提示是:
Exception in thread "main" java.lang.IllegalStateException: The path to the driver executable must be set by the webdriver.gecko.driver system property; for more information, see https://github.com/mozilla/geckodriver. The latest version can be downloaded from https://github.com/mozilla/geckodriver/releases

这就是要求要安装geckodriver了(支持3.3.1)。

之前版本的Selenium客户端,遵循:W3C WebDriver specification  链接:https://w3c.github.io/webdriver/webdriver-spec.html

解决的办法就是:

1、到官网上下载与系统相应的最新版本geckodriver:https://github.com/mozilla/geckodriver/releases

从2015年4月9日的wires V0.1.0版,直到2017年3月8日的最新V0.15.0,走过了15次的版本更新。

2、解压后,将文件存放在自己设置的一个目录里。

例如,我下载的是windows版本,将其放在D:\selenium目录下,文件名为:geckodriver.exe

3、将代码改为如下:

package com.selenium.test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
 
 
public class seleniumHello {
    
    public static void main(String[] args){
        System.setProperty("webdriver.gecko.driver", "D:\\selenium\\geckodriver.exe");
        WebDriver driver=new FirefoxDriver();
        driver.get("http://www.baidu.com/");
        driver.manage().window().maximize();
        WebElement txtbox=driver.findElement(By.name("wd"));
        txtbox.sendKeys("WebDriver");
        WebElement btn=driver.findElement(By.id("su"));
        btn.click();
        driver.close();
    }
}

执行后,在控制台显示:

浏览器正常启动,并执行了搜索。

 

什么是Gecko和Gecko Driver

Gecko是由Mocilla开发的许多应用程序中的Web浏览器引擎。

Gecko则是一种介于你的Selenium的测试代码与Firfox浏览器之间的链接,是使用W3C 

WebDriver兼容客户端的一种代理与Gecko核心浏览器交互。

火狐浏览器用可执行程序GeckoDriver.exe的方式执行WebDriver协议。所有的测试脚本都通过GeckoDriver来执行。

其他浏览器:Chrome

平时用的四款浏览器:Chrome、360、IE和火狐。

平时使用的话从稳定、速度实用的角度,推荐Chrome,打开谷歌也更稳定和顺畅。

这里也顺便提一下,Selenium webDriver 如何连上Chrome

Chrome浏览器要下载一个ChromeDriver.exe

下载地址:https://sites.google.com/a/chromium.org/chromedriver/,目前最新版本是2.29

 

 

代码写为如下:

package com.selenium.test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
 
public class seleniumHello {
    
    public static void main(String[] args){
        System.setProperty("webdriver.chrome.driver", "D:\\selenium\\ChromeDriver.exe");
        WebDriver driver=new ChromeDriver();
        driver.get("http://www.baidu.com/");
        driver.manage().window().maximize();
        WebElement txtbox=driver.findElement(By.name("wd"));
        txtbox.sendKeys("WebDriver");
        WebElement btn=driver.findElement(By.id("su"));
        btn.click();
        try {
            Thread.sleep(5000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        driver.close();
    }
}

就可以正常打开Chrome并进行搜索了。

————————————————
版权声明:本文为CSDN博主「金盒」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/jinhe123/article/details/69946234

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

关于Selenium WebDriver的geckodriver 的相关文章

随机推荐

  • 更改计算机bios密码怎么办,计算机BIOS通用密码的修改

    电脑信息的保密一直是一个重要的话题 众所周知 在BIOS设置菜单中 有两个密码设置栏目 Supervisor Password 超级用户密码 和User Password 一般用户密码 可以说是电脑资料保密的第一道防线 这两组密码搭配BIO
  • 2023届秋招,我重新认清了自己

    仅记录个人经历 充满主观感受 甚至纯属虚构 仅供参考 杠就是你对 本想毕业再写 但是考虑到等毕业了 24秋招的提前批就快开始了 大概就来不及了 正好现在有点时间 陆陆续续的写了出来 个人情况 学历 苏北二本 加南京某211 现在二本三本合并
  • 【转载】PMOS,NMOS

    NMOS保证截止 发生在G电位小于等于S PMOS保证截止 发生在G电位大于等于S 寄生二极管是因为基底与Source连接形成的PN结
  • JQuery获取多个name相同select/input框的value值

    JavaWeb jsp页面 使用c forEach 循环多个select下拉框 name相同获取被选中的值 jsp
  • 虚拟机连接不上网络,解决办法

    虚拟机连接不上网络解决思路 简单的介绍了VM虚拟机常用的三种网络连接方式 一般用NAT方式虚拟机就很容易上网的 所以一般没有特殊要求推荐用NAT方式 1 桥接 就是把虚拟机通过VMnet0桥接到主机的本地连接 现在虚拟机是通过VMnet0与
  • NestedScrollView RecycleView 嵌套 滑动冲突

    NestedScrollView RecycleView 嵌套 滑动冲突 场景描述 效果演示 实现思路 问题和优化 优化 参考文档 场景描述 使用NestedScrollView 内嵌RecycleView时 当用户上滑时 NestedSc
  • 扫雷(初阶)

    细节决定成败 目录 打印菜单 创建棋盘并打印 埋雷 排雷 判断输赢 扫雷游戏规则 当棋盘内除去有地雷的格子 全被排除那么就会胜利 反之当玩家排到一颗雷就会被炸西 根据三子棋的写法 扫雷程序也是需要分为几个文件 声明函数的文件 定义函数的文件
  • Samba+ldap认证(LDAP搭建)

    Samba ldap认证 题目 LDAP 一 关闭Selinux跟防火墙 二 安装ldap 三 设置slapd密码 四 修改配置文件 五 启动服务ldap服务并导入基本Schema 六 导入基础数据库和用户组 七 导入用户 八 修改配置文件
  • Qt的内存管理机制

    当我们在使用Qt时不可避免得需要接触到内存的分配和使用 即使是在使用Python Golang这种带有自动垃圾回收器 GC 的语言时我们仍然需要对Qt的内存管理机制有所了解 以更加清楚的认识Qt对象的生命周期并在适当的时机加以控制或者避免进
  • go语言连接mysql数据库,并验证连通性

    go语言连接mysql数据库 并验证连通性 package main import database sql sql Open加载包 github com go sql driver mysql 没用到包里的内容但是需要加载一下这个包 lo
  • 2023年MathorCup 高校数学建模挑战赛-A 题 量子计算机在信用评分卡组合优化中的应用-思路详解(模型代码答案)

    一 题目简析 运筹优化类题目 不同于目标规划 该题限制了必须使用量子退火算法QUBO来进行建模与求解 本身题目并不难 但是该模型较生僻 给出的参考文献需要耗费大量时间去钻研 建议擅长运筹类题目且建模能力强的队伍选择 二 逐问思路分享 问题
  • 连续子序列最大最小值差额最大化

    本文为最近做过的一道编程笔试题 代码实现方式多种多样 此处本人提供的代码可以获得正确解 仅供大家参考 目录 一 题目描述 二 实现代码程序 三 测试结果截图 一 题目描述 题目描述 Mike在一家律师事务所工作 他的老板Harvey分配给他
  • Git vscode-git ssh新建和验证

    在push本地仓库遇到的SSH公钥认证问题 Warning Permanently added github com xx xxx xxx xxx ECDSA to the list of known hosts git github co
  • 牛客网基础语法1~10题

    牛客网基础语法1 10题 前言 今天是咱们第一期刷牛客网上的题目 目标 掌握基础编程 打牢基础知识 有一定的编程思想 鸡汤 读不在三更五鼓 功只怕一曝十寒 先干为敬 大家随意 第一题 include
  • tensorflow报错raise RuntimeError('The Session graph is empty.  Add operations to the ' RuntimeError:

    tensorflow报错raise RuntimeError The Session graph is empty Add operations to the RuntimeError The Session graph is empty
  • 3.5安装ideay、快捷键

    注册账号 网址 https www jetbrains com 绑定激活码 网址 https www jetbrains com store redeem Alt Enter 快速补全 Ctrl shift O 清理导包 去除无用的包 Ct
  • Android Alarm闹钟API使用心得

    前言 有什么办法可以在不打开App的时候 也能够触发一些操作呢 比如说发送通知 解决这个需求的办法有很多种选择 比如说官方推荐的WorkManager API 可以在后台执行一次性 耗时 定时的任务 但WorkManager是严格遵循电池优
  • MySQL配置了主从,重启步骤

    停应用 gt 停数据库 先备后主 gt 启数据库 先主后备 gt 启应用 关闭MySQL从库 在从库操作 a 先查看当前的主从同步状态 show slave status G 看是否双yes b 执行stop slave c 停止从库服务
  • CUDA与已有的VS项目结合

    先新建一个简单的控制台应用程序 项目名称为Test00301 如下图所示 然后在项目中新建一个名为Test01 cu文件 如下图所示 然后在解决方案资源管理器中选择该项目并点击右键 在弹出的菜单中选择 生成自定义 如下图所示 在弹出的 Vi
  • 关于Selenium WebDriver的geckodriver

    Selenium作为网站UI测试利器 为黑盒功能测试人员所喜爱 下载Selenium的最新版本地址 http selenium release storage googleapis com index html 友情提示 如果一直下载不了