关于Selenium WebDriver的geckodriver

2023-10-03 21:10

本文主要是介绍关于Selenium WebDriver的geckodriver,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

这篇关于关于Selenium WebDriver的geckodriver的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/726

相关文章

如何使用Selenium捕获控制台日志

Selenium是一个流行的开源工具,用于自动化Web浏览器。其中一个关键功能是能够与浏览器的开发者控制台交互。本文将向您展示如何在Selenium中使用Java获取控制台日志。这些日志对于调试和解决Selenium脚本的问题非常有用。 如何查看任何网页的控制台日志 首先,打开浏览器的开发者控制台。在大多数浏览器中,您可以通过右键点击页面并选择“检查”来做到这一点。我们将在我们的测试网站——h

selenium的webdriver三种等待方式(显式等待WebDriverWait+implicitly_wait隐式等待+sleep强制等待)

隐式等待是等页面加载,不是等元素!!! 1、显式等待  一个显式等待是你定义的一段代码,用于等待某个条件发生然后再继续执行后续代码。显式等待是等元素加载!!! from selenium import webdriverfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.support.ui import

selenium webdriver实现的原理及流程

用Selenium实现自动化,主要需要三个东西: 1.自动化测试代码:自动化测试代码发送请求给浏览器的驱动(比如火狐驱动、谷歌驱动) 2.浏览器驱动:它来解析这些自动化测试的代码,解析后把它们发送给浏览器 3.浏览器:执行浏览器驱动发来的指令,并最终完成工程师想要的操作。 测试代码中包含了各种期望的对浏览器界面的操作,例如点击。测试代码通过给Webdriver发送指令,让Webdriv

第4章-02-用WebDriver驱动浏览器页面截图

🏆作者简介,黑夜开发者,CSDN领军人物,全栈领域优质创作者✌,CSDN博客专家,阿里云社区专家博主,2023年CSDN全站百大博主。 🏆数年电商行业从业经验,历任核心研发工程师,项目技术负责人。 🏆本文已收录于专栏:Web爬虫入门与实战精讲,后续完整更新内容如下。 文章目录 🚀一、功能实现🔎1.1 保存截图为PNG文件🔎1.2 获取截图作为PNG编码的字节流 �

Selenium 实现图片验证码识别

前言 在测试过程中,有的时候登录需要输入图片验证码。这时候使用Selenium进行自动化测试,怎么做图片验证码识别?本篇内容主要介绍使用Selenium、BufferedImage、Tesseract进行图片 验证码识别。 环境准备 jdk:1.8 tessdata:文章末尾附下载地址 安装Tesseract 我本地是ubuntu系统 sudo apt install tesserac

【webdriver 识别】webdriver 识别绕过原理与实战

目标网站:http://www.porters.vip/features/webdriver.html 获取 点击查看详情里面的内容 我们先用selinum 试试,直接定位按钮,渲染出来。 # -*- coding: utf-8 -*-from selenium import webdriverfrom selenium.webdriver.chrome.options import

【爬虫渲染神器】selenium 和pyppeteer 的动态渲染ajax反爬虫

许多网页是动态加载的网页,其中不乏使用了ajax异步技术,那么我们有没有一种渲染工具,直接省略分析过程,模拟浏览器渲染的操作呢,获取到我们想要的内容。当然有,下面我们介绍两种渲染工具的实战使用。 目标网站: http://www.porters.vip/verify/sign/ 点击参看详情页的里面内容。 前一篇文章,我们介绍了,js逆向分析两种方法JS逆向–签名验证反爬虫】sign签名验证

【爬虫神器 pyppeteer】比 selenium 更高效的爬虫利器--pyppeteer

Puppeteer 是 Google 基于 Node.js 开发的工具,调用 Chrome 的 API,通过 JavaScript 代码来操纵 Chrome 完成一些操作,用于网络爬虫、Web 程序自动测试等。pyppeteer 使用了 Python 异步协程库 asyncio,可整合 Scrapy 进行分布式爬虫。要注意的是它执行python3.6+以后版本使用,下面我们一起来了解下如何使用。

python打包exe如何把浏览器和geckodriver一起打包进去

一、目录结构:main.py同级目录下有一个浏览器包 二、调用浏览器的py修改:根据开发环境和打包环境选择浏览器和webdriver的路径 if getattr(sys, 'frozen', False):# 如果是打包的应用程序application_path = sys._MEIPASSelse:# 如果是开发环境application_path = os.path.dirna

CentOS7 安装Selenium+chrome+chromedriver

在无界面的CentOS7上安装Selenium+Chrome,并使用facebook的php-webdriver测试 系统环境 Operating System: CentOS Linux 7 (Core) Kernel: Linux 3.10.0-693.17.1.el7.x86_64 Architecture: x86-64 安装 chrome 使用下面的命令,在root用户下就可以安装最新