轉自:http://www.javashuo.com/article/p-qcypaefk-du.htmlhtml
1. iframe 的處理瀏覽器
查找元素必須在對應的 ifarme 中查找,不然是找不到的編輯器
// 傳入參數爲 frame 的序號,從0開始 driver.switchTo().frame(Int index); // 傳入參數爲 frame 的 ID 或者 Name 屬性 driver.switchTo().frame(String nameOrId); // 傳入參數爲 frameElement driver.switchTo().frame(WebElement frameElement); // 切換回父級 driver.switchTo().defaultContent();
2. 彈出窗口的處理url
// 只彈出一個窗口的狀況 , 不須要傳入任何參數 , 直接切換到下一個窗口 // 獲得當前窗口的句柄 String currentWindow = driver.getWindowHandle(); // 獲得全部窗口的句柄 Set<String> handles = driver.getWindowHandles(); Iterator<String> it = handles.iterator(); while (it.hasNext()) { String handle = it.next(); if (currentWindow.equals(handle)) continue; WebDriver window = driver.switchTo().window(handle); log.info("title,url = " + window.getTitle() + "," + window.getCurrentUrl()); }
// 切換到指定的窗口, 遍歷最多 10 次, 循環是爲了提升穩定性, 個別瀏覽器下有的時候一次遍歷找不到 ( String windowTitle ) for (int a = 0; a < =9; a++) { Set<String> windowHandles = driver.getWindowHandles(); for (String handler : windowHandles) { driver.switchTo().window(handler); String title = driver.getTitle(); if (windowTitle.equals(title)) { a = 10; break; } } }
3. 處理對話框 alert\confirm\promptspa
driver.switchTo().alert()能夠獲得alert\confirm\prompt 對話框的對象,而後運用其方法對它進行操做。對話框操做的主要方法有:code
4. 富文本編輯器htm
1 // 富文本編輯框的處理 2 driver.switchTo().frame("nameOrId"); // 定位到富文本輸入框所在的 frame 3 JavascriptExecutor js = (JavascriptExecutor) driver; 4 js.executeScript("document.body.innerHTML='ABCDEFG'"); // 經過 js 賦值進去