使用点击的重定向测试随机失败

Codeception tests randomly fails on redirects using click

我遇到了代码接收测试失败的奇怪问题。

有时 link/button 上使用的点击方法不会重定向到页面。 有时它确实如此,但 codeceptions 无法识别它(我在输出中的图像上看到重定向有效)。 有时它完全没问题,测试以 100% 运行。

我在 jenkins 上使用 codeception 2.2.1 版本和 phantomjs 2.1.1。

有问题的测试之一:

$I->wantTo('verify that recent comments module are correctly presented');
$I->amOnPage('/pl/');
$I->click('.cookie-policy-info__btn-close');
$I->see('Najciekawsze opinie', '.section-title-bar');
$I->seeElement('.hp-recent-opinions.one-column-product-wrapper');
$I->seeElement('ul.slides:nth-child(1) > li > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > a:nth-
$I->click('ul.slides:nth-child(1) > li > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > a:nth-child
$I->seeInCurrentUrl('/audiobook/');
$I->moveBack(1);
$I->click('ul.slides:nth-child(1) > li > div.product-tile > div.product-tile__desc > div.product-tile__author
$I->seeInCurrentUrl('/search/author?');
$I->moveBack(1);

$this->titleCss() = 'ul.slides:nth-child(1) > li > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > a:nth-child(1)'

的例子

和解码输出:

5) ContentModulesCest: Verify that recent comments module are correctly presented
Test  tests/acceptance/ContentModulesCest.php:recentCommentsModule
Step  See in current url "/foobar/"
Fail  Failed asserting that '/pl/' contains "/foobar/".

Scenario Steps:

8. $I->seeInCurrentUrl("/foobar/")
7. $I->click("ul.slides:nth-child(1) > li > div:n...")
6. $I->seeElement("ul.slides:nth-child(1) > li > div:n...")
5. $I->seeElement(".hp-recent-opinions.one-column-prod...")
4. $I->see("Najciekawsze opinie",".section-title-bar")

我在图片上看到了那个页面。有点奇怪。 有什么想法可以阻止随机失败吗?

可能当 Codeception 尝试点击时,该元素是不可见的(尚未加载)。尝试在 click 方法之前使用 waitForElementVisible 方法。

也可以对接PhantomJS版本。我有很多奇怪的问题 - 一切皆有可能。