1. 程式人生 > >Java+selenium+firefox專案搭建(二)

Java+selenium+firefox專案搭建(二)

selenium中方法的使用

1.使用webdriver開啟一個瀏覽器並指定url:

由於firefox是支援selenium比較成熟的一個瀏覽器,所以使用firefox作為程式碼支撐,其他瀏覽器可做成配置項,便於後期呼叫#####
public static String BrowserPath = "E:\\eclipse\\Workspace\\firefox.exe";

System.setProperty("webdriver.firefox.bin", BrowserPath);
//指定火狐瀏覽器路徑;

WebDriver driver_test01 = new FirefoxDriver();
//開啟火狐瀏覽器;
driver_test01.get("http://www.csdn.net/"); //指定瀏覽器跳轉的Url;

2.視窗最大化

driver_test01.manage().window().maximize();

3.等待時間

selenium中的等待時間在官方API中分為顯性等待和隱性等待,但是限行等待由於我沒用過,所以只做簡單介紹
3.1 顯性等待
就是明確的要等到某個元素的出現或者是某個元素的可點選等條件,等不到,就一直等,除非在規定的時間之內都沒找到,那麼就跳出Exception。
//官方API中的原始碼,若感興趣可自己學習
WebDriver driver = new
FirefoxDriver(); driver.get( www.baidu.com ); WebElement e = ( new WebDriverWait( driver, 10 )) .until( new ExpectedCondition< WebElement>(){ @Override public WebElement apply( WebDriver d) { return d.findElement( By.id( "id locator" )); } } );
3.2 隱性等待
就是針對wendriver每次執行命令的最長時間,但是此種方法僅指定了等待的時間,沒有針對單一元素。
driver_test01.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
//若執行程式碼過程中找不到下一個元素,最長等待時間為20秒,過後及超時;
3.3 執行緒等待
使整個指令碼執行緒強制停止,適當新增在指令碼中可以確保指令碼的穩定性。
Thread.sleep(2000);
//可根據不同頁面與不同電腦網路情況適當新增保證程式碼執行的穩定性,時間單位“毫秒”

4.對於元素的定位和操作

命令webdriver定位頁面元素並進行操作
driver_test01.findElement(By.id(id)).click;
driver_test01.findElement(By.id(id)).sendkey();
//定位屬性為“id”的元素並點選或輸入內容
driver_test01.findElement(By.name(id)).click;
driver_test01.findElement(By.name(name)).sendkey();
//定位屬性為“name”的元素並點選或輸入內容
driver_test01.findElement(By.xpath(xpath)).click;
driver_test01.findElement(By.xpath(xpath)).sendkey();
//定位屬性為“xpath”的元素並點選或輸入內容
driver_test01.findElement(By.linkText(linkText)).click;
//定位屬性為“linkText”的元素並點選或輸入內容,使用linkText來定位元素時,要定位的linkText在此頁面有且僅有一個,否則程式碼會丟擲異常無法找打元素資訊