$ I-> see()总是失败代码

时间:2017-07-26 20:24:16

标签: php codeception acceptance-testing

我是Codeception的新手,并试图建立一个非常基本的验收测试。我正在用PhantomJS运行它。

我试图只检测页面上的某些文字,出于某种原因,它永远不会通过。我的index.html文件是:

<!DOCTYPE html>
 <html>
 <head>
 </head>
<body>

<h1>Hello World</h1>


 </body>
</html>

我的测试文件HelloCept。 php是:

<?php 
 $I = new AcceptanceTester($scenario);
 $I->amOnPage('index.html');
 $I->see('Hello World');

$I->amOnPage DOES通过。此外,如果我尝试$ I-&gt; am(&#39;用户&#39;),那也会通过 - 问题似乎就是检测页面上的实际元素!

如果有帮助,我的acceptance.suite.yml文件是:

actor: AcceptanceTester
 modules:
enabled:
- WebDriver:
         url: 'http://localhost:4444/'            
         browser: phantomjs

在我的浏览器中,我运行:

http://127.0.0.1:4444/index.html

我在GitHub页面上看到人们有类似的问题,但好像问题已经解决了。但是,我无法通过这个简单的测试。任何帮助将不胜感激!!

2 个答案:

答案 0 :(得分:0)

我认为你需要在元素中添加一个id并检查你是否看到了。但不确定:)

答案 1 :(得分:0)

我也遇到过这个问题。几个月前我有一些测试工作正常,现在他们都没有参加“See”测试。

我发现了一些可能有用的东西:

1)我在我的HTML编译器中添加了一个缩小步骤以删除不必要的空格,这似乎打破了codeception解析页面的能力。因此,如果您的HTML被缩小,请尝试在未经管理的版本上进行测试。

2)尝试按照http://codeception.com/docs/07-AdvancedUsage中的描述将测试包装在一个类中。这似乎对我有用。

<?php

class FirstCest
{
    public function frontpageWorks(AcceptanceTester $I)
    {
        $I->amOnPage('index.html');
        $I->see('Hello World');
    }
}