当前位置: 首页 > 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 

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

相关文章:

selenium打开火狐浏览器

项目上需求为&#xff1a;甲方OA 系统是IE系统&#xff0c;需要从IE系统点个按钮打开火狐浏览器单点登录跳转到我们的系统 前期解决方案为&#xff1a;打开浏览器就行了&#xff0c;然后就用的是打开本地浏览器&#xff0c;但是由于B/S架构&#xff0c;有别人远程访问我的ip来…...

多标签分类论文笔记 | ML-Decoder: Scalable and Versatile Classification Head

个人论文精读笔记&#xff0c;主要是翻译心得&#xff0c;欢迎旁观&#xff0c;如果有兴趣可以在评论区留言&#xff0c;我们一起探讨。 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环境中运行

需要修改两个函数&#xff0c;第一个是init函数&#xff0c;修改如下&#xff1a; async def init(loop, address, port): # <1> # app web.Application(looploop) # <2> # app.router.add_route(GET, /, home) # <3> app web.Application(…...

蓝桥杯(跳跃 C++)

思路&#xff1a; 1、根据题目很容易知道可以用深度搜索、广度搜索、动态规划的思想解题。 2、这里利用深度搜素&#xff0c;由题目可知&#xff0c;可以往九个方向走。 3、这里的判断边界就是走到终点。 #include<iostream> using namespace std; int max1 0; int …...

08 | Jackson 注解在实体里面如何应用?常见的死循环问题如何解决?

我们用 Spring Boot 里面默认集成的 fasterxml.jackson 加以说明&#xff0c;这看似和 JPA 没什么关系&#xff0c;但是一旦我们和 Entity 一起使用的时候&#xff0c;就会遇到一些问题&#xff0c;特别是新手同学&#xff0c;我们这一课时详细介绍一下用法。先来跟着我了解一下…...

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创新赛报名倒计时开始啦&#xff01; 设于开放原子全球开源大赛下的OpenHarmony创新赛&#xff0c;目前正在如火如荼地进行赛事招募中&#xff01;这次大赛围绕创新应用、商显行业、金融行业三大赛题&#xff0c;邀请来自企业、个人、高校师生等各界群体的优秀开发者…...

Linux高性能服务器编程 学习笔记 第十四章 进程池和线程池

动态创建子进程或子线程的缺点&#xff1a; 1.动态创建进程或线程比较耗时&#xff0c;这将导致较慢的客户响应。 2.动态创建的子进程或子线程通常只用来为一个客户服务&#xff08;除非我们做特殊处理&#xff09;&#xff0c;这将导致系统上产生大量的进程或线程&#xff0c…...

微信小程序/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&#xff0c;版本为25.0。 安装教程 1、下载得到安装包后&#xff0c;先解压。鼠标右键&#xff0c;【解压到当前文件夹】 2、双击 Set-up 开始安装 3、这里可以更改安装位置。如果C盘空间不够大&#xff0c;可以把它安装到C盘以外。更改好后&#x…...

芯片学习记录TLP184

TLP184 芯片介绍 TLP184是一款光耦隔离器&#xff0c;它的主要特点包括&#xff1a;高电压耐受能力、高传输速度、高共模隔离能力、低功耗等。它可以用于工业自动化、通信设备、家用电器等领域的电气隔离应用。由一个光电晶体管组成&#xff0c;光学耦合到两个红外发射二极管…...

C++ 重载运算符和重载函数

前言 C 允许在同一作用域中的某个函数和运算符指定多个定义&#xff0c;分别称为函数重载和运算符重载。重载声明是指一个与之前已经在该作用域内声明过的函数或方法具有相同名称的声明&#xff0c;但是它们的参数列表和定义&#xff08;实现&#xff09;不相同。 当您调用一个…...

Linux:mongodb数据库基础操作(3.4版本)

安装 3.*版本和4.*版本安装都是一样的 Linux&#xff1a;mongodb数据库源码包安装&#xff08;4.4.25版本&#xff09;_鲍海超-GNUBHCkalitarro的博客-CSDN博客https://blog.csdn.net/w14768855/article/details/133826626?spm1001.2014.3001.5501 mysql和mongodb对比 登录…...

nginx实现灰度上线(InsCode AI 创作助手)

要基于Nginx实现灰度上线&#xff0c;有以下三种方法&#xff1a; 权重分发&#xff1a;使用Nginx的upstream模块来设置不同服务器的权重。将一部分请求分发给新版本服务器&#xff0c;另一部分请求分发给旧版本服务器。这可以通过以下方式实现&#xff1a; http {upstream bac…...

