2015-07-06 3 views
0

во всех примерах Селена трески, если я хочу открытого WebDriver конкретной страницы сайта ее идет как этогооткрывать новые окна URL, не зная URL Селен WebDriver

`chromeDriver.Navigate() GoToUrl (SiteName).

, но теперь у меня есть проблема, когда я нажимаю на веб-страницу, на которой я тестирую свой новый веб-сайт (3-й веб-сайт), и я не знаю URL-адрес заранее. , чтобы кто-нибудь знал, как я могу узнать, что URL на новой странице открывается?

ответ

0

У вас есть доступ к текущему URL-адресу с driver.Url.

http://seleniumhq.github.io/selenium/docs/api/dotnet/?topic=html/P_OpenQA_Selenium_Remote_RemoteWebDriver_Url.htm

+0

это не удаленный драйвер, я запускаю треску локально. –

+0

все драйверы расширяют удаленный драйвер и имеют свойство driver.Url. –

+0

в том, что вы отправили, у меня нет собственности, которая может перейти на url, не зная об этом заранее. может, я что-то упустил? –

0

Попробуйте это:

driver.get("https://stackoverflow.com"); 
Actions action = new Actions(driver); 
action.moveToElement(driver.findElement(By.xpath("//*[@id='nav-tags']"))).sendKeys(Keys.SHIFT).click().build().perform(); 

// You have opened your unknown site in a new window till now 

String currentWindowHandle = driver.getWindowHandle(); 
ArrayList <String> windowHandles = new ArrayList <String> (driver.getWindowHandles()); 
    for (int i = 0; i < windowHandles.size(); i++) { 
    if (windowHandles.get(i).equals(currentWindowHandle)) { 

     //SwitchTo new Window 
     driver.switchTo().window(windowHandles.get(i + 1)); 

     //Do your stuff like get URL that tou need 
     System.out.println(driver.getCurrentUrl()); 
     System.out.println(driver.getTitle()); 

     //Close the newly opened window 
     driver.close(); 
    } 
} 
driver.switchTo().window(currentWindowHandle); 

Здесь откроется окно тегов в новом окне и получить URL этого окна, предполагая, что это то, что вы хотите.

Смежные вопросы