2013-02-07 45 views
1

我想在Selenium IDE(Firefox)中使用命令「assertTextPresent」。我將其配置是這樣的:Selenium IDE commnand assertTextPresent不工作

Command: assertTextPresent 
Target: <th align="center" abbr="Monday" scope="col" style="background-color:#EFEDF5;font-weight:normal;">Mon</th><th align="center" abbr="Tuesday" (truncated for brevity) 
Value: (left empty) 

從我可以告訴,硒不匹配我的「目標」與渲染頁面的,因爲在它的HTML代碼的源代碼。所以它總是失敗,即使它應該通過。我怎樣才能做出這個斷言的工作?

回答

1

assertTextPresent尋找一個值,您指定的值位於頁面上的任何位置。您在目標中傳遞的值是IDE正在查找的文本。它實際上是尋找整個<th>標籤作爲「文本」顯示在頁面上的某個地方,我假設它不顯示。

使用該功能的正確方法是將您正在尋找的文本傳遞給目標,例如「Mon」或您正在尋找的任何東西。請記住,這是區分大小寫的。由於這個函數並不在乎它的外觀,所以你沒有指定一個實際的目標。我發現在大多數情況下,這個功能通常沒有足夠的可靠性。

<tr> 
    <td>assertTextPresent</td> 
    <td>Mon</td> 
    <td></td> 
</tr> 

我更喜歡使用assertTextverifyText,因爲它需要一個目標,讓您更具體在哪裏查找文本。

<tr> 
    <td>assertText</td> 
    <td>css=th[abbr="Monday"]</td> 
    <td>Mon</td> 
</tr> 

我不完全確定abbr屬性是一個有效的選擇器。有很多方法來定位你的元素,我只是用它作爲一個簡單的例子,因爲它是你snippit的一部分。

+0

從Selenium ID 2.4開始,這將不再起作用。您正在使用assertTextPresent搜索的文本必須進入值字段而不是目標字段。此外,asserTextPresent已棄用,未來版本可能不支持。 –

0

根據我在這裏看到的,您應該使用assertElementPresent而不是assertTextPresent,因爲您將元素指定爲目標而不僅僅是該元素的文本。

如果您仍想使用assertTextPresent,您只需將「Mon」作爲您的目標。因爲它的目標/參數是它正在搜索的內容。

+1

這是不正確的。從Selenium 2.x開始,您不能將文本放入目標中,否則會失敗。請參閱我上面對我的回答的評論。 –

+0

@CharlestonSoftwareAssociates你可以看到我在2月發佈了這個版本,並且當時沒有使用Selenium 2.x。這將適用於以前版本的硒。 – OrwellHindenberg

2

如果你正在測試一個獨特的存在於網頁文本可以使用

Command: assertTextPresent 
Target: your search text 

在這裏的目標你把你要搜索的文本。

或者

如果要檢查當前的位置文本

可以使用

Command: verifyText 
Target: id,name,xpath of the position 
value: your search text 
0

你可能想要3份爲assertTextPresent測試:

Command: assertTextPresent 
Target: //th[@abbr="Monday"] 
Value: Mon 

這將查看包含等於「星期一」的atabute @abbr的單元格,並查看內容(文本)是否設置爲「Mon」。

要測試所有單元格,您可以一次接一個地執行多個assertTextPresent命令來測試所有7天。

如果你想去「升一級」,你會做這樣的事情:

Command: assertTextPresent 
Target: //tr 
Value: <th align="center" abbr="Monday" scope="col" style="background-color:#EFEDF5;font-weight:normal;">Mon</th><th align="center" abbr="Tuesday" (truncated for brevity) 

一般而言,這是最好的嘗試通過使用特定的屬性,如ID選擇HTML元素,比如= 「row_1」或name =「first_row」。那麼你的目標是// tr [@ id =「row_1」]或// tr [@ name =「first_row」]。

目標是「DOM搜索語法」來告訴Selenium IDE在哪裏可以找到您要查找的文本。值是要測試的文本。

+0

從Selenium 2.x開始,您必須使用上述格式。你不能把你正在尋找的文本作爲目標。但是,您可以將目標空白。在這兩種情況下,您搜索的文本都必須放入Selenium IDE的值組件中。 –