本人在學習使用selenium2java的過程中,突然想把知乎首頁的推薦內容放到本地或者把一個問題的優秀回答整理一下。可以知乎登錄時那個選中倒立的漢字的驗證碼不勝其煩,後來想到用第三方登錄繞過了知乎帳號登錄。試了一下,感覺效果很不錯,分享一下,供大家參考。
driver.get("https://www.zhihu.com/");
findElementByTextAndClick(driver, "登錄");//點擊知乎登錄
findElementByXpathAndClick(driver, "html/body/div[1]/div/div[2]/div[2]/form/div[4]/span");//點擊第三方帳號登錄
String homehandle = driver.getWindowHandle();//獲取當前handle
findElementByClassNameAndClick(driver, "sprite-index-icon-qq");//點擊QQ登錄
Set<String> handles = driver.getWindowHandles();//獲取當前全部handle
for(String handle : handles){//遍歷獲取新窗口handle
if (handle.equals(homehandle) == false){
driver.switchTo().window(handle);//跳轉新頁面
driver.manage().window().maximize();//最大化
}
}
driver.switchTo().frame("ptlogin_iframe");//切入頁面iframe
findElementByIdAndClick(driver, "img_out_1009329307");//選擇自己QQ登錄
for(String handle : handles){//回到知乎頁面
if (handle.equals(homehandle) == true){
driver.switchTo().window(handle);//回到知乎
driver.manage().window().maximize();//最大化
}
}
比較簡單,中間有個iframe,沒其他難點了。