• selenium打开火狐浏览器


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

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

    maven下载包

    
        org.seleniumhq.selenium
        selenium-java
        4.2.2
    

    下载火狐浏览器: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:浏览器打开地址

    1. System.setProperty("webdriver.gecko.driver",geckoDriver);
    2. WebDriver driver = new FirefoxDriver();
    3. driver.manage().window().maximize();
    4. driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));
    5. 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的地址就可以了

    测试代码

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

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

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

  • 相关阅读:
    2022陕西清北录取人数排名,西工大附中遥遥领先,高新一中40人
    齿轮减速机设备类网站pbootcms模板(PC端+手机端自适应)
    今日睡眠质量记录68分
    【Mybatis编程:插入和根据id删除相册数据】
    聊聊springboot的TomcatMetricsBinder
    信任营销已成为产品消费蓝海,开利网络与合作伙伴共建信任营销闭环
    Kubernetes学习笔记【2年以前的笔记】
    如何在 Windows 10 中安装 WSL2 的 Linux 子系统
    用户层与驱动层通信
    MySQL导出数据为csv的方法(亲测)
  • 原文地址:https://blog.csdn.net/qq_39705237/article/details/133808994