標籤:資訊 nap log find water img strong str switch
最近在用webdriver進行爬蟲的時候,遇到了網站存在iframe的情況,處理了好久沒有解決,後來發現原來webdriver內建處理方法,汗顏。。
1、iFrame有ID 或者 name的情況
//進入id="frame1"的frame中,定位id="div1"的div和id="input1"的輸入框。
dr.switchTo().frame("frame1");
dr.findElement(By.id("div1"));
dr.findElement(By.id("input1"))
2、如果一個iFrame既沒有id,也沒有name,通用情況
// 定位frame位置,並選取frame(通過xpath來進行定位)
WebElement frame=driver.findElement(By.xpath( "/html/body/div[2]/div[8]/div[2]/div[3]/div/div[2]/div/iframe" ));
driver.switchTo().frame(frame);
3、跳出iFrame
//跳出frame,進入default content;重新置放id="id1"的div
dr.switchTo().defaultContent();
dr.findElement(By.id("id1"))
4、如果處理嵌套Iframe
業務情境: 定位“申請產品”下拉框,然後選擇值操作:
頁面控制項元素如所示:
從資訊來看:
第一個 Iframe 裡面寫的是 申請資訊 頁簽 第二個Iframe 裡面寫的是 申請產品 借款用途等等內容
那下面如何來進行定位呢
一層一層來跳進Iframe中 退出是也一層一層進行
driver.switchTo().frame("cont_right_show");
driver.switchTo().frame("addLoanApp2");
WebDriver中如何處理Iframe 及 嵌套Iframe