php - 我如何使用硒按条件执行我的代码?
问题描述
我想按条件执行我的代码
我的 selenium 代码是在连接站点后在网站上查找元素,如果找到它执行第一个代码,或者如果找不到元素,则执行第二个代码。那就是我想要的
但是我运行执行我的代码,我收到了一个错误,如下面的代码
[2019-06-12 19:11:45] local.ERROR: Undefined property:
App\WebDriver\Remote\RemoteWebDriver::$WebDriverExpectedCondition
{"exception":"[object] (ErrorException(code: 0): Undefined property:
下面的代码是我的 laravel 代码
if($driver->findElement(WebDriverBy::xpath('//*[@id="err_common"]/p'))){
Log::info('fail login');
} else {
Log::info('success login');
}
我怎样才能将其修复为我想要的?我的英语水平很低,,,,谢谢你看我的帖子
解决方案
如果该$driver->findElement(...)
元素不存在,则方法调用应抛出 NoSuchElementException。您应该能够将代码包装在 try-catch 块中,而不是 if 语句中:
try {
$driver->findElement(WebDriverBy::xpath('//*[@id="err_common"]/p'));
Log::info('success login');
} catch (NoSuchElementException $ex)
Log::info('fail login');
}