2012-01-05 139 views
1

我在頁面中有5個工具提示。使用WebDriver,我試圖驗證這些工具提示文本。無法使用Selenium WebDriver獲取工具提示文本

我使用下面的代碼順序得到所有5種元素的提示文本:

Actions builder = new Actions(WebDriver); 
builder.ClickAndHold(Element1).Perform(); 
Console.WriteLine(Element1ToolTip.text); 

builder.ClickAndHold(Element2).Perform(); 
Console.WriteLine(Element2ToolTip.text); 

builder.ClickAndHold(Element3).Perform(); 
Console.WriteLine(Element3ToolTip.text); 

的問題是我得到的只是在控制檯打印的第一元素的提示文本。 是因爲我需要刷新還是重置生成器?

當我刪除第一個元素的代碼時,這真的很奇怪,然後我可以得到第二個元素的工具提示文本。所以,基本上它只在單次執行中獲得工具提示文本一次。

+0

嗯,不知道這會幫助,但不是當你把鼠標懸停在他們身上時應該顯示的工具提示?也許點擊造成了這個問題?沒有鼠標懸停/懸停動作? – 2012-01-05 09:36:27

+0

此問題已記錄在WebDriver中:http://code.google.com/p/selenium/issues/detail?id=2493 – Surya 2012-01-05 10:49:23

回答

1

通過比較Web元素的「title」屬性和預期的工具提示文本來驗證工具提示。

Console.WriteLine(Element1.GetAttribute("title")); 

Console.WriteLine(Element2.GetAttribute("title")); 
+0

我的HTML代碼中沒有標題屬性,alt屬性值爲空/空。請參閱下面的HTML代碼: 在這種情況下,我該怎麼辦? – 2012-10-23 09:38:07

0

輸入元素的工具提示文字將是標題屬性和圖片,alt屬性是工具tip.This是HTML 4的標準,所以我不知道,如果你需要做的懸停和所有。

Console.WriteLine(InputElement1.GetAttribute("title")); 
Console.WriteLine(ImageElement1.GetAttribute("alt")); 

http://www.javascriptkit.com/howto/toolmsg.shtml

0

我認爲,這需要從元素釋放爲:

builder.release(Element1).perform(); 

所以,你的代碼可能如下:

Actions builder = new Actions(WebDriver); 
builder.ClickAndHold(Element1).Perform(); 
Console.WriteLine(Element1ToolTip.text); 
builder.release(Element1).perform(); 

builder.ClickAndHold(Element2).Perform(); 
Console.WriteLine(Element2ToolTip.text); 
builder.release(Element2).perform(); 

builder.ClickAndHold(Element3).Perform(); 
Console.WriteLine(Element3ToolTip.text); 
builder.release(Element3).perform(); 
0

我對着同樣的問題,我檢查了運行測試的視圖源頁面,看起來title屬性顯示爲數據原始標題。由此無法顯示文本。使用數據原始標題替換標題。我能夠獲得文本。

相關問題