硒选择类不会抛出错误,当它没有找到下拉列表中的项目

问题描述:

我有方法来选择使用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

当然可以......你用你的“catch”吃掉了错误......有什么问题? – JeffC

+0

@JeffC谢谢。它现在有效。我删除了try catch,发现它正在花费几分钟才能失败并抛出错误。 – ktmrocks

+0

好的。我会添加我的评论作为答案,以便您可以接受它,所以问题不会被解决。 – JeffC

问题是你正在吃try-catch的例外。如果你删除它,它应该抛出你期待的错误。

一个建议...而不是通过String elementLocator,传递By类。这将允许您不仅仅使用XPath,例如现在

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

可以使用By.id()By.cssSelector(),等等。