[英]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.