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 

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/157010.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WPF中的多重绑定

MultiBinding 将会给后端传回一个数组, 其顺序为绑定的顺序. 例如: <DataGridMargin"10"AutoGenerateColumns"False"ItemsSource"{Binding Stu}"><DataGrid.Columns><DataGridTextColumn Binding"{Binding Id}" Header…

伦敦银单位转换很简单

伦敦银源自于英国伦敦的电子化的白银投资方式&#xff0c;高杠杆和高收益的它的基本属性&#xff0c;但有别于国内大家所熟悉的投资品种&#xff0c;伦敦银在交易过程中有很多不一样的地方&#xff0c;需要大家地去留意。 比如伦敦银的计价单位是盎司&#xff0c;而且具体来说…

数据报表的种类

根据报表使用频率不同&#xff0c;目的不同&#xff0c;使用群体不同&#xff0c;细化程度不同等情况&#xff0c;一般数据报表可以分为日常报表和临时报表&#xff0c;日常报表又分为管理报表和专题分析报表。 1. 日常报表 日常报表通常是指使用频率较高&#xff08;一般取3…

亚马逊频繁扫号下的跨境电商,跨境电商卖家应该何去何从?

相信各位同行都知道&#xff0c;自2021年起&#xff0c;亚马逊的扫号活动就从未间断&#xff0c;直到如今2023年的亚马逊&#xff0c;仍然是隔2周-几个月就有大规模的审核扫号&#xff0c;大批卖家店铺被封&#xff0c;亚马逊卖家人人自危&#xff0c;面对时间间隔短频率高的扫…

微软 AR 眼镜新专利:包含热拔插电池

近日&#xff0c;微软在增强现实&#xff08;AR&#xff09;领域进行深入的研究&#xff0c;并申请了一项有关于“热插拔电池”的专利。该专利于2023年10月5日发布&#xff0c;描述了一款采用模块化设计的AR眼镜&#xff0c;其热插拔电池放置在镜腿部分&#xff0c;可以直接替代…

SyntaxError: invalid character ‘:‘ (U+FF1A)问题解决

问题&#xff1a; SyntaxError: invalid character &#xff1a; (UFF1A) 原因及解决方法&#xff1a; 冒号输入的格式不对&#xff0c;冒号的输入为中文&#xff0c;改成英文即可。

好用的Java工具类库—— Hutool

目录 一、简介 1、介绍 2、Hutool名称的由来 3、Hutool如何改变我们的coding方式 4、包含组件&#xff08;核心&#xff09; 5、官方文档 二、安装与使用 1、引入 import方式 exclude方式 2、安装(POM) 三、使用 1、DateUtil 2、StrUtil 3、NumberUtil 4、MapU…

打造类ChatGPT服务,本地部署大语言模型(LLM),如何远程访问?

ChatGPT的成功&#xff0c;让越来越多的人开始关注大语言模型&#xff08;LLM&#xff09;。如果拥有了属于自己的大语言模型&#xff0c;就可以对其进行一些专属优化。例如&#xff1a;打造属于自己的AI助理&#xff0c;或是满足企业自身的业务及信息安全需求。 所以&#xff…

centos 7 lamp owncloud

OwnCloud是一款开源的云存储软件&#xff0c;基于PHP的自建网盘。基本上是私人使用&#xff0c;没有用户注册功能&#xff0c;但是有用户添加功能&#xff0c;你可以无限制地添加用户&#xff0c;OwnCloud支持多个平台&#xff08;windows&#xff0c;MAC&#xff0c;Android&a…

如何使用自动化工具编写测试用例?

在快速变化的软件开发领域&#xff0c;保证应用程序的可靠性和质量至关重要。随着应用程序复杂性和规模的不断增加&#xff0c;仅手动测试无法满足行业需求。 这就是测试自动化发挥作用的地方&#xff0c;它使软件测试人员能够提高效率、增加测试覆盖率并自信地交付高质量的产品…

电动车租赁小程序开发方案详解php

