1 準備工做html
咱們使用xpath進行元素定位,因此須要安裝firefox的兩個插件,幫助編寫xpathjava
在編寫xpath的時候,須要查看html代碼,因此須要理解html知識,能夠到http://www.w3school.com.cn/去自學ios
也能夠到http://www.w3school.com.cn/學習瀏覽器
2 通常對象識別及操做代碼post
package com.selenium.test; import java.util.List; import java.util.Set; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.interactions.Actions; public class Test2 { public static void main(String[] args) throws InterruptedException { WebDriver driver = new FirefoxDriver(); //啓動火狐瀏覽器 driver.manage().window().maximize(); //最大化瀏覽器 driver.navigate().to("http://www.baidu.com/"); //導航到百度 //登陸 - 連接 WebElement linkLogin = driver.findElement(By.xpath("//div[@id='u1']/a[text()='登陸']")); linkLogin.click(); //等待2秒 Thread.sleep(3000); //用戶名、密碼 - 輸入框 WebElement textUsername = driver.findElement(By.xpath("//input[@id='TANGRAM__PSP_8__userName']")); textUsername.clear(); textUsername.sendKeys("栗子測試"); WebElement textPassword = driver.findElement(By.xpath("//input[@id='TANGRAM__PSP_8__password']")); textPassword.clear(); textPassword.sendKeys("2472471982"); //登陸 - 按鈕 WebElement buttonLogin = driver.findElement(By.xpath("//input[@id='TANGRAM__PSP_8__submit']")); buttonLogin.click(); //等待2秒 Thread.sleep(3000); //懸停 Actions action = new Actions(driver); WebElement linkMe = driver.findElement(By.xpath("//a[@id='s_username_top']/span")); action.moveToElement(linkMe).perform(); //帳號設置 - 連接 WebElement linkSeniorSearch = driver.findElement(By.xpath("//div[@id='s_user_name_menu']/div/a[3]")); linkSeniorSearch.click(); //帳號設置 - 窗口跳轉 String firstWindowHandle = driver.getWindowHandle(); //獲取第一個窗口句柄 Set<String> towHandles = driver.getWindowHandles(); for (String handle : towHandles) { //遍歷全部窗口句柄 System.out.println("+++" + handle); driver.switchTo().window(handle); //切換兩次,切換到第二個窗口 } //修改資料 - 連接 WebElement linkModifyData = driver.findElement(By.xpath("//div[@id='content']//a[text()='修改資料']")); linkModifyData.click(); //修改資料 - 窗口跳轉 Set<String> threeHandles = driver.getWindowHandles(); //獲取三個窗口句柄 threeHandles.removeAll(towHandles); //移除原來的兩個句柄 String thirdWindowHandle = threeHandles.iterator().next(); //剩下一個句柄 driver.switchTo().window(thirdWindowHandle); //切換到第三個窗口 //性別 - 單選(被看作一組) List<WebElement> radiosGender = driver.findElements(By.xpath("//input[@name='passport_sex']")); //定位全部單選按鈕 radiosGender.get(1).click(); //index從0開始 //血型 - 此下拉框非Select,只是樣式像 WebElement divBlood= driver.findElement(By.xpath("//div[@id='cussel1000002']/div")); divBlood.click(); WebElement linkBlood= driver.findElement(By.xpath("//div[@id='cussel1000002']//a[text()='AB']")); linkBlood.click(); //保存 - 按鈕 WebElement buttonSaveBasic = driver.findElement(By.xpath("//form[@id='profile']/child::input")); buttonSaveBasic.click(); //詳細資料 - 連接 WebElement linkDetailedInfo = driver.findElement(By.xpath("//div[@id='content']//a[text()='詳細資料']")); linkDetailedInfo.click(); //等待1秒 Thread.sleep(1000); //性格 - 多選框(被看作一組) List<WebElement> checkboxCharacter = driver.findElements(By.xpath("//form[@id='profile']/table//tr[@class='passport_character']//input")); WebElement element = checkboxCharacter.get(6); element.click(); //保存 - 按鈕 WebElement buttonSaveDetailedInfo = driver.findElement(By.xpath("//form[@id='profile']/child::input")); buttonSaveDetailedInfo.click(); //關閉當前窗口,回到第一個窗口 driver.close(); driver.switchTo().window(firstWindowHandle); } }
3 其餘對象操做及代碼學習
WebElement selectElement = driver.findElement(By.xpath("//td[@id='adv-setting-4']/select")); //先定位下拉框 Select select = new Select(selectElement); select.selectByVisibleText("最近一天");
WebElement file = driver.findElement(By.xpath("//div[@id='uploadfile']/input"));
file.sendKeys("C:\\test.txt");
JavascriptExecutor js2 = (JavascriptExecutor)driver; js2.executeScript("alert('栗子測試,QQ:2472471982')"); Alert alert = driver.switchTo().alert(); //切換到彈出窗 alert.accept();
JavascriptExecutor js = (JavascriptExecutor)driver;
js.executeScript("document.getElementById('saveButton').firstElementChild.disabled = false");
WebElement iframe = driver.findElement(By.xpath("//iframe[@name='contect']")); driver.switchTo().frame(iframe); WebElement text = driver.findElement(By.xpath("//input[@id='username']")); text.clear(); text.sendKeys("栗子測試,QQ:2472471982");
WebElement link = driver.findElement(By.xpath("//div[@id='alert']/input")); link.click(); Alert alert = driver.switchTo().alert(); //切換到彈出窗 alert.accept();
driver.navigate().back();