2017-01-17 15 views
1

私は、基本的に異なるユーザーのためにいくつかのステップを実行するテストスクリプトを用意しています。一部のユーザーは特定のボタンを表示しますが、他のユーザーは表示されません。ボタンが表示されているかどうかを確認するSelenium

私はボタンは、以下に表示されているかどうかをチェックする方法作成:

public boolean check_create_new_item_button_visible(){ 

    Boolean visible = driver.findElement(By.linkText("New Item")).isDisplayed(); 
    return visible; 
} 

と、次のように呼び出されます。

boolean visible = npc.check_create_new_item_button_visible(); 

をしかし、私は常にエラーが表示されます。

org.openqa.selenium.NoSuchElementException: no such element: Unable to locate element: {"method":"link text","selector":"New Item"} 

これは、ボタンが見えないために期待するものです。

おそらく愚かなエラーですが、ボタンが画面上にあるかどうかを確認してプログラムを続行できるようにするにはどうすればよいですか?

ちなみに、ボタンを表示するプログラムの部分にコードを移動し、ブール値がtrueを返すようにしました。したがって、ボタンが表示されている場合はコードが機能します。

+0

あなたが共有することができます表示されている場合に例外を避けるために、あなたがfindElementsを使用して、返されたリストには、要素を持っているかどうかを確認し、することができます '申し訳 – NarendraR

+0

をhtml'ここにhtmlコードを貼り付けるにはどうすればいいですか – tarquin

答えて

2

driver.findElementが見つかった場合は要素を返し、要素が見つからない場合はNoSuchElementExceptionを返します。私はcouldntの@NarendraRajputそれはチェックしない場合は、最初のものは

public boolean check_create_new_item_button_visible() { 
    List<WebElement> buttons = driver.findElements(By.linkText("New Item")); 
    if (buttons.size() > 0 && buttons.get(0).isDisplayed()) 
    { 
     return true; 
    } 
    return false; 
} 
+1

あなたの素早い返答をありがとう@Guy私はあなたのコードを試してみました。私は今日何かを学びました。そして、多くの感謝のため – tarquin

1
public boolean check_create_new_item_button_visible(){ 
    try { 
    boolean btnPresence = driver.findElement(By.linkText("New Item")).isDisplayed(); 
    boolean btnEnable = driver.findElement(By.linkText("New Item")).isEnabled(); 
    if (btnPresence ==true && btnEnable ==true) 
    { 
    // click on the search button 
     WebElement btn = driver.findElement(By.linkText("New Item")); 
     btn .click(); 
    } 
    catch (org.openqa.selenium.NoSuchElementException e){ 
      return false; 
     } 
    } 
+1

ありがとうございます@ Samir007私はあなたのコードを試しましたが、それは動作しませんでしたので、私はあなたの解決策も好きです。ありがとう!: 'public boolean check_create_new_item_button_visible(){try {\t WebElementボタン= driver.findElement(By.linkText(" New Item ")); \t if(button.isDisplayed()){ \t \t return true; \t} \t \t}キャッチ(org.openqa.selenium.NoSuchElementException電子){ \t \t \tのSystem.out.println( "要素が見つかりません")。 \t \t \t falseを返します。 \t \t} return false;} ' – tarquin

+0

ありがとう@tarquin私のコードを更新したいですか?私はそれが良いと思うので、その作業 –

関連する問題