2016-08-02 3 views
0

2つの異なるブラウザ(IE & FF)でアプリケーションにログインする必要があるため、クロスブラウザテストを試みました。 URLがIEに渡されるとき、私はとして「」というこのウェブサイトは推奨されません。同じリンクはFFに表示されません。以下では、私はこの文を使用する場合driver.findElement(By.id("overridelink")).click(); IEでうまく動作しますが、Firefoxではリンクが存在しないのでFirefoxで失敗します。クロスブラウザテスト

私は両方のブラウザで1つのスクリプトを実行する必要がある可能性を教えてください。以下は試しているスクリプトです

@Test 
@Parameters("browser") 
public void verifypagetitle(String browsername) { 

    if(browsername.equalsIgnoreCase("IE")) 
    { 
     System.setProperty("webdriver.ie.driver", 
       "D:\\2.53.1\\IEDriverServer.exe"); 
     driver = new InternetExplorerDriver(); 

    } 

    else if (browsername.equalsIgnoreCase("firefox")) 
    { 
     System.setProperty("webdriver.firefox.bin", 
       "C:\\Program Files\\Mozilla Firefox\\firefox.exe"); 
     driver = new FirefoxDriver(); 
    } 
    driver.get("URL"); 
    driver.manage().window().maximize(); 
    driver.findElement(By.id("overridelink")).click(); 
    driver.findElement(By.id("j_username")).sendKeys("userid"); 
    driver.findElement(By.id("j_password")).sendKeys("pwd"); 
    driver.findElement(By.id("j_password")).submit(); 

答えて

0

これはIEのセキュリティレベルの可能性が高いためです。私の経験では、それをLowに変更すると警告は表示されません。あなたのケースでこの問題が解決するかどうか試してみることができます。

enter image description here

別の解決策は、check the browserに使用される条件付きロジックを追加することです。このようなもの:

Capabilities cap = ((RemoteWebDriver) browserDriver).getCapabilities(); 
String browsername = cap.getBrowserName(); 
// This block to find out if it is IE 
if ("internet explorer".equalsIgnoreCase(browsername)) { 
    driver.findElement(By.id("overridelink")).click(); 
} 
+0

私はこれを試してみました。この特定の行をスキップする方法はありますか?FFで、driver.findElement(By.id( "overridelink"))。click(); " – Kumar

+0

はい、私の更新された回答を参照してください。 – ekostadinov

関連する問題