0

私はSeleniumを初めて使用しています。次のコードを書いてアラートテキストを印刷し、アラートを受け取ります。私は例外次取得FIREFOXドライバと実行に関する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(); 
} 

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 ...

すべてのヘルプは、次のようになります。

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

クロームドライバで実行するには、私は、例外の下に取得します感知できる。

答えて

1

は、Firefoxの場合はセレン用webdriverをバージョンでの問題のように思えますChromeのChromedriverバージョンセレンの最新ベータ版とクロームの最新のクロムドライバをダウンロードして適用しました。今はうまく動作します。

0

最新のMozilla Firefoxを起動するには、download latest geckodriver executable、次にfollow 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 2回を切り替えてから受け入れる必要はありません。この両方の作業は、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

はい。依然として同じエラー –

関連する問題