树莓派安装Firefox+Selenium+geckodriver
相关参考博客
【Selenium】Raspbian+Selenium+Firefox
firefox、geckodriver.exe、selenium-server-standlone版本对应及下载地址
树莓派如何安装火狐浏览器和geckodriver
geckodriver下载
前提:
最近需要在树莓派通过Java调用driver然后打开浏览器展示某些测试页面。
一开始通过Chromedriver结合Selenium调用Chrome,本地windows测试一切正常,部署至树莓派就会出现各种各样的问题,主要是driver与chrome和Selenium版本兼容问题导致不成功。
后来转向通过Selenium调用geckodriver控制firefox,成功展示相关页面。
1.首先树莓派安装Firefox
sudo apt-get install firefox-esr -y
通过以上命令进行firefox安装,安装成功后,可通过 whereis firefox 查看火狐浏览器安装路径.通常情况下在 /usr/bin/firefox 目录下。
查看火狐浏览器版本:
firefox -version
我的树莓派安装的版本为52,例如: Mozilla Firefox .*.*
另:也可通过ftp mozilla下载对应版本进行安装。
2.选择合适的geckodriver
可通过mozilla/geckodriver下载相关版本的 geckodriver 。
本地树莓派火狐浏览器版本为52,所以 geckodriver下载 v0.15.0 版本即可geckodriver-v0.15.0-arm7hf.tar.gz。
将下载后的包通过解压缩命令解压:
tar -zxvf geckodriver-v0.15.0-arm7hf.tar.gz
将解压后的文件 geckodriver 复制至 /usr/bin/ 目录下,并添加执行权限(+x)。
3.选择相应版本的Selenium
选择3.3.1版本的Selenium: selenium-server-standlone-3.3..jar .下载地址:http://selenium-release.storage.googleapis.com/index.html
一开始选择的是 selenium-java-3.3..jar ,调用过程异常,发现依赖进来的相关包的版本却是3.14.版本的,例如:selenium-firefox-3.14..jar ,修改为 selenium-server-standlone-3.3..jar 后正常。
4.测试
System.setProperty("webdriver.gecko.driver","/usr/bin/geckodriver");
FirefoxOptions firefoxOptions = new FirefoxOptions();
List<String> firefoxOp = new ArrayList<String>(10);
.....
firefoxOptions.addArguments(firefoxOp);
WebDriver firefoxDriver = new FirefoxDriver(firefoxOptions);
firefoxDriver.manage().window().maximize();
firefoxDriver.get("https://www.baidu.com");
运行代码,树莓派上能够正常打开火狐浏览器并转向相关测试页。
5.总结
- Firefox、selenium、geckodriver最难的是版本兼容,否则各种问题。
- Firefox、geckodriver、selenium-server-standlone版本对应如下:
selenium-server-standlone-3.3.1.jar http://selenium-release.storage.googleapis.com/index.html
geckodriver V.15.0 https://github.com/mozilla/geckodriver/releases
firefox 52.*.* http://ftp.mozilla.org/pub/firefox/releases/
6.注
在使用如下代码全屏浏览器时,会提示异常:firefoxDriver.manage().window().fullscreen();
在 geckodriver 是 0.15.0 版本会报错,提示: org.openqa.selenium.UnsupportedCommandException: unknown command: session/b368564bbe1863857d7ce10cc5f38e38/window/fullscreen.
此处是一个issue,该命令需要 0.17 版本以上,见原文Selenium 3 : Virtual - driver.manage().window().fullscreen() throwing org.openqa.selenium.UnsupportedCommandException.
This command is only supported in GeckoDriver since 0.17. Please try with latest GeckoDriver and, if it still doesn't work, provide a concise reproducible test case so that we could act on this issue.
树莓派安装Firefox+Selenium+geckodriver的更多相关文章
- 树莓派.安装Firefox浏览器
sudo apt-get install firefox-esr 要做全屏效果的话, 可以加装插件FF Fullscreen 插件地址: https://addons.mozilla.org/en-U ...
- 在Centos7上安装Python+Selenium+Firefox+Geckodriver
1.事先准备好Centos7的系统 Centos系统是CentOS Linux release 7.4.1708 (Core) 查看Centos内核版本命令cat /etc/centos-releas ...
- 在Centos7下安装Python+Selenium+Firefox学习环境
Selenium 一自动化测试工具.它支持 Chrome,Safari,Firefox 等主流界面式浏览器,如果你在这些浏览器里面安装一个 Selenium 的插件,那么便可以方便地实现Web界面的测 ...
- 在Centos7下docker配置自动化环境镜像(python3.7+selenium 3.11+firefox 62+geckodriver 0.21)
最近在学习Docker,准备做自动化测试代码集成的功能.如下文章的前提是已经安装好linux系统,且成功安装好Docker. 接下来我会按步骤一步一步的对自动化需要的一些环境进行安装,如果没有特别说明 ...
- 5--Selenium环境准备--firefox与geckodriver
selenium2时打开firefox浏览器是不需要安装firefoxdriver的,但是selenium3不支持向前支持火狐浏览器了,40以后版本的火狐,运行会出现问题. 1.下载geckodriv ...
- 自动化测试_Mac安装python+selenium
1.下载安装(参照下文) https://blog.csdn.net/kacylining/article/details/60587484 https://www.zhihu.com/questio ...
- chromedriver与chrome版本对应表,firefox、geckodriver
一. chromedriver与chrome对应表(记得就会更新): chromedriver版本 支持的Chrome版本 v2.36 v64-66 v2.35 v62-64 v2.34 v61-6 ...
- Firefox 与 geckodriver 版本兼容问题
打开 python shell,执行以下脚本: from selenium import webdriverdriver = webdriver.Firefox()driver.maximize_wi ...
- Ubuntu全新安装firefox最新版本
Ubuntu默认安装firefox,但是自带的软件仓库是不会随firefox更新的,我在使用中老是提示flash插件需要激活,提示中可选的解决方式有三种 1.更新flash插件,但是跳转到adobe的 ...
随机推荐
- js获取整个屏幕的尺寸
原文 首先获取屏幕宽度:window.screen.width; //整个屏幕的宽度. 然后获取屏幕高度:window.screen.height; //整个屏幕的高度. 获取可用工作区 ...
- 软工-js learning
使用教程JavaScript Standards Reference Guide-阮一峰 9.6-9.15学习进程: 1.导论 概述 JavaScript的历史 2.语法 基本语法 数据类型 数值 字 ...
- [spring]@Resource和@Autowired区别对比
@Resource和@Autowired都是做bean的注入时使用,其实@Resource并不是Spring的注解,它的包是javax.annotation.Resource,需要导入,但是Sprin ...
- three.js后期之自定义shader通道实现扫光效果
如果你还不知道如何在three.js中添加后期渲染通道,请先看一下官方的一个最简单的demo : github. 正如demo中所示的那样,我们的扫光效果,也是一个自定义的ShaderPass. 所以 ...
- HTMLCollection对象和NodeList对象
前言 首先我们先来看下面的demo,假如我们需要给所有的li字体变一个颜色. <!DOCTYPE html> <html lang="en"> <he ...
- 【Hadoop】MapReduce练习:分科目等级并按分区统计学生以及人数
需求 背景:学校的学生的是一个非常大的生成数据的集体,比如每次考试的成绩 现有一个班级的学生一个月的考试成绩数据. 科目 姓名 分数 需求:求出每门成绩中属于甲级的学生人数和总人数 ...
- something about gdb
1 gdb 基础命令 b(break): 添加断点 r(run): 重头开始运行程序 n(next): 下一步 c(continue): 程序继续运行,直到下一处断点,或者程序运行到结束 q ...
- office web apps安装部署,配置https,负载均衡(一)背景介绍
Office Web Apps,简称owa,是微软开发的在线预览office 文件服务.只要是做web开发技术的技术人员都知道,office文件预览,对于网站来说,绝对是一个难点,目前常见的预览off ...
- PTA --- L2-003 月饼
这道题挺简单的,测试点2没过的话,注意题目中是两个正整数,而其余是正数 [没注意到,,,踩坑了,,,] 题目地址: https://pintia.cn/problem-sets/99480504638 ...
- ASP.NET Core 入门笔记10,ASP.NET Core 中间件(Middleware)入门
一.前言 1.本教程主要内容 ASP.NET Core 中间件介绍 通过自定义 ASP.NET Core 中间件实现请求验签 2.本教程环境信息 软件/环境 说明 操作系统 Windows 10 SD ...