天天看點

selenium學習(3)常用API

查找元素

使用操作如何找到頁面元素Webdriver的findElement方法可以用來找到頁面的某個元素,最常用的方法是用id和name查找。下面介紹幾種比較常用的方法。

By ID假設頁面寫成這樣:

<input type=”text” name=”userName”  id=”user” />

那麼可以這樣找到頁面的元素:

通過id查找:

WebElement element = driver.findElement(By.id(“user”));

By Name或通過name查找:

WebElement element = driver.findElement(By.name(“userName”));

By XPATH或通過xpath查找:

WebElement element =driver.findElement(By.xpath(“//input[@id='user']“));

By Class Name假設頁面寫成這樣:

<div class=”top”><span>Head</span></div><divclass=”top”><span>HeadName</span></div>

可以通過這樣查找頁面元素:

List<WebElement>top= driver.findElements(By.className(“top”));

By Link Text假設頁面元素寫成這樣:

<a href=”http://www.baidu.com”>baidu</a>>

那麼可以通過這樣查找:

WebElement baidu=driver.findElement(By.linkText(“baidu”));

輸入框傳值

輸入框(text field or textarea)   找到輸入框元素:

WebElement element = driver.findElement(By.id(“passwd-id”));

在輸入框中輸入内容:

element.sendKeys(“test”);

将輸入框清空:

element.clear();

擷取輸入框的文本内容:

element.getText();

下拉菜單

下拉選擇框(Select)找到下拉選擇框的元素:

Select select = new Select(driver.findElement(By.id(“select”)));

選擇對應的選擇項:select.selectByVisibleText(“testName”);

select.selectByValue(“name”);

不選擇對應的選擇項:

select.deselectAll();

select.deselectByValue(“name”);

select.deselectByVisibleText(“姓名”);

或者擷取選擇項的值:

select.getAllSelectedOptions();

select.getFirstSelectedOption();

單選框

單選項(Radio Button)找到單選框元素:

WebElement sex=driver.findElement(By.id(“sex”));

選擇某個單選項:

sex.click();

清空某個單選項:

sex.clear();

判斷某個單選項是否已經被選擇:

sex.isSelected();

複選框

多選項(checkbox)多選項的操作和單選的差不多:

WebElement area =driver.findElement(By.id(“area .”));

area .click();

area .clear();

area .isSelected();

area .isEnabled();

按鈕

按鈕(button)找到按鈕元素:

WebElement saveButton = driver.findElement(By.id(“save”));

點選按鈕:

saveButton.click();

判斷按鈕是否enable:

saveButton.isEnabled ();

左右選擇框也就是左邊是可供選擇項,選擇後移動到右邊的框中,反之亦然。例如:

Select name= new Select(driver.findElement(By.id(“name”)));

name.selectByVisibleText(“hellen”);

WebElement addName=driver.findElement(By.id(“addButton”));

addName.click();

彈出框

彈出對話框(Popup dialogs)Alert alert = driver.switchTo().alert();

alert.accept();

alert.dismiss();

alert.getText();

表單送出

表單(Form)Form中的元素的操作和其它的元素操作一樣,對元素操作完成後對表單的送出可以:

WebElement sub= driver.findElement(By.id(“sub”));

sub.click();

sub.submit();//隻适合于表單的送出

上傳附件

上傳檔案 (Upload File)上傳檔案的元素操作:

WebElement picFile = driver.findElement(By.id(“picFile ”));

String filePath = “d:\\report\\600x600x0.jpg”;

picFile .sendKeys(filePath);

多視窗切換

Windows 或 Frames之間的切換

首先切換到預設的frame

driver.switchTo().defaultContent();

切換到某個frame:

driver.switchTo().frame(“leftFrame”);

從一個frame切換到另一個frame:

driver.switchTo().frame(“mainFrame”);

切換到某個window:

driver.switchTo().window(“windowName”);

導航

導航 (Navigationand History)打開一個新的頁面:

driver.navigate().to(“http://www.baidu.com”);

通過曆史導航傳回原頁面:

driver.navigate().forward();

driver.navigate().back();

以上為簡單介紹了一下webDriver中常遇到的操作,有問題可以查閱官方的API文檔