2017-06-03 86 views
1

在下面的代碼中,我想檢查元素是否存在於XPath中,然後只有它應該執行代碼。如何檢查laravel黃昏測試中是否存在元素?

if($browser->driver->findElement(WebDriverBy::xpath('/html/body/div[1]/div/section/div[3]/div[2]/div/table/tbody/tr['.$i.']/td[2]'))!==null) 
{ 
    $sort=$browser->driver->findElement(WebDriverBy::xpath('/html/body/div[1]/div/section/div[3]/div22]/div/table/tbody/tr['.$i.']/td[2]'))->gettext(); 
echo $sort; 
} 

否則請建議是否有另一種方法來檢查元素是否存在於laravel黃昏。 P.S.我嘗試了whenAvailable方法,但在這種情況下它無法幫助我。

回答

1

當我想檢查是否一個元素存在,我通常會做這樣的事情:如果元素不存在

$this->browse(function (Browser $browser) { 
    $this->assertNotNull($browser->element('#idString')); 
} 
+0

這將返回一個錯誤。當元素沒有被發現時,什麼Rushi wnat是另一個陳述。 –

0
/* 
* check element exist 
* if it doesn't not exist 
* will throw exception 
* 
* @retuen void 
*/ 

try { 
    $this->browse(function (Browser $browser) { 
     $elementExist = $this->assertNotNull($browser->element('#idString')); 

     if (empty($elementExist)) { 
      \Log::info('element exist') 
     } 
    } 
} 
catch (\Exception $e) { 
    \Log::info($e->getMessage()); 
}