2017-07-26 61 views
0

我是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能通過。此外,如果我嘗試使用$ I-> am('user'),那麼它也會傳遞 - 問題似乎是檢測頁面上的實際元素!

萬一有幫助,我acceptance.suite.yml文件是:

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

而且在我的瀏覽器,我運行:

http://127.0.0.1:4444/index.html

我看到GitHub的頁面讓人不得不類似的問題,但似乎問題已經解決。但是,我無法通過這個簡單的測試。任何幫助將不勝感激!!

+0

試試「/index.html」? – Moylin

+0

它仍然失敗。如果我擺脫$ I-> see('Hello World');並且只需要$ I-> amOnPage('index.html'),即通過,所以我不認爲這是頁面的問題。 – bjorkland

+0

我也遇到過這個問題。我有一些測試在幾個月前工作正常,現在它們都在「See」測試中失敗。 – MarkRoland

回答

0

我認爲你需要添加一個id到元素,並檢查你是否看到。不知道雖然:)

+0

我不' t認爲它就是這樣,see()應該在任何地方找到DOM中的文本,或者是可見的。 –

0

沙內的YML到:

actor: AcceptanceTester 
modules: 
enabled: 
- WebDriver: 
     url: 'http://127.0.0.1:4444/index.html'    
     browser: phantomjs 
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'); 
    } 
}