4. 把底層框架中1.0的方法修改為2.0的,以下做一個(gè)對(duì)比
方法 | Selenium1.0 | Selenium2.0 |
打開頁(yè)面 | Selenium.open(String url); | Driver.get(String url); |
點(diǎn)擊元素 | Selenium.click(String arg0); | driver.findElement(By).click(); |
輸入框 |
selenium.type(String arg0, String arg1); arg0為元素定位,arg1為輸入的值, 再次type時(shí)會(huì)清空了輸入 |
WebElement element = driver.findElement(By); element.sendkeys(arg0); 需要使用element.clear();來清空內(nèi)容。 |
下拉選擇框 |
Selenium.select(String arg0, String arg1); arg0為元素定位,arg1為選擇的值 |
找到下拉框元素: Select select=new Select(driver.findElement(By)); 選擇對(duì)應(yīng)的選擇項(xiàng): select.selectByVisibleText(String text); //通過文本選擇 select.selectByValue(String value); //通過value選擇 select.selectByIndex(int index) //通過序號(hào)選擇 |
單選多選框 |
選擇: selenium.check(String locator); 不選: selenium.check(String locator); 判斷是否選擇: Boolean isChecked(String locator); |
定位元素: WebElement element =driver.findElement(By); 點(diǎn)擊:Element.click(); 清除:Element.clear(); 判斷是否選擇: Boolean isSelected(); 判斷是否可選擇:Boolean isEnabled(); |
獲取文本內(nèi)容 | selenium.getText(String locator); |
WebElement element =driver.findElement(By); element.getText(); |
彈出框 |
Selenium.chooseOkOnNextConfirmation(); Selenium.chooseCancelOnNextConfirmation(); Selenium.getConfirmation(); 該方法我使用后沒有成功,所以一直很糾結(jié) |
Alert alert = driver.switchTo().alert(); alert.accept(); //點(diǎn)擊OK alert.dismiss(); //點(diǎn)擊cancel alert.getText(); //獲取彈出框文本 2.0很好的處理了彈出框問題。 |
frame | 1.0中對(duì)frame沒有特殊處理跟其他元素一樣 |
2.0中需要在frame與defaultContent切換后才能定位, 否則會(huì)出現(xiàn)找不到元素的問題 driver.switchTo().defaultContent(); //切換到默認(rèn)頁(yè)面內(nèi)容 driver.switchTo().frame(WebElement frameElement); //切換到對(duì)應(yīng)的frame中 |
頁(yè)面等待 |
selenium.waitForPageToLoad(String arg0); 直接有方法實(shí)現(xiàn)頁(yè)面加載 |
driver.manage().timeouts().pageLoadTimeout(30, TimeUnit.SECONDS); //頁(yè)面加載等待時(shí)間 driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); //定位元素等待時(shí)間 driver.manage().timeouts().setScriptTimeout(30, TimeUnit.SECONDS); //異步加載等待時(shí)間 但是只是在firefox上才能起作用,其他瀏覽器需要 自己實(shí)現(xiàn)對(duì)應(yīng)的方法。 |
隱藏元素 | 在1.0中直接可以操作,即使該元素的style為”display:none” |
如果不顯示的元素是無(wú)法定位的,那需要觸發(fā)mouseover 之后才能定位。 |
以上表格中提到的如何通過By定位元素的內(nèi)容可以參考以下文章:
http://selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/selenium/By.html