簡體   English   中英

Selenium PHP Webdriver-不捕獲異常嗎?

[英]Selenium PHP Webdriver - Not Catching Exceptions?

使用PHP Webdriver捕獲異常的正確方法是什么? 我有這樣的事情:

try {
    // Throws a NoSuchElementException if id doesn't exist 
    $driver->findElement(WebDriverBy::id('loggedIn'));
    return TRUE;
}
catch (NoSuchElementException $e) {
    // id='loggedIn' doesn't exist
    return FAlSE;
}
catch (Exception $e)
{
    // Unknown exception
    return FALSE;
}

但是,當我到達頁面並沒有找到我要查找的id的元素時,出現以下錯誤:

未捕獲的Facebook \\ WebDriver \\ Exception \\ NoSuchElementException:無法找到元素:#loggedIn

我不確定為什么將我的代碼包裝在try-catch塊中。

我建議您避免try..catch並檢查元素是否在頁面上而沒有異常,只需嘗試使用findElements代替,它會返回具有匹配定位符的所有元素的數組,或者如果找不到任何內容,則返回空數組,因此您只需檢查數組計數以確定元素是否存在,如下所示:

if (count($driver->findElements(WebDriverBy::id("loggedIn"))) > 0) 
{
  return TRUE;
}else 
{
  return FALSE;
}

這對我有用,希望這對某人有幫助

try {
    ...
} catch (Exception\NoSuchElementException) {
    ...
}

我不確定為何異常或特定異常都不起作用,但是:

捕獲(WebDriverException $ e)

為我工作)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM