【发布时间】:2015-07-05 09:39:25
【问题描述】:
页面顶部出现了一个微调框叠加层,我必须等待它完成加载。在它消失后,我可以单击元素。但是,当我执行测试以查看元素是否可点击时,它总是返回 true。我必须手动添加一个硬编码的等待时间,让微调器消失。问题是它非常不稳定和不确定。有时它需要比硬编码时间更长的时间并产生错误。当然,当它花费的时间较少时,它仍然需要等待,并且非常慢并且浪费时间。这是代码:
echo "Finding Advanced\n";
$driver->wait(10)->until( WebDriverExpectedCondition::elementToBeClickable( WebDriverBy::partialLinkText('Advanced') ) );
sleep(3); // spinner
$driver->findElement(WebDriverBy::partialLinkText("Advanced"))->click();
这是当微调框覆盖时间比预期长时的错误消息:
Finding Advanced
PHP Fatal error: Uncaught exception 'UnknownServerException' with message 'unknown error: Element is not clickable at point (89, 127). Other element would receive the click: <div id="socialLoader" class="overlay" style="display: block; left: 0px; right: 0px; top: 0px; bottom: 0px; position: absolute;">...</div>
(Session info: chrome=42.0.2311.152)
(Driver info: chromedriver=2.14.313457 (3d645c400edf2e2c500566c9aa096063e707c9cf),platform=Windows NT 6.3 x86_64) (WARNING: The server did not provide any stacktrace information)
我尝试了以下
$driver->findElement(WebDriverBy::cssSelector('button.xBtn.remove'))->click();
sleep(1); // spinner
echo "Finding Advanced\n";
$driver->wait(10)->until( WebDriverExpectedCondition::invisibilityOfElementLocated( WebDriverBy::id('socialLoader') )); // spinner
$driver->findElement(WebDriverBy::partialLinkText("Advanced"))->click();
得到了这个
查找高级
PHP 致命错误:未捕获的异常“UnknownServerException”和消息“未知错误:元素在点 (89、127) 处不可点击。其他元素会收到点击:...
我试过了
// sleep(1); // spinner
echo "Finding Status Active\n";
$driver->wait(10)->until( WebDriverExpectedCondition::elementToBeClickable( WebDriverBy::id('socialLoader') ) );
$driver->wait(10)->until( WebDriverExpectedCondition::invisibilityOfElementLocated( WebDriverBy::id('socialLoader') )); // spinner
得到了这个
正在查找状态
PHP 致命错误:C:\Users\finance.operations\Desktop\Teads\php-webdriver\lib\WebDriverWait.php:69 中未捕获的异常“TimeOutException”
【问题讨论】:
标签: php selenium selenium-webdriver webdriver