selenium學習(3)常用API
- 2020 年 1 月 10 日
- 筆記
查找元素
使用操作如何找到頁面元素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文檔