Мета:-
- Селен 3.3.1
- Firefox версии 52.0.1 (32-разрядная версия)
- Geckodriver v0.15.0 (32-разрядная версия)
- Windows 10
- Java v1.8_121 (32-разрядная версия)
Я подготовил два .html
, чтобы воспроизвести эту проблему.
mainWindow.html
<title>Main Window</title> <input type="submit" value ="Open Window" id="open" onclick="openWindow()"> <script> function openWindow() { window.open("newWindow.html", "", "width=500,height=500"); }
newWindow.html
<title>New Window</title> <input type="submit" value="Close Window" id="close" onclick="closeWindow()"> <script> function closeWindow() { window.close(); } </script>
Selenium шаги для воспроизведения: -
System.setProperty("webdriver.gecko.driver", "geckodriverWin32-0.15.0.exe");
WebDriver driver = new FirefoxDriver();
driver.get("file:///mainWindow.html");
driver.manage().window().maximize();
driver.findElement(By.id("open")).click(); //This works fine
String curWindowHandle = driver.getWindowHandle();
Set<String> winHandles = driver.getWindowHandles();
for(String win : winHandles) {
if (!curWindowHandle.toString().equals(win)) {
driver.switchTo().window(win);
}
}
driver.findElement(By.id("close")).click(); //This click is getting hanged in infinity loop and my test case is not responded. No next line executed after this line.
Вопрос :- Почему WebElement.click()
зависает в том случае, если событие клика собирается закрыть текущее окно в firefox
с помощью FirefoxDriver
, в то время как на chrome
с помощью ChromeDriver
оно работает нормально.
Примечание:- Если я использую последнюю строку как:-
((JavascriptExecutor)driver).executeScript("arguments[0].click()", driver.findElement(By.id("close")));
После выполнения щелчка эта строка также зависает.
Пожалуйста, кто-нибудь предложит мне, как решить эту проблему?
mainWindow.html
и открывает новое окно при нажатии на кнопкуOpen Window
. Спасибо..:) - person Saurabh Gaur   schedule 28.03.2017