2017-07-19 11 views
3

Firefoxの場所のアラートを閉じることができません。店舗ロケータをクリックすると、Firefoxは場所の警告を開きます。 「許可しない」をクリックします。私はセレンのWebドライバで警告ボックスを処理する方法を書くことを知っています。しかしここで私はアラートをクリックすることができません。selenium webdirverでfirefox 'share location'アラートを解除する方法

package toysrus; 

import java.util.concurrent.TimeUnit; 

import org.openqa.selenium.Alert; 
import org.openqa.selenium.By; 
import org.openqa.selenium.NoAlertPresentException; 
import org.openqa.selenium.UnexpectedAlertBehaviour; 
import org.openqa.selenium.UnhandledAlertException; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.chrome.ChromeDriver; 
import org.openqa.selenium.firefox.FirefoxDriver; 
import org.openqa.selenium.remote.CapabilityType; 
import org.openqa.selenium.remote.DesiredCapabilities; 
import org.testng.annotations.Test; 

public class Toysrus { 
    public WebDriver driver; 

@Test(priority=1) 
public void firefox() throws InterruptedException 
{  
    System.setProperty("webdriver.gecko.driver","C:/Users/naveenkumar.d/Downloads/geckodriver-v0.17.0-win64/geckodriver.exe"); 
     driver=new FirefoxDriver(); 
} 


@Test(priority=2) 
public void urlaccess() 
{ 
    String URL="http://m.toysrus.com/?TRU=1"; 
    driver.get(URL); 
} 

@Test(priority=3) 
public void menucontainner() 
{ 
    driver.findElement(By.id("sk_menu_icon_container")).click();  
} 

@Test(priority=3) 
public void storeloocator() throws InterruptedException 
{ 
    driver.findElement(By.name("storelocator")).click(); 
    Thread.sleep(5000); 
    Alert alert = driver.switchTo().alert(); 
    alert.dismiss(); 
} 
+0

@Before方法でドライバの初期化時にこのコードを置くことをお勧めしますが、キャンセルボタン '' 'driver.switchTo()をクリックしてthis- 1を試してみました.alert()。dismiss(); '' ' 2.アラートの[OK]ボタンをクリックします。 '' 'driver.switchTo()。alert()。accept();' '' –

+0

いいえ動作していません。 –

答えて

0

場所を共有する権限はアラートではありません(少なくともウェブブラウザではない)。それは能力です。したがって、その機能をオフにするのが最善の方法です。私の答えはgeolocation postです。基本的にはあなたのドライバのためのDesiredCapabilitiesを設定する必要があります。

DesiredCapabilities caps = new DesiredCapabilities(); 
caps.setBrowserName("firefox"); 
caps.setCapability("locationContextEnabled", false); 

driver = new RemoteWebDriver(new URL(URL),caps); 

//continue the rest of your test and remove the code on Alert 

これでも表示からプロンプトを防ぐことができます。

サイドノート:私の代わりに@Test.

関連する問題