记:apifox 返回 invalid header token 的问题排查思路

背景&#xff1a; 某接口服务使用 springboot 2.x 开发&#xff0c; RestController 、ReqeustBody 在本地(localhost)调用的时候正常、chrome (.cn域名访问)浏览器访问正常。 换成 apifox (.cn域名访问)、postman (.cn域名访问)调用异常返回&#xff1a;invalid header t…...

【00】神经网络之初始化参数

问题描述 #随机初始化权重 w12 np.random.randn(100, 784)/np.sqrt(784) 为什么除以28 回答 这里的代码是初始化一个深度学习模型中的权重矩阵w12。权重矩阵的形状是(100, 784)&#xff0c;这是一个从784个输入节点到100个隐藏节点的全连接层。 除以np.sqrt(784)是权重初始…...

代码随想录Day20 回溯算法 LeetCode77 组合问题

以下内容更详细解释来自于:代码随想录 (programmercarl.com) 1.回溯算法理论基础 回溯法也叫回溯搜索法,是搜索法的一种,我们之前在二叉树中也经常使用到回溯来解决问题,其实有递归就有回溯,有的时候回溯隐藏在递归之下,我们不容易发觉,今天我们来详细介绍一下什么是回溯,它能…...

免费获取天气预报的API接口(Json格式)

免费获取天气预报的API接口&#xff08;Json格式&#xff09; 1、接口地址2、城市代码 1、接口地址 当需要获取某个城市天气数据json时候&#xff0c;需要传入一个城市代码编码作为入参&#xff0c;地址&#xff1a; http://t.weather.itboy.net/api/weather/city/xxxxx &…...

安卓程序执行入口

Android程序执行入口 Android应用程序的执行入口是在一个特定的 Java 类中&#xff0c;通常是 MainActivity 或 SplashActivity&#xff0c;具体取决于应用的设计和结构。 Android应用程序的执行入口通常通过以下方式进行定义&#xff1a; 在 AndroidManifest.xml 文件中&am…...

消息队列(中间件)

通信协议&#xff1a; 为了实现客户端和服务器之间的通信来完成的逻辑&#xff0c;基于TCP实现的自定义应用层协议。通过这个协议,完成客户端–服务器远程方法调用。 序列化/反序列化&#xff1a; 通过网络传输对象把对象存储到硬盘上。 序列化&#xff1a;把对象转化为二进制的…...

Java|学习|异常

1.异常 1.1 异常 1.1.1 概述 异常&#xff1a;就是程序出现了不正常的情况。 Error&#xff1a;严重问题&#xff0c;不需要处理。 Exception&#xff1a;称为异常类&#xff0c;它表示程序本身可以处理的问题。 RuntimeException&#xff1a;在编译器不检查&#xff0c;出…...

nextjs项目修改启动端口号,以及开发启动后自动打开浏览器

next版本&#xff1a;13.5.4 一、修改端口 在package.json文件当中修改启动命令 "scripts": {"dev": "next dev -p 3100","build": "next build","start": "next start","lint": "ne…...

微服务架构 | 超时管理

INDEX LSA 级别与全年停机时间速查表LSA 级别实战TP 性能超时时间设计原则 LSA 级别与全年停机时间速查表 计算公式&#xff1a;60 * 60 * 24 * 365 * (1-LSA) 31,536,000‬ * (1-LSA) 系统级别LSA级别全年停机时间099.999%5分钟099.99%52分钟199.9%8.8小时299%3.65 天 LSA…...

Qt 样式表大全整理

【QT】史上最全最详细的QSS样式表用法及用例说明_qt样式表使用大全_半醒半醉日复日&#xff0c;花落花开年复年的博客-CSDN博客 QT样式表的使用_qt 设置按下 release hover 按钮样式表_create_right的博客-CSDN博客 QPushButton {border-image: url(:/Start_Stop.png); } QPu…...

k8s-10 cni 网络

k8s通过CNI接口接入其他网络插件来实现网络通讯。目前比较流行的插件有flannel,calico等。 CNI插件存放位置: # cat /etc/cni/net.d/10-flannel.conflist 插件使用的解决方案如下: 虚拟网桥&#xff0c;虚拟网卡&#xff0c;多个容器共用一个虚拟网卡进行通信。多路复用: Mac…...

