2015-08-14 3 views
0

Я пытаюсь переключиться во всплывающее окно, но у меня возникают проблемы с этим. Ссылка, на которую я нажимаю, - это перенаправить меня в всплывающее окно электронной почты.Переключиться на всплывающее окно с использованием Selenium

Мой код:

public String determineIfCorrectUrlOnPopUp() { 

    clickOnEmailThisSeller(); 
    for (String currentWindow: driver.getWindowHandles()) { 

     driver.switchTo().window(currentWindow); 
    } 

    System.out.println(driver.getCurrentUrl()); 
    return driver.getCurrentUrl(); 

} 

но он печатает родительского окна URL вместо всплывающего окна. Я не уверен, что я делаю неправильно?

ответ

1
public String determineIfCorrectUrlOnPopUp() { 

clickOnEmailThisSeller(); 

// Below Line in your code will switch to the current window by using for each loop 
for (String currentWindow: driver.getWindowHandles()) 
     driver.switchTo().window(currentWindow); 
{ 
    //Now you are in Popup window and you can get the pop-up window URL here 
    System.out.println(driver.getCurrentUrl()); 
    driver.close(); 
} 

System.out.println(driver.getCurrentUrl()); // This will return Parent window URL 
return driver.getCurrentUrl(); 

} 
+0

Этот продукт работал, спасибо вам большое! Я не уверен, почему моя работа не работает. – Robben

+0

Rupesh, можете ли вы объяснить свой синтаксис? Почему есть скобки после 'driver.switchTo(). Window (currentWindow);'? – Robben

+0

Я бы сказал, что внутри этой фигурной скобки нам нужно будет включить код для работы во всплывающем окне или просто так, как вы считаете, это шаблон, который мы всегда будем использовать для обработки такой ситуации. Я объясню Шаблон здесь. Пожалуйста, проверьте http://rupeshrshinde.blogspot.in/2014/11/how-to-switch-to-different-browser.html –

0

Вы пробовали

driver.switchTo().window(handle).getCurrentUrl(); 

Я не сделал много этого, но я написал небольшую функцию, которая закрывает всплывающие окна, и я использовал

driver.switchTo().window(handle).close(); 

, чтобы закрыть всплывающее окно.