0

나는 Selenium을 처음 사용하고 있으며 경고 텍스트를 인쇄하고 경고를 수락하기 위해 다음 코드를 작성했습니다. 나는 예외 다음 얻을Java Selenium - Chrome과 Firefox 모두에서 경고를받을 수 없습니다.

파이어 폭스 드라이버 실행에
public class AlertPractice { 

public static void main(String[] args) throws InterruptedException { 

    WebDriver driver = new FirefoxDriver(); 
    driver.get("http://output.jsbin.com/usidix/1"); 

    driver.findElement(By.cssSelector("input[value=\"Go!\"]")).click(); 
    Thread.sleep(1000); 
    String S = driver.switchTo().alert().getText(); 
    Thread.sleep(1000); 
    driver.switchTo().alert().accept(); 

    System.out.println(S); 
    driver.close(); 
} 

:

org.openqa.selenium.firefox.NotConnectedException: Unable to connect to host 127.0.0.1 on port 7055 after 45000 ms. Firefox console output....

크롬 드라이버과 실행에 나는 예외 아래 얻을 :

Exception in thread "main" org.openqa.selenium.WebDriverException: unknown error: cannot determine loading status from unexpected alert open (Session info: chrome=53.0.2785.101) (Driver info: chromedriver=2.21.371459 ...

어떤 도움이 될 것이다 상당한.

답변

1

파이어 폭스의 경우에는 셀레늄의 Webdriver 버전에 문제처럼 보인다 Chrome 용 Chromedriver 버전 셀렌 용 최신 베타 버전과 크롬 용 최신 크롬 드라이버를 다운로드하여 적용했습니다. 이제 잘 작동합니다.

0

최신 Mozilla Firefox을 시작하려면 download latest geckodriver executablefollow this answer that how to launch latest firefox using selenium이 필요합니다.

Exception in thread "main" org.openqa.selenium.WebDriverException: unknown error: cannot determine loading status from unexpected alert open

사실은 경고 텍스트를 얻기에 Alert 두 번 전환하고 받아 들일 필요가 없습니다. Alert으로 단일 전환을 사용하여이 작업을 수행 할 수 있습니다.

더 좋은 방법의 경우, 경고 대신 다음과 같이 Thread.sleep()의 존재까지 기다려야 WebDriverWait를 사용하여 Alert를 전환하려고한다 : -

driver.findElement(By.cssSelector("input[value='Go!']")).click(); 

WebDriverWait wait = WebDriverWait(driver, 10); 
Alert alert = wait.until(ExpectedConditions.alertIsPresent()); 

String S = alert.getText(); 
System.out.println(S); 

alert.accept(); 
+0

여전히 Chromedriver에 대해 동일한 오류가 발생하고 있습니다. –

+0

그리고 Firefox는 어떻습니까 ?? 그리고 같은 오류 또는 TimeoutException ?? –

+0

예. 여전히 같은 오류 –