生活随笔
收集整理的這篇文章主要介紹了
关于getCurrentUrl的获取问题
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
2019獨角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>
代碼如下
package?selenium_Test;
import?org.openqa.selenium.*;
import?org.openqa.selenium.firefox.*;
import?org.openqa.selenium.WebDriver.*;
public?class?Collection?{public?static?void?main?(String?args[])?throws?Exception{System.setProperty("webdriver.firefox.bin",?"E:\\software\\firefox\\firefox.exe");WebDriver?driver=new?FirefoxDriver();driver.navigate().to("http://www.jd.com");????????System.out.println("檢查是否進(jìn)入京東首頁:"+driver.getCurrentUrl().equals("http://www.jd.com/"));driver.findElement(By.id("key")).sendKeys("2269");driver.findElement(By.className("button")).click();System.out.println("檢查搜索頁面是否跳轉(zhuǎn)正確:"+driver.getCurrentUrl().equals("http://search.jd.com/Search?keyword=2269&enc=utf-8"));driver.findElement(By.partialLinkText("AOC?I2269VW?21.5英寸LED背光超窄邊框IPS廣視角液晶顯示器(銀色)")).click();System.out.println("檢查是否進(jìn)入之前選擇的商品頁面:"+driver.getCurrentUrl().equals("http://item.jd.com/845638.html"));
//????????System.out.println("檢查商品價格是否準(zhǔn)確:"+driver.findElement(By.id("jd-price]")).getText().contains("¥869.00"));driver.quit();}
}
執(zhí)行結(jié)果:
檢查是否進(jìn)入京東首頁:true
檢查搜索頁面是否跳轉(zhuǎn)正確:true
檢查是否進(jìn)入之前選擇的商品頁面:false
問題描述請看博客摘要
解決方案一(他人給予,科學(xué)的方法):
package?com.TestNG.Selenium;import?java.util.Iterator;
import?java.util.Set;import?org.openqa.selenium.*;?
import?org.openqa.selenium.firefox.*;?
import?org.openqa.selenium.WebDriver.*;?
public?class?a23?{?public?static?void?main?(String?args[])?throws?Exception????{?????????System.setProperty("webdriver.firefox.bin",?"D:\\Program?Files?(x86)\\Mozilla?Firefox\\firefox.exe");????????WebDriver?driver=new?FirefoxDriver();????????driver.navigate().to("http://www.jd.com?");????????????System.out.println("檢查是否進(jìn)入京東首頁:"+driver.getCurrentUrl().equals("http://www.jd.com/"));???????driver.findElement(By.id("key")).sendKeys("2269");??????driver.findElement(By.className("button")).click();?????System.out.println("檢查搜索頁面是否跳轉(zhuǎn)正確:"+driver.getCurrentUrl().equals("http://search.jd.com/Search?keyword=2269&enc=utf-8"));?????driver.findElement(By.partialLinkText("AOC?I2269VW?21.5英寸LED背光超窄邊框IPS廣視角液晶顯示器(銀色)")).click();?Thread.sleep(2000);driver=switchWindow(driver,"【AOCI2269VW】AOC?I2269VW?21.5英寸LED背光超窄邊框IPS廣視角液晶顯示器(銀色)【行情?報價?價格?評測】-京東");Thread.sleep(5000);String?url1=driver.getCurrentUrl();System.out.println(url1);System.out.println("檢查是否進(jìn)入之前選擇的商品頁面:"+driver.getCurrentUrl().equals("http://item.jd.com/845638.html"));?//????????System.out.println("檢查商品價格是否準(zhǔn)確:"+driver.findElement(By.id("jd-price]")).getText().contains("¥869.00"));?????????????????driver.quit();???????????????}?}?}//使用這個。?函數(shù)是:switch?windowprivate?static?WebDriver?switchWindow(WebDriver?dr,String?winTitle){String?currentHandle?=dr.getWindowHandle();//獲取當(dāng)前瀏覽器窗口標(biāo)識Set<String>?handles=dr.getWindowHandles();for(String?handle:handles){??//獲取所有瀏覽器窗口標(biāo)識if(handle.equals(currentHandle))continue;else{dr.switchTo().window(handle);if(dr.getTitle().contains(winTitle)){break;}elsecontinue;}}?????????????return?dr;??}??
}
執(zhí)行結(jié)果如下:
檢查是否進(jìn)入京東首頁:true
檢查搜索頁面是否跳轉(zhuǎn)正確:true
http://item.jd.com/845638.html
檢查是否進(jìn)入之前選擇的商品頁面:true
解決方案二(自己瞎弄的,居然還成功了):
package?com.TestNG.Selenium;import?org.openqa.selenium.*;
import?org.openqa.selenium.firefox.*;
import?org.openqa.selenium.WebDriver.*;
public?class?Collection?{public?static?void?main?(String?args[])?throws?Exception{System.setProperty("webdriver.firefox.bin",?"D:\\軟件\\瀏覽器\\firefox\\firefox.exe");WebDriver?driver=new?FirefoxDriver();driver.navigate().to("http://www.jd.com");????????System.out.println("檢查是否進(jìn)入京東首頁:"+driver.getCurrentUrl().equals("http://www.jd.com/"));driver.findElement(By.id("key")).sendKeys("2269");driver.findElement(By.className("button")).click();System.out.println("檢查搜索頁面是否跳轉(zhuǎn)正確:"+"http://search.jd.com/Search?keyword=2269&enc=utf-8".equals(driver.getCurrentUrl()));//重點在這里,跑一邊,句柄無法捕捉,但是跑2遍就會被捕捉(看來系統(tǒng)也是關(guān)愛努力的人的,玩笑。。)driver.findElement(By.partialLinkText("AOC?I2269VW?21.5英寸LED背光超窄邊框IPS廣視角液晶顯示器(銀色)")).click();driver.findElement(By.partialLinkText("AOC?I2269VW?21.5英寸LED背光超窄邊框IPS廣視角液晶顯示器(銀色)")).click();String[]?handle=new?String[driver.getWindowHandles().size()];driver.getWindowHandles().toArray(handle);System.out.println("打開了"+handle.length+"個網(wǎng)頁");driver.switchTo().window(handle[2]);System.out.println("檢查是否進(jìn)入之前選擇的商品頁面:"+driver.getCurrentUrl().equals("http://item.jd.com/845638.html"));driver.quit();}
}
執(zhí)行結(jié)果如下:
檢查是否進(jìn)入京東首頁:true
檢查搜索頁面是否跳轉(zhuǎn)正確:true
打開了3個網(wǎng)頁
檢查是否進(jìn)入之前選擇的商品頁面:true
良言:希望眾位能使用第一種方法,畢竟第二張是我瞎弄的,我不能保證將來不出錯,而第一種,目前,大家都在使用。
轉(zhuǎn)載于:https://my.oschina.net/Early20/blog/363303
總結(jié)
以上是生活随笔為你收集整理的关于getCurrentUrl的获取问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。