【问题标题】:Element with xpath not found codeception未找到带有 xpath 的元素
【发布时间】:2014-06-27 21:44:59
【问题描述】:

我正在使用 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>Login</h2><a onclick="openLogin()">LOGIN</a>
  • 它在由 openLogin() 打开的对话框中。但是,我解决了我的问题,我改用 WebDriver 和 chromedriver 而不是 PhpBrowser。我把问题留在这里,因为我真的不知道答案,只是一种解决方法。

标签: php xpath laravel codeception


【解决方案1】:

尝试更改您的acceptance.suite.yml。

使用 WebDriver 代替 PhpBrowser。

【讨论】:

  • 虽然这个答案可能是正确的,但如果有额外的解释和/或链接会更有帮助。
猜你喜欢
  • 1970-01-01
  • 2020-03-14
  • 1970-01-01
  • 1970-01-01
  • 2016-02-11
  • 2018-10-05
  • 2020-10-16
  • 1970-01-01
  • 2013-09-03
相关资源
最近更新 更多