2011-08-24 55 views
4

我正在使用Selenium擴展在PHPUnit中編寫一個Selenium測試用例。在測試中,我斷言某個鏈接出現在頁面上。在PHPUnit的Selenium擴展中使用glob來識別元素

例如,說我想要斷定下面的鏈接頁面是否存在:

<a href="http://www.stackoverflow.com">click here to enter stackoverflow</a> 

爲了斷言鏈接存在我需要確定它。通常我們使用他們的錨文本識別鏈接:assertElementPresent("link=click here to enter stackoverflow")

我不想使用它的整個錨文本識別鏈接,但只是子字符串「計算器」,錨文本包含。我可以使用glob和星形運算符來執行此操作:assertElementPresent("link=glob:*stackoverflow*")

這適用於硒IDE,但在PHPUnit中編寫等效代碼時,斷言失敗。下面是代碼PHPUnit中的等效線:

$this->assertTrue(isElementPresent("link=glob:*stackoverflow*")); 

因爲元件link=glob:*stackoverflow*不識別上述斷言失敗。該元素應該被標識,因爲頁面上存在鏈接,其錨文本包含字符串「stackoverflow」。

我的問題是比簡單的例子,我已經給了更普遍的:我如何使用水珠來識別硒擴展PHPUnit的元素呢?

回答

2

我們使用XPath表達式在我們所有的Selenium測試案例,但我並沒有參與寫他們並沒有調查其他選項。如果您找不到glob的工作方式,您可以隨時回退:

self::assertTrue($this->isElementPresent("//a[contains(.,'stackoverflow')]")); 
相關問題