电动车租赁小程序开发功能有哪些&#xff1f; 1.地图找车 进入小程序后&#xff0c;在地图上显示门店位置&#xff0c;点击位置可查看门店信息。进入门店后可以看到车辆列表&#xff0c;车辆里详细的介绍的车辆名称、图片、车辆介绍、租赁价格、押金等信息。 2.租赁/购车 电…

第五篇Android--EditText详解

EditText 字面意思可以编辑的文本。在Android中就是用来接收用户输入的输入框。 1.基本用法 <EditTextandroid:id"id/id_phone_edit"android:layout_width"match_parent"android:layout_height"48dp"android:background"android:color/…

Stable Diffusion 动画SD-Animatediff V2

AI不仅可以生成令人惊叹的图片,还能给这些图片注入生命,让它们动起来。 这就是AnimateDiff要做的事情,一个神奇的工具,能将静态的AI生成图像转换成动画。 本次介绍基于SD如何实现这个神奇的方法。 文章目录 插件安装使用方法参数调整文生动图/视频Controlnet方法SD API方…

压力测试+接口测试

jmeter是apache公司基于java开发的一款开源压力测试工具&#xff0c;体积小&#xff0c;功能全&#xff0c;使用方便&#xff0c;是一个比较轻量级的测试工具&#xff0c;使用起来非常简单。因 为jmeter是java开发的&#xff0c;所以运行的时候必须先要安装jdk才可以。jmeter是…

结构体,位段!

目录 1.什么是位段&#xff1f; 别急&#xff01;在下面第二点我和大家介绍。 2.位段的内存怎么分配&#xff1f; 还有一种情况就是两种类型夹杂在一起的位段 3.位段的跨平台问题 4.位段能干嘛&#xff1f;&#xff08;应用&#xff09; 5.位段的注意事项 1.什么是位段&…

whistle安卓手机抓包(图文详解)

1、安装node https://nodejs.org &#xff08;官网下载对应的node,一般推荐长期稳定版本 LTS&#xff09; 需要node的版本是大于 v0.10.0 查看自己本地node 版本号 node -v2、安装whistle npm i -g whistle3、开启whistle 补充说明&#xff1a; ● w2 stop&#xff1a;关闭…

理解LoadRunner,基于此工具进行后端性能测试的详细过程(上)

1、LoadRunner 的基本原理 后端性能测试工具通过虚拟用户脚本生成器生成基于协议的虚拟用户脚本&#xff0c;然后根据性能测试场景设计的要求&#xff0c;通过压力控制器控制协调各个压力产生器以并发的方式执行虚拟用户脚本&#xff0c;并且在测试执行过程中&#xff0c;通过…

【算法|双指针系列No.7】leetcodeLCR 007. 三数之和

个人主页&#xff1a;兜里有颗棉花糖 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 兜里有颗棉花糖 原创 收录于专栏【手撕算法系列专栏】【LeetCode】 &#x1f354;本专栏旨在提高自己算法能力的同时&#xff0c;记录一下自己的学习过程&#xff0c;希望…

华为OD机考B卷 | 100分】阿里巴巴找黄金宝箱(JAVA题解——也许是全网最详)

前言 本人是算法小白&#xff0c;甚至也没有做过Leetcode。所以&#xff0c;我相信【同为菜鸡的我更能理解作为菜鸡的你们的痛点】。 题干 1. 题目描述 一贫如洗的樵夫阿里巴巴在去砍柴的路上&#xff0c;无意中发现了强盗集团的藏宝地&#xff0c;藏宝地有编号从0~N的箱子&…

flstudio21破解版夸克网盘

FL studio21中文别名水果编曲软件&#xff0c;是一款全能的音乐制作软件&#xff0c;包括编曲、录音、剪辑和混音等诸多功能&#xff0c;让你的电脑编程一个全能的录音室&#xff0c;它为您提供了一个集成的开发环境&#xff0c;使用起来非常简单有效&#xff0c;您的工作会变得…