XPath 定位的元素未找到 Codeception。

3
我正在使用CodeCeption测试工作中的网站。我从未使用过CodeCeption,现在只是想让我的第一个测试工作。我只想登录,但我的登录框使用了jQuery UI(这意味着登录按钮没有ID)。该网站是https://moveyourmountain.org 我在Chome控制台中使用了以下代码: $x('//button/span[text()="Login"]')
并得到以下响应:
[<span class=​"ui-button-text">​Login​</span>​]
所以我的xpath是正确的,并选择了正确的内容。然而,在CodeCeption中,我有以下代码:
$I = new AcceptanceTester($scenario);
$I->wantTo('Login as a regular user.');
$I->amOnPage('/');
$I->click('LOGIN');
$I->fillField('email', 'some@one.com');
$I->fillField('password', 'test123');
$I->click(['xpath' => '//button/span[text()="Login"]']);
$I->see('MY ACCOUNT');

每次运行它时,我都会在终端看到这个:
Sorry, I couldn't click {"xpath":"//button/span[text()="Login"]"}:
Element with xpath '//button/span[text()="Login"]' was not found on page.

Scenario Steps:
5. I click {"xpath":"//button/span[text()="Login"]"}
4. I fill field "password","test123"
3. I fill field "email","some@one.com"
2. I click "LOGIN"
1. I am on page "/"

如果我使用PhpBrowser,是否有所不同?感谢任何帮助。我不知道如何测试这个问题,因为它显然与Chrome的解决方案不同。


我在网页中找不到您的搜索模式。我只能找到一个<h2>登录</h2>和一个<a onclick="openLogin()">登录</a> - Marcus Rickert
3
这段话的意思是:在通过调用openLogin()打开的对话框中。然而,我解决了自己的问题,我改用WebDriver和chromedriver而不是PhpBrowser。我把问题留在这里,因为我并不真正知道答案,只是找到了一个解决方法。 - Kenyon
1个回答

1
尝试更改您的 acceptance.suite.yml 文件。
使用 WebDriver 替代 PhpBrowser。

虽然这个答案可能是正确的,但如果有额外的解释和/或链接会更有帮助。 - Mike

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接