2016-04-29 47 views
0

自動ツールを使用せずにローカルからファイルをアップロードしたい。だから、私はAction eventを使ってブラウズボタンをクリックした。私は、次のコードでsendKeysを使用してファイルのパスを送ります:私は"org.openqa.selenium.UnhandledAlertException: Modal dialog present: "エラーを取得していますorg.openqa.selenium.UnhandledAlertException:モーダルダイアログが存在する:

"driver.findElement(By.xpath("//input[@type='file']")).sendKeys("path of file");" 

私はこの例外を処理できませんでした。

誰もがこれを行うに私を助けることができるしてください...

+1

私はそこにポップアップがあり、sendkeysの前にこれを閉じる必要があると思います。 – noor

+0

要素が入力されることがあります。試してみてください。)driver.manage()。timeouts()。implicitlyWait(60、TimeUnit.SECONDS); (または)b) WebElement要素= driver.findElement(By.id( "ELEMENT_ID")); wait.until(ExpectedConditions.visibilityOf(element)); – AVA

答えて

0

あなたが鍵を送信する前に取得しているアラートを閉じる必要があります。あなたはそれをこのように行うことができます。

Alert alert = driver.switchTo().alert(); 
// Prints text and closes alert 
System.out.println(alert.getText()); 
alert.accept(); // or alert.dismiss(); 

またはあなたがちょうど

alert.accept(); 

EDIT

あなたがこれを行うことができます別の方法を行うことができますメッセージを必要としない場合に、ラップでtry-catch内のコード:

try{ 
    driver.findElement(By.xpath("//input[@type='file']")).sendKeys("path of file"); 
} catch(UnhandledAlertException e){ 
    Alert alert = driver.switchTo().alert(); 
    alert.accept(); 
    driver.findElement(By.xpath("//input[@type='file']")).sendKeys("path of file"); 
} 

これは明らかに汚いですあなたが上のコードがあなたのために働くかどうか確認するためにそれを使用することができます。それから、あなたの必要に応じて自分でそれを掃除することができます。

+0

こんにちはAurasphere、お返事ありがとうございました。私はこのアラートも試しましたが、処理していません。 "警告がありません"などのエラーメッセージがコンソールに表示されています。 – sajju

+0

同じエラーが「スレッドのメイン」org.openqa .selenium.UnhandledAlertException:モーダルダイアログが存在する: " – sajju

+0

これは非常に奇妙です。私は問題があなたのアラートを閉じるたびに別のものがポップアップすると思う。これを手動で確認できますか?また、あなたはあなたが得ているアラートについての詳細情報を報告することができますか?ありがとうございました。 – Aurasphere

関連する問題