2016-06-17 2 views
1

Selenium Webdriverを使用して、ログイン後にfbページを開こうとしました。ログインすると、次のようなポップアップボックスが表示されます。 "通知を表示する
許可とブロック ""ボタンを選択します。スレッド "main"の例外org.openqa.selenium.NoAlertPresentException:no alert open

私はスレッド "メイン" org.openqa.selenium.NoAlertPresentExceptionで

例外としてエラーメッセージが表示されました:助けてください

開いていない警告。ここで

は、私が書いたコードです:

System.setProperty("webdriver.chrome.driver","C:\\Users\\ABCD\\Desktop\\chromedRiver.exe"); 
WebDriver driver=new ChromeDriver(); 
driver.get("http://www.facebook.com");  
driver.findElement(By.xpath(".//*[@id='email']")).sendKeys("xxx"); 
driver.findElement(By.xpath(".//*[@id='pass']")).sendKeys("xxx"); 
driver.findElement(By.xpath(".//*[@id='u_0_m']")).click(); 
Thread.sleep(2000); 
Alert alert=driver.switchTo().alert(); 
String msg= alert.getText(); 
System.out.println(msg); 
Thread.sleep(2000); 
alert.accept(); 
+0

iframeである必要がありますネイティブアラートではありません。 フレームに切り替えて、必要なオプションをクリックする必要があります – Zach

+0

実際にはブラウザの通知ですが、DOMの一部ではありません – iomv

答えて

0

ザックにより述べたようにそれは警告ではありません、それはブラウザの通知で、あなたのケースであなただけのスペースキーを送信することにより、許可ボタンを押すことができますJavaでRobotクラスを使用して:

Robot robot = new Robot(); 
robot.keyPress(KeyEvent.VK_SPACE); 
robot.keyRelease(KeyEvent.VK_SPACE); 

ことだから、コードは次のようになります。

System.setProperty("webdriver.chrome.driver","C:\\Users\\ABCD\\Desktop\\chromedRiver.exe"); 
WebDriver driver=new ChromeDriver(); 
driver.get("http://www.facebook.com");  
driver.findElement(By.xpath(".//*[@id='email']")).sendKeys("xxx"); 
driver.findElement(By.xpath(".//*[@id='pass']")).sendKeys("xxx"); 
driver.findElement(By.xpath(".//*[@id='u_0_m']")).click(); 
    Thread.sleep(4000); 
    Robot robot = new Robot(); 
    robot.keyPress(KeyEvent.VK_SPACE); 
    robot.keyRelease(KeyEvent.VK_SPACE); 
Thread.sleep(2000); 

あなたがしようとしていたときに通知メッセージを取得する方法があるかどうかはわかりません。

+0

解決策をお寄せいただきありがとうございます。 – Nivi

関連する問題