我試圖使用Telerik測試框架自動化一些網站測試。爲什麼在嘗試將MouseHover放在圖像上時間斷斷續續地找到「Object reference not found」?
爲此,我需要能夠分析由RadToolTIpManager
管理的ajaxified工具提示,該工具提示顯示包含RadGrid
的用戶控件。該網站本身呈現並按預期作出響應,但偶爾在測試MouseHover()
時,我試圖調用以調出工具提示,產生圖像的Object reference not found
。
下面是圖片我想懸停在示例標記:
<img id="ctl00_ContentBody_CustomerSummary__TheImage"
src="../images/Fire.png">
下面是使用的考驗,以啓動自動化的步驟:
private const int _sleepTimeout = 3000;
private MainPageObjectClass _HomePage;
OpenMainPage();
ActiveBrowser.WaitUntilReady();
ActiveBrowser.WaitForAjax(_sleepTimeout);
var theImage = _HomePage.MyToolTipImage;
的異常將發生在這種方法中,它存在於定義了頁面對象的類中,而屬性用於獲取對這些對象實例的引用:
public void HoverOverTheImage()
{
// Exception occurs below...
MyToolTipImage.MouseHover();
}
以下是我如何嘗試檢索頁面上的實例TheImage
的引用(我使用基於圖像控件的id
的通配符搜索使用Get<HtmlImage>
方法遍歷DOM,該方法再次以非-NULL每次):
/// <summary>
/// Image which upon MouseHover() should show the tooltip control.
/// </summary>
public HtmlImage MyToolTipImage
{
get
{
return Get<HtmlImage>("id=~__TheImage", "tagname=img");
}
}
我已經嘗試添加測試步驟之間的ActiveBrowser.WaitUntilReady()
和ActiveBrowser.WaitForAjax(_sleepTimeout)
方法,並試圖增加超時,但儘管這樣的測試會偶爾失敗,由於NULL參考圖像元素。
什麼可能導致此自動化無法找到我需要的圖像MouseHover()
?
更新:根據我的一位更熟悉Telerik測試框架的同事,MouseHover()
方法更多地是在給定元素上懸停的硬件級別方法。這些測試經常失敗,因爲我在開發機器上本地運行測試,當測試嘗試運行時,鼠標當然會遍佈整個地方。
該圖片在頁面上始終存在,它只是'MouseHover',看起來不可靠。感謝您的文章,我會給'InvokeEvent'一個鏡頭。 –
結果'InvokeEvent'正常工作提示工具提示!謝謝。 –