IDEA中.gitignore配置不生效的解决方案

一、创建项目 二、执行以下Git命令 git rm -r --cached . git add . git commit -m "update .gitignore"...

SparkContext 与 SparkContext 之间的区别是什么

SparkContext 是 Spark 的入口点&#xff0c;它是所有 Spark 应用程序的主要接口&#xff0c;用于创建 RDD、累加器、广播变量等&#xff0c;并管理与 Spark 集群的连接。在一个 Spark 应用程序中只能有一个 SparkContext。 而 SparkSession 是 Spark 2.0 新增的 API&#xff0…...

lv8 嵌入式开发-网络编程开发 17 套接字属性设置

1 基本概念 设置套接字的选项对套接字进行控制除了设置选项外&#xff0c;还可以获取选项选项的概念相当于属性&#xff0c;所以套接字选项也可说是套接字属性有些选项&#xff08;属性&#xff09;只可获取&#xff0c;不可设置&#xff1b;有些选项既可设置也可获取 2 选项…...

VulnHub Alice

一、信息收集 发现开发了22、80 2.访问ip&#xff0c;右击查看源代码 发现需要利用X-Forwarded-For 火狐插件&#xff1a;X-Forwarded-For Header 挂上代理后&#xff1a; 出现以下页面&#xff1a; 先注册一个账户&#xff0c;然后再登录 发现有参数进行传参 发现传参&a…...

AUTOSAR组织发布20周年纪念册,东软睿驰NeuSAR列入成功案例

近日&#xff0c;AUTOSAR组织在成立20周年之际发布20周年官方纪念册&#xff08;20th Anniversary Brochure&#xff09;&#xff0c;记录了AUTOSAR组织从成立到今天的故事、汽车行业当前和未来的发展以及AUTOSAR 伙伴关系和合作在重塑汽车方面的作用。东软睿驰提报的基于AUTOS…...

备案的网站 能拿来做仿站吗/百度搜索引擎推广

概述 为什么使用消息队列 异步处理&#xff1a;提高系统的吞吐量。解耦&#xff1a;系统与系统之间通过消息队列来传递消息&#xff0c;减少系统之间的耦合度。流量削峰&#xff1a;可以通过控制消息队列的长度来控制请求的数量&#xff0c;缓解端时间内系统的高并发。 使用…...

今日山西疫情一览表最新/北京seo工程师

来源&#xff1a;CSDN作者&#xff1a;未来的地中海原文链接:https://blog.csdn.net/qq_45687410/article/details/109735281?utm_sourceappimport scrapy # 导入scrapy# 创建爬虫类 并且继承自scrapy.Spider --> 最基础的类 另外几个各类都是继承自这个类class ProxySp…...

景德镇做网站公司/服务器租用

概述&#xff1a; 1&#xff09;媒体捕获设备包括摄像机和麦克风&#xff0c;还包括屏幕捕获“设备”。对于相机和麦克风&#xff0c;我们使用navigator.mediaDevices.getUserMedia()捕获MediaStreams 。对于屏幕录制&#xff0c;我们改用navigator.mediaDevices.getDisplayMe…...

苏州做视频网站广告公司/网站平台怎么推广

Ecshop这款程序虽然目前已经开发的相当成熟了&#xff0c;可是后台的一些功能还是比较烂&#xff0c;原因只有一个那就是它属于开源程序&#xff0c;很多站长们使用这款程序搭建商城&#xff0c;可是由于自己的疏忽不小心忘记了账号密码&#xff0c;这时候再想登陆到后台去就需…...

免费网站建设app/seo关键词优化的技巧和方法

...f struct ngx_queue_s ngx_queue_t;struct ngx_queue_s {ngx_queue_t *prev;ngx_queue_t *next;};#define ngx_queue_init(q)这次给大家带来jQuery的prev()使用详解&#xff0c;jQuery的prev()使用注意事项有哪些&#xff0c;下面就是实战案例&#xff0c;一起来看一下。pre…...

免费网站模板源码下载/网络广告类型

计算机硬件类_计算机网络基础11 . 三个网段/24&#xff0c;/24&#xff0c;/24能够汇聚成A. /22B. /22 C. /22 D. /25 答案&#xff1a;D2 . 因特网中完成域名地址和IP地址转换的系统是A. POP B. DNS C. SLIP D. Usenet 答案&#xff1a;B3 . 在计算机网络中&#xff0c;( )是将…...