2017-12-14 9 views
0

셀렌 페이스 북 웹 드라이버에서 입력 텍스트 요소를 찾을 수 없습니다.입력 텍스트 요소를 찾을 수 없습니다.

텍스트 입력을 찾을 수없는 경우에도 더 실행하고 싶습니다. 나는 다음과 같은 코드를 사용하지만 작동하지 오전 :이 입력 텍스트를 표시하지 않습니다 서버의 데이터가있는 경우

if(count($driver->findElement(WebDriverBy::id('custname'))) > 0){ 
    $driver->findElement(WebDriverBy::id('custname'))->sendKeys("John Doe"); 

} 

가 실제로 문제가, 그냥 스팬 태그를 보여줍니다. 그러나 서버에 데이터가 없으면 입력 텍스트가 표시됩니다. 그 이유는 그냥 입력 텍스트가 있는지 확인한 다음 입력에 데이터를 삽입하고 계속 진행하는 것입니다.

오류가 없습니다 : 치명적인 오류 : catch되지 않은 페이스 북 \ WebDriver \ 예외 \의 예외 : NoSuchElementException은 : 이러한 요소 : 요소를 찾을 수 없습니다가 :

+0

요소가 존재하지 않으면 치명적인 오류가 발생합니다. 예외를 처리 할 수 ​​있습니다. –

답변

2
use Facebook\WebDriver\Exception\NoSuchElementException; 

try { 
    $search = $driver->findElement(WebDriverBy::id('custname')); 
} catch (NoSuchElementException $e) { 
    echo "Not found"; 
} 
0

요소가 표시되는 경우가 확인할 수 있습니다

$userName = $driver->findElement(WebDriverBy::id('custname')); 

if ($userName->isVisible()) { 
    $userName->sendKeys("John Doe"); 
} 
+0

기다리고 싶지 않습니다. 계속 존재하는지 확인한 다음 계속 실행하고 싶습니다. –

+0

20 초를 기다리지 않고 요소가있는 즉시 스크립트가 계속 실행됩니다. 스크립트가 너무 빨리 실행되어 아직 사용할 수없는 요소에 키를 보내려는 것일 수 있습니다. –

+0

선생님, 실제로 문제는 서버에 데이터가있는 경우 입력 텍스트가 표시되지 않으며 스팬 태그 만 표시된다는 것입니다. 그러나 서버에 데이터가 없으면 입력 텍스트가 표시됩니다. 그 이유는 그냥 입력 텍스트가 있는지 확인한 다음 입력에 데이터를 삽입하고 계속 진행하는 것입니다. –