欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
Selenium2.0之WebDriver學(xué)習總結(2)

Selenium2.0之WebDriver學(xué)習總結(2)  

來(lái)自lvzeting   2012-03-05 16:12:08|  分類(lèi): 自動(dòng)化測試|字號 訂閱

(三)   命令和操作

這一部分將介紹一下WebDriver的一些具體操作和命令,實(shí)際操作中,我們需要兩大工具來(lái)幫助我們:FireBugXpath工具,這兩者都是Firefox上的插件。接下來(lái)我們所講解的都是以FirefoxDriver為基礎的,且基于WebDriver driver = new FirefoxDriver();創(chuàng )建的一個(gè)driver實(shí)例:

a)         訪(fǎng)問(wèn)一個(gè)頁(yè)面

第一件你想使用WebDriver做的事情肯定是訪(fǎng)問(wèn)一個(gè)頁(yè)面,最基礎的方法是調用“get”方法:

driver.get("http://www.google.com");

同樣我們可以使用:

driver.navigate().to("http://www.google.com");

WebDriver會(huì )自動(dòng)等待到該頁(yè)面完全加載才執行接下來(lái)的測試和腳本的執行。但是如果你的頁(yè)面存在很多的AJAX加載,此時(shí)WebDriver是無(wú)法知道是否完成加載。檢查此類(lèi)頁(yè)面是否加載完成,那么我們就需要ExplicitImplicit Wait(這兩個(gè)將在后面文章解釋?zhuān)?/span>

 

b)         定位UI元素

WebDriver可以通過(guò)WebDriver實(shí)例來(lái)定位元素,任何語(yǔ)言庫都含有“Find Element”和“Find Elements”的方法。第一個(gè)方法返回一個(gè)WebElement或者拋出異常。后者返回所有WebElement的列表,或者空列表。

獲取和定位元素我們調用“By”方法。下面具體解釋下“By”方法:

By ID

這是一個(gè)極為有效定位元素的方法。普遍的現狀是UI工程師在實(shí)際編寫(xiě)頁(yè)面時(shí)很少寫(xiě)id或者自動(dòng)生產(chǎn)一個(gè)ID,這些都是需要避免的。對于一個(gè)頁(yè)面Element來(lái)說(shuō),class比自動(dòng)生產(chǎn)的id更好。

通過(guò)id定位元素的例子:

<div id="coolestWidgetEvah">...</div>

WebElement element = driver.findElement(By.id("coolestWidgetEvah"));


 By Class Name

        這里的class指的是DOM中的元素,在實(shí)際使用過(guò)程中,我們也會(huì )發(fā)現很多DOM元素含有相同的class名。

通過(guò)class name定位元素例子:


<div class="cheese">

<span>Cheddar</span>

</div>

<div class="cheese">

<span>Gouda</span>

</div>

List<WebElement> cheeses = driver.findElements(By.className("cheese"));


By Tag Name

DOMTag元素

Tag name 定位元素的例子:

<iframe src="..."></iframe>

WebElement frame = driver.findElement(By.tagName("iframe"));


By Name

例子:

<input name="cheese" type="text"/>

WebElement cheese = driver.findElement(By.name("cheese"));


By Link Text

例子:


<a href="http://www.google.com/search?q=cheese">cheese</a>>

WebElement cheese = driver.findElement(By.linkText("cheese"));


By Partial Link Text

根據鏈接的部分文字

例子:


<a href="http://www.google.com/search?q=cheese">search for cheese</a>>

WebElement cheese = driver.findElement(By.partialLinkText("cheese"));


By CSS

從名字上看,這是根據CSS來(lái)定位元素。

例子:

<div id="food">

         <span class="dairy">milk</span>

         <span class="dairy aged">cheese</span>

</div>

WebElement cheese = driver.findElement(By.cssSelector("#food span.dairy aged"));


By XPATH

在高級的水平下,WebDriver盡可能使用瀏覽器的原生的XPath能力。在那些沒(méi)有原生的XPath支持的瀏覽器,我們提供自己的實(shí)現方式。但是三個(gè)Driver有一定的區別。

例子:

<input type="text" name="example" />

<INPUT type="text" name="other" />

List<WebElement> inputs = driver.findElements(By.xpath("http://input")); 


查找結果:

