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
最后就不使用这种方案了,最后大家要是遇到一些比较好的实现方案可以在评论区交流
相关文章:
selenium打开火狐浏览器
项目上需求为:甲方OA 系统是IE系统,需要从IE系统点个按钮打开火狐浏览器单点登录跳转到我们的系统 前期解决方案为:打开浏览器就行了,然后就用的是打开本地浏览器,但是由于B/S架构,有别人远程访问我的ip来…...
多标签分类论文笔记 | ML-Decoder: Scalable and Versatile Classification Head
个人论文精读笔记,主要是翻译心得,欢迎旁观,如果有兴趣可以在评论区留言,我们一起探讨。 Paper: https://arxiv.org/pdf/2111.12933.pdf Code: https://github.com/Alibaba-MIIL/ML_Decoder 文章目录 0. 摘要1. 介绍2. 方法2.1 Ba…...
修改http_charfinder.py使能在python311环境中运行
需要修改两个函数,第一个是init函数,修改如下: async def init(loop, address, port): # <1> # app web.Application(looploop) # <2> # app.router.add_route(GET, /, home) # <3> app web.Application(…...
蓝桥杯(跳跃 C++)
思路: 1、根据题目很容易知道可以用深度搜索、广度搜索、动态规划的思想解题。 2、这里利用深度搜素,由题目可知,可以往九个方向走。 3、这里的判断边界就是走到终点。 #include<iostream> using namespace std; int max1 0; int …...
08 | Jackson 注解在实体里面如何应用?常见的死循环问题如何解决?
我们用 Spring Boot 里面默认集成的 fasterxml.jackson 加以说明,这看似和 JPA 没什么关系,但是一旦我们和 Entity 一起使用的时候,就会遇到一些问题,特别是新手同学,我们这一课时详细介绍一下用法。先来跟着我了解一下…...
JavaScript—获取当前时间 并转化为yyyy-MM-dd hh:mm:ss格式
JavaScript—获取当前时间 并转化为yyyy-MM-dd hh:mm:ss格式 每次项目都需要用到时间戳格式,可以封装成一个方法 下次直接CV过去 const timestampPadStart=(str)=>{str=String(str);return str.padStart(2,0)...
OpenHarmony创新赛丨报名倒计时,超强秘籍带你直通大奖!
OpenHarmony创新赛报名倒计时开始啦! 设于开放原子全球开源大赛下的OpenHarmony创新赛,目前正在如火如荼地进行赛事招募中!这次大赛围绕创新应用、商显行业、金融行业三大赛题,邀请来自企业、个人、高校师生等各界群体的优秀开发者…...
Linux高性能服务器编程 学习笔记 第十四章 进程池和线程池
动态创建子进程或子线程的缺点: 1.动态创建进程或线程比较耗时,这将导致较慢的客户响应。 2.动态创建的子进程或子线程通常只用来为一个客户服务(除非我们做特殊处理),这将导致系统上产生大量的进程或线程,…...
微信小程序/vue3/uview-plus form兜底校验
效果图 代码 <template><u-form :model"form" ref"formRole" :rules"rules"><u-form-item prop"nickname"><u-input v-model"form.nickname" placeholder"姓名" border"none" /&…...
Photoshop 2024正式发布!内置最新PS AI,创意填充等功能无限制使用!
PS正式版目前更新到了2024,版本为25.0。 安装教程 1、下载得到安装包后,先解压。鼠标右键,【解压到当前文件夹】 2、双击 Set-up 开始安装 3、这里可以更改安装位置。如果C盘空间不够大,可以把它安装到C盘以外。更改好后&#x…...
芯片学习记录TLP184
TLP184 芯片介绍 TLP184是一款光耦隔离器,它的主要特点包括:高电压耐受能力、高传输速度、高共模隔离能力、低功耗等。它可以用于工业自动化、通信设备、家用电器等领域的电气隔离应用。由一个光电晶体管组成,光学耦合到两个红外发射二极管…...
C++ 重载运算符和重载函数
前言 C 允许在同一作用域中的某个函数和运算符指定多个定义,分别称为函数重载和运算符重载。重载声明是指一个与之前已经在该作用域内声明过的函数或方法具有相同名称的声明,但是它们的参数列表和定义(实现)不相同。 当您调用一个…...
Linux:mongodb数据库基础操作(3.4版本)
安装 3.*版本和4.*版本安装都是一样的 Linux:mongodb数据库源码包安装(4.4.25版本)_鲍海超-GNUBHCkalitarro的博客-CSDN博客https://blog.csdn.net/w14768855/article/details/133826626?spm1001.2014.3001.5501 mysql和mongodb对比 登录…...
nginx实现灰度上线(InsCode AI 创作助手)
要基于Nginx实现灰度上线,有以下三种方法: 权重分发:使用Nginx的upstream模块来设置不同服务器的权重。将一部分请求分发给新版本服务器,另一部分请求分发给旧版本服务器。这可以通过以下方式实现: http {upstream bac…...
记:apifox 返回 invalid header token 的问题排查思路
背景: 某接口服务使用 springboot 2.x 开发, RestController 、ReqeustBody 在本地(localhost)调用的时候正常、chrome (.cn域名访问)浏览器访问正常。 换成 apifox (.cn域名访问)、postman (.cn域名访问)调用异常返回:invalid header t…...
【00】神经网络之初始化参数
问题描述 #随机初始化权重 w12 np.random.randn(100, 784)/np.sqrt(784) 为什么除以28 回答 这里的代码是初始化一个深度学习模型中的权重矩阵w12。权重矩阵的形状是(100, 784),这是一个从784个输入节点到100个隐藏节点的全连接层。 除以np.sqrt(784)是权重初始…...
代码随想录Day20 回溯算法 LeetCode77 组合问题
以下内容更详细解释来自于:代码随想录 (programmercarl.com) 1.回溯算法理论基础 回溯法也叫回溯搜索法,是搜索法的一种,我们之前在二叉树中也经常使用到回溯来解决问题,其实有递归就有回溯,有的时候回溯隐藏在递归之下,我们不容易发觉,今天我们来详细介绍一下什么是回溯,它能…...
免费获取天气预报的API接口(Json格式)
免费获取天气预报的API接口(Json格式) 1、接口地址2、城市代码 1、接口地址 当需要获取某个城市天气数据json时候,需要传入一个城市代码编码作为入参,地址: http://t.weather.itboy.net/api/weather/city/xxxxx &…...
安卓程序执行入口
Android程序执行入口 Android应用程序的执行入口是在一个特定的 Java 类中,通常是 MainActivity 或 SplashActivity,具体取决于应用的设计和结构。 Android应用程序的执行入口通常通过以下方式进行定义: 在 AndroidManifest.xml 文件中&am…...
消息队列(中间件)
通信协议: 为了实现客户端和服务器之间的通信来完成的逻辑,基于TCP实现的自定义应用层协议。通过这个协议,完成客户端–服务器远程方法调用。 序列化/反序列化: 通过网络传输对象把对象存储到硬盘上。 序列化:把对象转化为二进制的…...
Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件
今天呢,博主的学习进度也是步入了Java Mybatis 框架,目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学,希望能对大家有所帮助,也特别欢迎大家指点不足之处,小生很乐意接受正确的建议&…...
基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容
基于 UniApp + WebSocket实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...
Element Plus 表单(el-form)中关于正整数输入的校验规则
目录 1 单个正整数输入1.1 模板1.2 校验规则 2 两个正整数输入(联动)2.1 模板2.2 校验规则2.3 CSS 1 单个正整数输入 1.1 模板 <el-formref"formRef":model"formData":rules"formRules"label-width"150px"…...
关键领域软件测试的突围之路:如何破解安全与效率的平衡难题
在数字化浪潮席卷全球的今天,软件系统已成为国家关键领域的核心战斗力。不同于普通商业软件,这些承载着国家安全使命的软件系统面临着前所未有的质量挑战——如何在确保绝对安全的前提下,实现高效测试与快速迭代?这一命题正考验着…...
Golang——9、反射和文件操作
反射和文件操作 1、反射1.1、reflect.TypeOf()获取任意值的类型对象1.2、reflect.ValueOf()1.3、结构体反射 2、文件操作2.1、os.Open()打开文件2.2、方式一:使用Read()读取文件2.3、方式二:bufio读取文件2.4、方式三:os.ReadFile读取2.5、写…...
Caliper 配置文件解析:fisco-bcos.json
config.yaml 文件 config.yaml 是 Caliper 的主配置文件,通常包含以下内容: test:name: fisco-bcos-test # 测试名称description: Performance test of FISCO-BCOS # 测试描述workers:type: local # 工作进程类型number: 5 # 工作进程数量monitor:type: - docker- pro…...
Rust 开发环境搭建
环境搭建 1、开发工具RustRover 或者vs code 2、Cygwin64 安装 https://cygwin.com/install.html 在工具终端执行: rustup toolchain install stable-x86_64-pc-windows-gnu rustup default stable-x86_64-pc-windows-gnu 2、Hello World fn main() { println…...
tomcat指定使用的jdk版本
说明 有时候需要对tomcat配置指定的jdk版本号,此时,我们可以通过以下方式进行配置 设置方式 找到tomcat的bin目录中的setclasspath.bat。如果是linux系统则是setclasspath.sh set JAVA_HOMEC:\Program Files\Java\jdk8 set JRE_HOMEC:\Program Files…...
Axure 下拉框联动
实现选省、选完省之后选对应省份下的市区...
Qt的学习(一)
1.什么是Qt Qt特指用来进行桌面应用开发(电脑上写的程序)涉及到的一套技术Qt无法开发网页前端,也不能开发移动应用。 客户端开发的重要任务:编写和用户交互的界面。一般来说和用户交互的界面,有两种典型风格&…...
