selenium 2.0処理case例(二)
8045 ワード
本文は具体的なコード処理過程を通して、seleniumの中のいくつかの比較的に常用しない種類の使い方を示します.
1、javascript Excutorは、driverをJavascript Exectorタイプに変えることによって、executeScriptを呼び出すとjavascriptが実行されます.
2、Takes Sreenshot、自動化テスト中、スクリーンショットは私達の直観的な位置決めミス、記録テストステップを助けることができます.webdriverのスクリーンショット機能はとても便利です.driver.getから現在スクリーンショットしたいページまで、またdriverをTakes Screnshotタイプに強く変えて、get ScrreenshotAsを呼び出します.
3、ドラゴAndDrop、アナログドラッグ操作、actions.dragAndDropを使用する.完成します.sourceはドラッグ操作の対象です.例えば、一枚の写真など、targetは置く場所です.
4、Select類、コンボタイプのコントロールは、Select select=new Select(driver.findElement(By.id);Selectオブジェクトを取得すると、オプションの操作ができます.例えば、「クリア項目」、「text/index/valueを通じてオプションを選択する」、「すべてのオプションを獲得する」、「現在選択されているオプションを獲得する」などの方法が提供されます.具体的には、apiを参照してください.使い方はブログ「selenium 2.0処理case例(一)」に参照してください.
以下のコードは順序に従って、上述のような具体的な使用過程とシーンをリストに示します.
dragAndDrop ToObject(locatofObject ToBeDragged、locatofDragDestination Object)
dragAndDrop(locator,movements String) //movements String-offset in pixels from the current location to which the element shuld be moved,e.g.「+70、-300」
dragAndDrop(Point,Point)//Point point=driver.findElement(locator).get Location() get(x,y)
1、javascript Excutorは、driverをJavascript Exectorタイプに変えることによって、executeScriptを呼び出すとjavascriptが実行されます.
2、Takes Sreenshot、自動化テスト中、スクリーンショットは私達の直観的な位置決めミス、記録テストステップを助けることができます.webdriverのスクリーンショット機能はとても便利です.driver.getから現在スクリーンショットしたいページまで、またdriverをTakes Screnshotタイプに強く変えて、get ScrreenshotAsを呼び出します.
3、ドラゴAndDrop、アナログドラッグ操作、actions.dragAndDropを使用する.完成します.sourceはドラッグ操作の対象です.例えば、一枚の写真など、targetは置く場所です.
4、Select類、コンボタイプのコントロールは、Select select=new Select(driver.findElement(By.id);Selectオブジェクトを取得すると、オプションの操作ができます.例えば、「クリア項目」、「text/index/valueを通じてオプションを選択する」、「すべてのオプションを獲得する」、「現在選択されているオプションを獲得する」などの方法が提供されます.具体的には、apiを参照してください.使い方はブログ「selenium 2.0処理case例(一)」に参照してください.
以下のコードは順序に従って、上述のような具体的な使用過程とシーンをリストに示します.
package mavenSelenium;
import java.io.File;
import java.util.concurrent.TimeUnit;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.openqa.selenium.*;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.firefox.FirefoxProfile;
import org.openqa.selenium.ie.InternetExplorerDriver;
import org.openqa.selenium.interactions.Actions;
import com.google.common.io.Files;
public class TestBlog extends Assert {
WebDriver driver;
@Before
public void init(){
driver=new FirefoxDriver();
driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
}
@Test
public void test()throws Exception{
//1、driver execute JavaScript
driver.get("http://www.baidu.com");
JavascriptExecutor js=(JavascriptExecutor)driver;
String title=(String)js.executeScript("return document.title");
System.out.println(title);
//String script="function timeStamp(){ var d = new Date(); var m=d.getMonth()+1;var m=(m>9)?m:\"0\"+m; var dd=(d.getDate()>9)?d.getDate():\"0\"+d.getDate();var hh=(d.getHours()>9)?d.getHours():\"0\"+d.getHours();var mm=(d.getMinutes()>9)?d.getMinutes():\"0\"+d.getMinutes(); var ss=(d.getSeconds()>9)?d.getSeconds():\"0\"+d.getSeconds();var timeStamp=\"\"+d.getFullYear()+m+dd+hh+mm+ss; return timeStamp; }var rs;rs=timeStamp();";
String script="var d = new Date(); var m=d.getMonth()+1;var m=(m>9)?m:\"0\"+m; var dd=(d.getDate()>9)?d.getDate():\"0\"+d.getDate(); var hh=(d.getHours()>9)?d.getHours():\"0\"+d.getHours(); var mm=(d.getMinutes()>9)?d.getMinutes():\"0\"+d.getMinutes(); var ss=(d.getSeconds()>9)?d.getSeconds():\"0\"+d.getSeconds();var timeStamp=\"\"+d.getFullYear()+m+dd+hh+mm+ss; return timeStamp;";
System.out.println(script);
String timestamps=(String)js.executeScript(script);
System.out.println(timestamps);
//2、TakesScreenshot
File srcFile=((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
String descFilePath="d:\\test2.jpeg";
Files.copy(srcFile, new File(descFilePath));
File descFile=new File(descFilePath);
assertTrue(descFile.exists());
//3、Drag And Drop
driver.get("https://www.casa.com/login.qs?returnurl=/StyleBoard/Detail.qs?StyleBoardId=9468");
driver.findElement(By.id("emailTextBox")).sendKeys("[email protected]");
driver.findElement(By.id("PwdTextBox_Security")).sendKeys("abc123");
driver.findElement(By.id("SignInButton")).click();
Thread.sleep(2000);
WebElement source1=driver.findElement(By.xpath("//div[@id='SBProductBox1']/div/a/img"));
WebElement target1=driver.findElement(By.xpath("//div[contains(@class,'SBDrag') and child::div[@id='SBProductBox2']]"));
Actions actions=new Actions(driver);
actions.dragAndDrop(source1, target1).perform();
Thread.sleep(2000);
WebElement source2=driver.findElement(By.xpath("//div[@id='SBProductBox2']/div/a/img"));
WebElement target2=driver.findElement(By.xpath("//div[contains(@class,'SBDrag') and child::div[@id='SBProductBox1']]"));
actions.dragAndDrop(source2, target2).perform();
}
public void tearDown(){
driver.quit();
}
}
dragAndDrop ToObject(locatofObject ToBeDragged、locatofDragDestination Object)
dragAndDrop(locator,movements String) //movements String-offset in pixels from the current location to which the element shuld be moved,e.g.「+70、-300」
dragAndDrop(Point,Point)//Point point=driver.findElement(locator).get Location() get(x,y)