HTML元素有時(shí)并不需明確聲明,因為他們將默認為已知值的屬性。例如,input標簽,就不需要設置typetext,默認屬性就是text,經(jīng)驗原則:WebDriver在使用中的XPath時(shí),不應該期望能夠對這些隱含屬性相匹配。

 

使用javascript

您可以執行任意JavaScript找到一個(gè)元素,只要你返回一個(gè)DOM元素,它會(huì )自動(dòng)轉換到一個(gè)WebElement對象。

例子:

jQuery的頁(yè)面加載一個(gè)簡(jiǎn)單的例子:

WebElement element = (WebElement) ((JavascriptExecutor)driver).executeScript("return $('.cheese')[0]"); 

尋求所有的頁(yè)面上的input元素:

List<WebElement> labels = driver.findElements(By.tagName("label"));

List<WebElement> inputs = (List<WebElement>) ((JavascriptExecutor)driver).executeScript(

     "var labels = arguments[0], inputs = []; for (var i=0; i < labels.length; i++){" +

"inputs.push(document.getElementById(labels[i].getAttribute('for'))); } return inputs;", labels);


用戶(hù)表單填充

例子:

遍歷select標簽

WebElement select = driver.findElement(By.tagName("select"));

List<WebElement> allOptions = select.findElements(By.tagName("option"));

for (WebElement option : allOptions) {

             System.out.println(String.format("Value is: %s", option.getAttribute("value")));

             option.click();

}


選擇某一個(gè)選項:

Select select = new Select(driver.findElement(By.tagName("select")));

select.deselectAll();

select.selectByVisibleText("Edam");

上傳文件:

WebElement FileUpload =driver.findElement(By.id("upload"));

String filePath = "C:\test\\uploadfile\\media_ads\\test.jpg";

FileUpload.sendKeys(filePath);


提交:

Submitform

driver.findElement(By.id("submit")).click();


submit不在form

WebElement.submit();


拖拽操作:

WebElement element = driver.findElement(By.name("source"));

WebElement target = driver.findElement(By.name("target"));

(new Actions(driver)).dragAndDrop(element, target).perform();



WindowsFrames之間的切換

一些web應用程序有許多Frames或多個(gè)Windows。 WebDriver支持使用“switchTo”的方法實(shí)現的窗口之間切換。

driver.switchTo().window("windowName");

所有對driver的調用都會(huì )指向特定的窗口,但是我們怎么知道窗口的名字呢?我們可以查看javascript代碼和打開(kāi)他的鏈接:

<a href="somewhere.html" target="windowName">Click here to open a new window</a>

另外,還可以通過(guò)“window handle”去調用“switchTo().window()”,通過(guò)這個(gè),我們就遍歷來(lái)找到所有打開(kāi)的窗口:

for (String handle : driver.getWindowHandles()) {

driver.switchTo().window(handle);

}


Switch同樣支持frame

driver.switchTo().frame("frameName");

同樣可以使用他訪(fǎng)問(wèn)subframe,找frameName的第一個(gè)subframe中叫做childframe

driver.switchTo().frame("frameName.0.child");


彈出框:

selenium2.0開(kāi)始,已經(jīng)支持對彈出框的獲取

Alert alert = driver.switchTo().alert();

這個(gè)方法會(huì )返回當前被打開(kāi)打警告框,你可以進(jìn)行統一,取消,讀取提示內容,后則進(jìn)入到提示,這個(gè)同樣使用alerts,confirms,prompts。


NavigationHistory and Location

之前我們就可以通過(guò)get方法來(lái)打開(kāi)一個(gè)網(wǎng)頁(yè),像我們所看到的,WebDriver同樣還有許多小接口,Navigation就是其中一個(gè)小接口:

driver.navigate().to("http://www.example.com");

navigate().toget()其實(shí)作用是一樣的,但是navigate還可以進(jìn)行瀏覽器的前進(jìn)后退操作:

driver.navigate().forward();

driver.navigate().back(); 



本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
Selenium WebDriver學(xué)習文檔(二)
WebDriver入門(mén)
selenium webdriver定位不到元素的五種原因及解決辦法
Selenium2(WebDriver)總結(五)——元素進(jìn)階操作(常用類(lèi))
selenium2(WebDriver) API
webdriver入門(mén)
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久