广州网站设计与制作公司,安徽网站建设优化推广,微信如何创建自己的小程序,万网放网站项目上需求为#xff1a;甲方OA 系统是IE系统#xff0c;需要从IE系统点个按钮打开火狐浏览器单点登录跳转到我们的系统
前期解决方案为#xff1a;打开浏览器就行了#xff0c;然后就用的是打开本地浏览器#xff0c;但是由于B/S架构#xff0c;有别人远程访问我的ip来…项目上需求为甲方OA 系统是IE系统需要从IE系统点个按钮打开火狐浏览器单点登录跳转到我们的系统
前期解决方案为打开浏览器就行了然后就用的是打开本地浏览器但是由于B/S架构有别人远程访问我的ip来尝试时打开的确是服务器的浏览器也就是我自己的浏览器然后又去摸索了一下RemoteWebDriver 的用法然后尝试了几次就此作罢本地测试都蛮正常但是部署到小伙伴机器上时各种报错最后技术方案有待讨论为此记录一下前期的研究记录打开火狐浏览器的一些代码和操作步骤
maven下载包
dependencygroupIdorg.seleniumhq.selenium/groupIdartifactIdselenium-java/artifactIdversion4.2.2/version
/dependency
下载火狐浏览器https://www.firefox.com.cn/installer-help/?channelreleaseinstaller_langzh-CN
下载geckodriverhttps://github.com/mozilla/geckodriver/releases 下载selenium-server-standalonehttp://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.driverD:\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
最后就不使用这种方案了最后大家要是遇到一些比较好的实现方案可以在评论区交流