您的位置:軟件測(cè)試 > 開(kāi)源軟件測(cè)試 > 開(kāi)源功能測(cè)試工具 > Selenium
Selenium WebDriver高級(jí)用法
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2015/2/11 15:18:45 ] 推薦標(biāo)簽:Selenium 功能測(cè)試工具 單元測(cè)試

  拖放
  WebDriver允許我們拖放元素,如將某個(gè)元素拖到其他地方、或者將某個(gè)元素拖到其他元素上。
  <code>WebElement element = driver.findElement(By.name("source"));
  WebElement element = driver.findElement(By.name("target"));
  (new Actions(driver)).dragAndDrop(element, target).perform();</code>
  切換window或者Frame
  對(duì)于現(xiàn)在的web應(yīng)用程序來(lái)說(shuō),很少有單個(gè)window的情況,都是嵌入了其他的frame。WebDrvier支持使用”switchTO”方法切換到其他window。
  <code>driver.switchTo().window.("windowName");</code>
  上面的代碼執(zhí)行后,driver會(huì)切換到windowName這個(gè)window。但是如何獲取windowName呢?來(lái)一個(gè)例子:
  <code><a href="http://www.yeetrack.com" target="windowName">點(diǎn)擊打開(kāi)新窗口</a></code>
  還有,我們可以通過(guò)”window handle”來(lái)切換,并且還可以遍歷當(dāng)前所有的window
  <code>for(String handle : driver.getWindowHandles())
  {
  driver.switchTo().window(handle);
  }</code>
  切換frame(或者iframe)
  <code>driver.switchTo().frame("frameName");</code>
  switchTo()可以鏈?zhǔn)秸{(diào)用,或者通過(guò)index來(lái)切換
  <code>drvier.switchTo().frame("frameName")
  .switchTo().frame(0)
  .switchTo().frame("child");</code>
  上面的語(yǔ)句執(zhí)行后,driver會(huì)進(jìn)入”frameName”這個(gè)frame,然后進(jìn)入到第一個(gè)子frame,然后再進(jìn)入到這個(gè)子frame的名稱(chēng)是”child”的frame中。如果要回到的frame,執(zhí)行下面的代碼:
  <code>driver.switchTo().defaultContent();</code>
  導(dǎo)航:History和Location
  早先,我們使用WebDriver的get方法,打開(kāi)了”http://www.yeetrack.com”。WebDriver提供一些接口,其中一個(gè)如下:
  <code>driver.navigate().to("http://www.yeetrack.com");</code>
  “navigate().to()”和”get()”方法,實(shí)現(xiàn)的功能完全一樣,只不過(guò)”get()”拼寫(xiě)起來(lái)更簡(jiǎn)單。
  “navigete”接口,還可以控制瀏覽器的前進(jìn)和后退:
  <code>driver.navigate().forward();
  driver.navigate().back();</code>
  請(qǐng)注意,這個(gè)功能完全依賴(lài)于底層的瀏覽器。如果兩種瀏覽器的行為不一致,那么代碼執(zhí)行的效果也會(huì)不一致。
  Cookies
  瀏覽器的安全測(cè)試,cookie是不能跨域的,所以你想操作A域名的cookie,首先你要讓切換到A域名上。
<code>//打開(kāi)域名
driver.get("http://www.yeetrack.com");
//添加Cookie
Cookie cookie = new Cookie("uuid", "abcdedfjeiajfei");
driver.manage().addCookie(cookie);
//遍歷當(dāng)前域名的cookie
Set(Cookie) allCookies = driver.manage().getCookies();
for(Cookie loadedCookie : allCookies)
{
System.out.println(String.format("%s ---> %s", loadedCookie.getName(), loadedCookie.getValue()));
}</code>

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