Java+Selenium Web UI自动化测试的一些总结
1. Browser
Chrome
關(guān)于Chrome的配置網(wǎng)上信息很多,直說一點,當選擇在linux環(huán)境跑用例的時候,我們會優(yōu)先選擇headless run,默認情況下headless run的瀏覽器大小好像只有900*768,我們在windows下調(diào)通的用例在縮小的串口下經(jīng)常會失敗,最好調(diào)一下size:
chromeOptions.setHeadless(true); chromeOptions.addArguments("--no-sandbox"); chromeOptions.addArguments("window-size=1280,900");Firefox
a. Chrome下能夠跑過的用例在firefox下可能會fail,原因之一是Firefox對所有超出視窗的元素都是不可操作的,即使使用Action或者JS來操作也不可行,需要添加相應(yīng)的ScrollIntoView (下面click會介紹具體用法)
b. Firefox對隱藏元素默認是不可操作的(例如上傳文件標簽),firefox 59之后添加了FirefoxCapability moz:wedriverClick用于操作隱藏元素: firefoxOptions.setCapability("moz:webdriverClick",false); //點擊隱藏元素,如上傳文件
2. 關(guān)于Click
- Element.click
driver.findElement(By.css).click(); //前提條件為element可見(visible)且高度長度大于0,如果元素點擊時發(fā)生變化則會拋出(StaleElementReferenceError- Action.click
Actions action = new Actions(driver); action.moveToElement(element).click().perform();//模擬鼠標操作,點擊元素中間位置- Javascript scrollIntoView and click
JavascriptExecutorje=(JavascriptExecutor)getWebDriver();je.executeScript("arguments[0].scrollIntoView(false);",element);//移動到元素element對象的“底端”與當前窗口的“底部”對齊,//true為頂端je.executeScript("arguments[0].click();",element);//通過JS點擊元素,可繞開元素被圖層覆蓋或透明沒有正面大小問題
3. Driver
- Chromedriver:
○ Headless mode: (Chrome headless模式時不使用Xvfb,Xvfb為早期沒有chrome headless模式時的替代X window服務(wù), headless默認窗口大小為900x768,可自行設(shè)置)
chromeOptions.setHeadless(true);chromeOptions.addArguments("--no-sandbox");chromeOptions.addArguments("window-size=1280,900");○ Linux/Mac環(huán)境下運行chromedriver需要強制設(shè)置其為可執(zhí)行文件
Filefile=newFile("chromedriver path");file.setExecutable(true);- Geckodriver
ProfilesIniprofile=newProfilesIni();FirefoxProfileffProfile=profile.getProfile("default");capabilities.setCapability(FirefoxDriver.PROFILE,ffProfile); //關(guān)于證書認證等的設(shè)置FirefoxOptionsfirefoxOptions=newFirefoxOptions(capabilities);firefoxOptions.setCapability("moz:webdriverClick",false);//允許點擊隱藏元素,如上傳文件webdriver=newFirefoxDriver(firefoxOptions);4. Hover
- Hover and click
Actionsaction=newActions(getWebDriver());action.moveToElement(element).perform();Element.click();//如果出現(xiàn)點擊不了的問題,可嘗試更改moveToElement到父節(jié)點,點擊子element
- Hover and hold
Actionsaction=newActions(getWebDriver());action.moveToElement(element).clickAndHold().perform();//側(cè)面解決hover元素后在做其他操作hover元素隱藏問題action.release();
后續(xù)慢慢添加
轉(zhuǎn)載于:https://www.cnblogs.com/testerLydia/p/9463927.html
總結(jié)
以上是生活随笔為你收集整理的Java+Selenium Web UI自动化测试的一些总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Spring(十二)之JDBC框架
- 下一篇: python框架django的数据库的正