我在Java中使用Selenium Webdriver。我想點擊「下一步」按鈕,從第1頁移動到2以下頁面後,得到當前的URL的代碼我有:硒在加載頁面後獲取當前URL
WebDriver driver = new FirefoxDriver();
String startURL = //a starting url;
String currentURL = null;
WebDriverWait wait = new WebDriverWait(driver, 10);
foo(driver,startURL);
/* go to next page */
if(driver.findElement(By.xpath("//*[@id='someID']")).isDisplayed()){
driver.findElement(By.xpath("//*[@id='someID']")).click();
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//*[@id='someID']")));
currentURL = driver.getCurrentUrl();
System.out.println(currentURL);
}
我有兩個隱性和顯性等待來電等待頁面在獲取當前網址之前完全加載。但是,它仍然會打印第1頁的網址(預計會是第2頁的網址)。
BTW,該文檔(現在呢?)說不要混用隱性/明確的等待,由於它使等待時間無法預測。相關引用:_WARNING:不要混合隱式和顯式等待。這樣做會導致無法預測的等待時間。例如,設置10秒的隱含等待時間和15秒的顯式等待時間,可能會導致在20秒後發生超時。_來自:http://www.seleniumhq.org/docs/04_webdriver_advanced.jsp#implicit-waits – mbafford 2017-08-01 11:27:20