您的位置:軟件測(cè)試 > 開(kāi)源軟件測(cè)試 > 開(kāi)源功能測(cè)試工具 > Selenium
Selenium的基本使用
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2014/4/24 10:40:20 ] 推薦標(biāo)簽:Selenium

  7.通過(guò)Css進(jìn)行定位(Cascading Style Sheets)
css=form#loginForm
css=input[name="username"]
css=input.required[type="text"]
css=input.passfield
css=#loginForm input[type="button"]
css=#loginForm input:nth-child(2)
  二、Selenium錯(cuò)誤現(xiàn)場(chǎng)保存方法(截屏和記錄日志)
  知曉了如何定位元素,我們可以觸發(fā)頁(yè)面上相應(yīng)的BOM事件了。
  那么當(dāng)執(zhí)行頁(yè)面響應(yīng)的自動(dòng)化操作的時(shí)候發(fā)生了錯(cuò)誤我們應(yīng)該怎樣才能更好的記錄相應(yīng)的錯(cuò)誤呢?記錄Log日志和保存相應(yīng)的屏幕錯(cuò)誤信息。
  1.首先記錄log日志,可使用為java量身定做的log4j進(jìn)行日志記錄(我的另外一篇Log4j如何實(shí)現(xiàn)日志分模塊,分天,分錯(cuò)誤級(jí)別進(jìn)行記錄)
  2.截取錯(cuò)誤發(fā)生時(shí)的屏幕,這樣可以很快的定位錯(cuò)誤發(fā)生前的操作和錯(cuò)誤發(fā)生時(shí)的錯(cuò)誤信息了。
  分享一段執(zhí)行截屏的java代碼。
/*截屏操作,遇到錯(cuò)誤自動(dòng)截屏存儲(chǔ)到指定位置。
* 指定保存的路徑,然后通過(guò) TakesScreenshot 的 getScreenshotAs進(jìn)行截屏操作。
* WebElement 繼承 TakesScreenshot 這個(gè)大能耐焊好的基于了瀏覽器,返回當(dāng)前的狀態(tài)
*  ——整個(gè)當(dāng)前的HTML元素內(nèi)容
*  ——可視化部分的HTML元素
* */
public static void captureScreenshot(String arg0,WebDriver driver){
if(PrivateDataSource.Debug){
logger.debug("調(diào)試截圖功能,并把截圖存儲(chǔ)到:"+PrivateDataSource.screenshotsResultsPath);
}
String screenshotsResultsPath=PrivateDataSource.screenshotsResultsPath;
String imagePath = screenshotsResultsPath + File.separator+arg0+"_"
+arg0+".png";
File screenShotFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
try {
org.apache.commons.io.FileUtils.copyFile(screenShotFile, new File(imagePath));
} catch (IOException e) {
e.printStackTrace();
if(PrivateDataSource.DebugError){
logger.info( logger.getClass().getName()+" selenium輸出截圖功能失敗。以下是錯(cuò)誤信息!");
logger.error(e.getStackTrace());
}
}
}
  三、Selenium瀏覽器兼容性測(cè)試
  1.向?yàn)g覽器注入一段可執(zhí)行的JavaScript腳本
  在很多情況下我們需要程序觸發(fā)一段JavaScript腳本,首先我們需要注冊(cè)相應(yīng)的JavaScript到瀏覽器中然后觸發(fā)執(zhí)行。
  WebElement ele = driver.findElement(By.id("SubMenu7").xpath("//table/tbody/tr[9]"));//定位Web頁(yè)面的元素
  //((JavascriptExecutor)driver).executeScript("arguments[0].onclick=function(){alert('js has been execute!');}", ele);//為這個(gè)元素添加可執(zhí)行的js
  ((JavascriptExecutor)driver).executeScript("arguments[0].onclick=function(){SelectMenu(this,'AirLineSeasonManage.aspx?TimeStamp=' + TimeStamp());}", ele);//為這個(gè)元素添加可執(zhí)行的js
  ele.click();
  以上代碼首先找到相應(yīng)的元素
  然后向相應(yīng)的元素里面注入一段可執(zhí)行腳本
  后點(diǎn)擊該元素執(zhí)行這個(gè)JavaScript腳本。
  2.IE瀏覽器運(yùn)行注意點(diǎn)
  首先需要下載一個(gè)IEDriverServer.exe工具然后放置在任意位置,記錄相應(yīng)的存放path
  設(shè)置瀏覽器啟動(dòng)路徑System.setProperty("webdriver.ie.driver", "存放IEDriverServer.exe的path");
  啟動(dòng)程序開(kāi)始執(zhí)行
  3.Chrome瀏覽器運(yùn)行注意點(diǎn)
  首先需要下載一個(gè)chromedriver.exe模擬Chrome瀏覽器的工具,放在任意位置,記錄相應(yīng)的存放path
  設(shè)置瀏覽器啟動(dòng)路徑System.setProperty("webdriver.chrome.driver", "存放chromedriver.exe的path");
  啟動(dòng)程序開(kāi)始執(zhí)行
  4.FireFox瀏覽器中運(yùn)行注意點(diǎn)
  直接安裝了FireFox瀏覽器,并且Selenium對(duì)FireFox有非常好的支持,所以不需要下載其余的模擬器進(jìn)行執(zhí)行驗(yàn)證。
  如果你的FireFox沒(méi)有默認(rèn)安裝,即改變了默認(rèn)的安裝路徑需要設(shè)定運(yùn)行變量,不然FireFox不會(huì)被正常啟動(dòng)的。
  System.setProperty("webdriver.firefox.bin", "FireFox的安裝路徑");
  啟動(dòng)程序開(kāi)始執(zhí)行

上一頁(yè)12下一頁(yè)
軟件測(cè)試工具 | 聯(lián)系我們 | 投訴建議 | 誠(chéng)聘英才 | 申請(qǐng)使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd