2011-05-31 58 views
3

我很好奇以下功能測試是否可能。我在這裏使用Selenium-RC與PHPUnit_Extensions_SeleniumTestCase一起工作,但原則(我認爲)應該適用於任何地方。對剛剛執行了type()的元素進行verifyText()是否有意義?

假設我在一個特定的div執行以下命令:

function testInput() { 
    $locator = $this->get_magic_locator(); // for the sake of abstraction 
    $this->type($locator, "Beatles"); // Selenium API call 
    $this->verifyText($locator, "Beatles"); // Selenium API call 
} 

從概念上講,我覺得這個測試應該工作。我正在輸入數據到一個特定的領域,我只是想驗證文本現在存在輸入爲

但是,我的測試結果(verifyText聲明失敗)表明,即使在輸入後,$locator元素的內容也是空的。

There was 1 failure: 

1) test::testInput 
Failed asserting that <string:> matches PCRE pattern "/Beatles/".` 

有沒有其他人試過類似的東西?它應該工作嗎?我是否犯了一個簡單的錯誤?

回答

2

你應該使用verifyValue(locator,texttoverify)而不是verifyText(locator,value)用於驗證文本值

+0

謝謝,這正是我所需要的! – Ryan 2011-06-01 15:01:17

+2

...這是因爲'verifyText'查看元素的文本內容(*例如*,'this is some text'),並且INPUT元素沒有任何內容。 'verifyValue'查看元素的VALUE屬性,這就是INPUT元素具有「內容」的地方(*例如*,'') – 2011-06-02 15:25:07

1

要回答你最初的問題(「它是有意義的......」),嗯,也許。你在那個時候測試的是瀏覽器響應擊鍵的能力,這可能會有些尷尬。除非你有一些JavaScript代碼連接到某些字段的屬性,在這種情況下,它可能有點重要。

標準程序員的答案 - 「這取決於」。

相關問題