当前位置: 首页 > news >正文

selenium打开火狐浏览器

项目上需求为:甲方OA 系统是IE系统,需要从IE系统点个按钮打开火狐浏览器单点登录跳转到我们的系统 

前期解决方案为:打开浏览器就行了,然后就用的是打开本地浏览器,但是由于B/S架构,有别人远程访问我的ip来尝试时,打开的确是服务器的浏览器,也就是我自己的浏览器,然后又去摸索了一下RemoteWebDriver 的用法,然后尝试了几次就此作罢,本地测试都蛮正常,但是部署到小伙伴机器上时各种报错,最后技术方案有待讨论,为此记录一下前期的研究,记录打开火狐浏览器的一些代码和操作步骤

maven下载包

<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-java</artifactId>
    <version>4.2.2</version>
</dependency>

下载火狐浏览器:https://www.firefox.com.cn/installer-help/?channel=release&installer_lang=zh-CN

下载geckodriver:https://github.com/mozilla/geckodriver/releases

下载selenium-server-standalone:http://selenium-release.storage.googleapis.com/index.html​​​​​​

远程服务器命令含义:https://www.selenium.dev/documentation/legacy/selenium_2/firefox_driver/

其实最后我本地运行的是-Dwebdriver.gecko.driver,试过-Dwebdriver.firefox.bin 是打不开浏览器的

最后主要用到的包就这两个geckodriver 和 selenium-server-standalone-3.9.1

1、本地打开 火狐浏览器 FirefoxDriver 具体代码

geckoDriver:是下载的geckodriver 地址
loginUrl:浏览器打开地址

 System.setProperty("webdriver.gecko.driver",geckoDriver);
            WebDriver driver = new FirefoxDriver();
            driver.manage().window().maximize();
            driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));
            driver.get(loginUrl);

2、使用远程的方式打开浏览器

2.1首先需要把selenium-server-standalone部署起来,需要有jdk的环境,打开cmd 输入下面命令行,就可以打开服务器了,默认端口是4444 ,

java  -Dwebdriver.gecko.driver=D:\otherTools\firebox\geckodriver.exe   -jar D:\otherTools\firebox\selenium-server-standalone-3.9.1.jar

打开http://localhost:4444/

看到下面的界面就部署好了,现在就需要测试工具是否可以打开浏览器,因为绑定的是火狐,点击页面上的console

如果失败可能会这样

可以打开控制台查看,我之前由于命令行没有配置geckodriver 的地址会发生

这样的命令java  -jar D:\otherTools\firebox\selenium-server-standalone-3.9.1.jar会产生错误

一般看到Driver info unknown的错误,就在命令行加上geckodriver的地址就可以了

测试代码

FirefoxOptions browserOptions = new FirefoxOptions();
            DesiredCapabilities desiredCapabilities = new DesiredCapabilities();
            desiredCapabilities.setBrowserName("firefox");
            desiredCapabilities.setPlatform(Platform.WINDOWS);
            //ip为远程服务器的ip地址
            WebDriver driver = new RemoteWebDriver(new URL("http://" + ip + ":4444/wd/hub/"), browserOptions);
            driver.manage().window().maximize();
            driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));
            driver.get(loginUrl);

然后再本地也能够将浏览器打开,到了这一步让小伙伴也下载上面的包,然后也执行一样的命令,发现会产生一堆其他的错误: Expected browser binary location, but unable to find binary in default location, no 'moz:firefoxOptions.binary' capability provided 

最后就不使用这种方案了,最后大家要是遇到一些比较好的实现方案可以在评论区交流

相关文章:

  • 预约按摩app软件开发定制足浴SPA上们服务小程序
  • unity动画_UI动画案例 c#
  • 数仓建设(一)
  • Redis 主从复制,哨兵,集群——(1)主从复制篇
  • 多数元素[简单]
  • Rust初接触
  • 微服务拆分的思考
  • python的搜索引擎系统设计与实现 计算机竞赛
  • 【全栈开发指南】打包sentinel-dashboard镜像推送到Docker Hub镜像仓库
  • 问题记录1 json解析问题
  • 论文阅读:CenterFormer: Center-based Transformer for 3D Object Detection
  • 纯css手写switch
  • 【LeetCode刷题(数据结构)】:给定一个链表 每个节点包含一个额外增加的随机指针 该指针可以指向链表中的任何节点或空节点 要求返回这个链表的深度拷贝
  • 全流量安全分析发现内部系统外联异常
  • python使用dataset快速使用SQLite
  • 这应该是关于回归模型最全的总结了(附原理+代码)
  • mac jdk的环境变量路径,到底在哪里?
  • 智慧党建小程序源码系统+在线答题考试二合一 带完整的搭建教程
  • 基于堆优化优化的BP神经网络(分类应用) - 附代码
  • WebGL 世界坐标系和本地坐标系
  • 综合治理食品添加剂滥用问题,国务院食安办等六部门联合出手
  • 外交部:中方和欧洲议会决定同步全面取消对相互交往的限制
  • 有乘客被高铁车门夹住?铁路回应:系突感不适下车,未受伤,列车正点发车
  • “五一”假期国内出游3.14亿人次,同比增长6.4%
  • 什么让翻拍“语文”成为短视频新风潮
  • “高校领域突出问题系统整治”已启动,聚焦招生、基建、师德等重点