2017-05-23 4 views
1

.isDisplayed()メソッドが私たちのフレームワークで動作していないようです。Selenium/Java:要素が存在するかどうかを確認するための 'isDisplayed()'の代替メソッド

要素がアプリケーションに表示されていれば問題ありません。そうでなければ、それはNull Pointer Exceptionを投げている。したがって、要素が存在するかどうかを検証し、それに応じてif-else条件を記述する他の方法があるかどうかを知りたいだけでした。

+1

それはあなたのテストツールスイート(セレンバージョン、ドライバタイプ&バージョン、フレームワークタイプ&バージョン)のためにあなたは**常に**現在バージョン情報ことをお勧めします使用例 – Guy

+0

を追加してください。 そうでなければ、あなたのセットアップではうまくいかないかも知れない提案を受け取ります。 – iamdanchiv

答えて

1

要素を表示してアクションを実行すると、try and catchブロックでコードを囲み、条件を維持できます。要素が表示されない場合、それはcatchブロックによって処理される例外を介して行われます。

try 
{ 
     if(usersname.isDisplayed()) 
    { 
     System.out.println("Already Login"); 

    } 
} 
catch(Exception e) 
{    
     new UserLogin(driver).doLogin(TestDataComman.username, TestDataComman.password); 
} 
+1

それは私のために働いた。ありがとう! – Rahul

0

要素には、以下のコードによって存在するかまたはしないであるかどうか確認することができ:isDisplayd()メソッドを使用するよりも他の

driver.findElements(By.id("...")).size() != 0 
0

1つの方法である:

要素の数をカウントしたか否かチェックそれはゼロより大きいです

コードスニペット:

boolean isPresent = driver.findElements(By.cssSelector("your selector")).size() > 0; 
0

HI要素がページ上に存在しているかどうかを確認するために、独自のカスタムメソッドを作成することができます

public boolean IsElementPresent(String locatorKey) { 
    List<WebElement> e = null; 
    e = driver.findElements(By.id(locatorKey)); 

    if (e.size() == 0) { 
     return false; 
    } else { 
     return true; 
    } 
} 

・ホープこれはあなたが要素が存在するかどうかを確認するには、以下の方法を試すことができ

0

を支援します。

public boolean isPresent(By locator_of_your_element){ 

    List <WebElement> yourElement = driver.findElements(your locator here); 

    if (yourElement.size()!=0){ 

     return true; 
    } 
    else{ 

    return false; 
    } 
    } 
0

あなたがnullポインタ例外を取得している理由は、isDisplayed(ある)メソッドは、その要素が既に存在していると仮定し、それがvisibだかどうかをチェックしますルかどうか。

これは、要素が存在するかどうかを確認するために行うのですか?

public boolean isElementExist(By element, int timeout){ 
    wait = new WebDriverWait(driver, timeout); 
    try{ 
     return wait.until(ExpectedConditions.presenceOfElementLocated(element)); 

    }catch (TimeoutException te){ 
     return null; 
    } 
} 

このメソッドを呼び出すと、elementオブジェクトを取得し、それが表示されているかどうかを確認できます。または次のコードを使用して要素が表示されるまで待つことができます。

wait.until(ExpectedConditions.visibilityOfElementLocated(By.id(a))); 
関連する問題