添加一些输入并按下目标页面上的按钮后,将运行一个JS脚本,这将导致(除其他外)页面中显示的文本。
“$ I-> see”行是较长时间测试的最后一部分,到目前为止是成功的。
我在终端中遇到的错误是:
按名称,CSS或XPath元素定位的元素不是 找到。
网页段落部分:
<div class="doc-remote-add" style="background-color: rgb(250, 255, 189); border-color: rgb(247, 218, 56);">
<b>Important Delivery Info</b>
<br/>
The text I am searching for with codeception is here (no, there is no <p>).
</div>
如果没有别的,有人可以编写一个像样的定位器配置计划吗?官方网页上的use \Codeception\Util\Locator;
并没有真正削减它。
答案 0 :(得分:0)
您可以尝试在例外情况下从DOM重新选择元素:
try {
$I->seeElement($selector);
} catch (\Facebook\WebDriver\Exception\StaleElementReferenceException $e) {
$selector = <reselect_element_from_DOM>;
$I->seeElement($selector);
}
答案 1 :(得分:0)
谢谢,谢尔盖,但我能找到一个更简单的解决方案。
确实,主要问题是测试是立即寻找文本。解决这个问题的最简单,最优雅的方法是使用$ I-&gt; wait();在see命令之前,它就像这样
/* ...
rest of test
... */
$I->wait(3);
$I->see('text i wanna see');
答案 2 :(得分:0)
在这种情况下,您可以使用此方法:
$I->waitForElement($element, $timeout = null);
方法一直等到元素出现在页面上。