2017-10-11 6 views
-1

Selectクラスを使用して表示可能なテキストで項目を選択する方法があります。パラメータに渡す項目がリストにありません。私はテストが失敗し、そのような要素が見つからないというエラーを私に与えたいが、セレニウムはアイテムが現れるのを待っていて、失敗しない。強制的にテストに失敗して例外を出力する方法はありますか?ドロップダウンリストで項目が見つからない場合、セレンの選択クラスでエラーが発生しない

public static void selectAnItem(String elemetLocator, String itemToSelect){ 
    Select select = new Select(driver.findElement(By.xpath(elemetLocator))); 
    try { 
     select.selectByVisibleText(itemToSelect); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 
+0

確かに...あなたはあなたの「キャッチ」でエラーを食べました...問題は何ですか? – JeffC

+0

@JeffCありがとうございます。それは今働いた。私はtry catchを削除し、失敗してエラーを投げるために数分を取っているのを見ました。 – ktmrocks

+0

OK。私は答えとして私のコメントを追加しますので、あなたはそれを受け入れることができますので、質問は答えられないままになりません。 – JeffC

答えて

1

問題はあなたがtry-catchで例外を食べていることです。それを削除すると、期待しているエラーがスローされます。

1つの提案... String elementLocatorを渡すのではなく、Byクラスを渡します。これにより、XPath以上のものを使用することができます。

public static void selectAnItem(By locator, String itemToSelect) 
{ 
    new Select(driver.findElement(locator)).selectByVisibleText(itemToSelect); 
} 

今、あなたはそうでBy.id()By.cssSelector()、およびを使用することができます。

関連する問題