項(xiàng)目上需求為:甲方OA 系統(tǒng)是IE系統(tǒng),需要從IE系統(tǒng)點(diǎn)個按鈕打開火狐瀏覽器單點(diǎn)登錄跳轉(zhuǎn)到我們的系統(tǒng)?
前期解決方案為:打開瀏覽器就行了,然后就用的是打開本地瀏覽器,但是由于B/S架構(gòu),有別人遠(yuǎn)程訪問我的ip來嘗試時,打開的確是服務(wù)器的瀏覽器,也就是我自己的瀏覽器,然后又去摸索了一下RemoteWebDriver 的用法,然后嘗試了幾次就此作罷,本地測試都蠻正常,但是部署到小伙伴機(jī)器上時各種報(bào)錯,最后技術(shù)方案有待討論,為此記錄一下前期的研究,記錄打開火狐瀏覽器的一些代碼和操作步驟
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??????
遠(yuǎn)程服務(wù)器命令含義:https://www.selenium.dev/documentation/legacy/selenium_2/firefox_driver/
其實(shí)最后我本地運(yùn)行的是-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、使用遠(yuǎn)程的方式打開瀏覽器
2.1首先需要把selenium-server-standalone部署起來,需要有jdk的環(huán)境,打開cmd 輸入下面命令行,就可以打開服務(wù)器了,默認(rèn)端口是4444 ,
java -Dwebdriver.gecko.driver=D:\otherTools\firebox\geckodriver.exe -jar D:\otherTools\firebox\selenium-server-standalone-3.9.1.jar
打開http://localhost:4444/
看到下面的界面就部署好了,現(xiàn)在就需要測試工具是否可以打開瀏覽器,因?yàn)榻壎ǖ氖腔鸷c(diǎn)擊頁面上的console
如果失敗可能會這樣
可以打開控制臺查看,我之前由于命令行沒有配置geckodriver 的地址會發(fā)生
這樣的命令java??-jar?D:\otherTools\firebox\selenium-server-standalone-3.9.1.jar會產(chǎn)生錯誤
一般看到Driver info unknown的錯誤,就在命令行加上geckodriver的地址就可以了
測試代碼
FirefoxOptions browserOptions = new FirefoxOptions();
DesiredCapabilities desiredCapabilities = new DesiredCapabilities();
desiredCapabilities.setBrowserName("firefox");
desiredCapabilities.setPlatform(Platform.WINDOWS);
//ip為遠(yuǎn)程服務(wù)器的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);
然后再本地也能夠?qū)g覽器打開,到了這一步讓小伙伴也下載上面的包,然后也執(zhí)行一樣的命令,發(fā)現(xiàn)會產(chǎn)生一堆其他的錯誤:?Expected browser binary location, but unable to find binary in default location, no 'moz:firefoxOptions.binary' capability provided?文章來源:http://www.zghlxwxcb.cn/news/detail-786542.html
最后就不使用這種方案了,最后大家要是遇到一些比較好的實(shí)現(xiàn)方案可以在評論區(qū)交流文章來源地址http://www.zghlxwxcb.cn/news/detail-786542.html
到了這里,關(guān)于selenium打開火狐瀏覽器的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!