首页 > 解决方案 > 我如何使用硒按条件执行我的代码?

问题描述

我想按条件执行我的代码

我的 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');
}

我怎样才能将其修复为我想要的?我的英语水平很低,,,,谢谢你看我的帖子

标签: phplaravelseleniumselenium-webdriverwebdriver

解决方案


如果该$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');
}

推荐阅读