2

메타 Geckodriver를 사용하여 클릭에 닫는 경우 WebElement.click는() 교수형에 처해지고 있습니다 : -셀레늄 FirefoxDriver - 창

  • 셀레늄 3.3.1
  • 파이어 폭스 v52.0.1 (32 비트)
  • Geckodriver의 v0.15.0 (32 비트)
  • 윈도우 10
  • 자바 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> 
    

셀레늄 단계 : -

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. 

질문 : - 클릭 이벤트가 ChromeDriver를 사용 chrome에서 잘 작동하고있는 동안 FirefoxDriver를 사용 firefox 현재 창을 닫으려고하는 경우에 WebElement.click()가이 경우에 교수형에 처해지고 왜 .로 내가 마지막 줄을 사용하고있는 경우 : - : - 주

((JavascriptExecutor)driver).executeScript("arguments[0].click()", driver.findElement(By.id("close"))); 

이 줄을 클릭하여 수행 한 후도 교수형에 처해지고 있습니다.

누구든지 나를 제안 해주십시오. 어떻게이 문제를 해결할 수 있습니까? ("닫기"를 클릭 한 후) 끝에 린네 다음

+0

하지만 셀 륨 코드에서 newWindow.html을 어디에서 사용하고 있습니까? – kushal

+0

@kushal ツ'mainWindow.html' 내부에서 사용하고'Open Window' 버튼을 클릭하면 새 창이 열립니다. 고마워 .. :) –

+0

@Saurabh Gaur 당신은 어떤 해결책을 찾았습니까? 나는 똑같은 문제가있다 – BzH

답변

-1

추가 : 그것은 초점이 있기 때문에

driver.switchTo().window(curWindowHandle); //switching to mainWindow.htm 

FF 아마 응답은 더 이상이없는 창에 아직도있다.

+0

내가 교수형에 처해 있다는 말은 클릭이 응답을 더 이상 나타내지 않는다는 것을 의미한다. 그러면 어떻게 윈도우를 전환하는 코드의 다음 줄을 실행할 수 있는가? ?? 당신의 대답은 나를 위해 도움이되지 않습니다. .. thanks .. :) –

+0

물론, 나는 여기에 게시하기 전에 내 목표에 노력했다. – kushal

+0

같은 것을 시도해 봤어? – kushal