2013-02-01 74 views
1

現有的應用程序有一個html表格,在body標籤內,有多個同名的td標籤Ranorex不能唯一識別元素?

Ranorex無法將它們全部存儲到存儲庫中,因爲它們都具有相同的XPath。

我怎樣才能將這些項目添加到存儲庫?

我試圖使一個記錄,即自動創建的倉庫只包含一個存儲庫項目..

注:我不能做任何更改應用程序

回答

0

方法如下: 查找父元素,並使用在代碼中查找

孩子這不會讓你真正在資源庫中添加項目,但至少你可以得到物品的清單,並通過遍歷列表單獨訪問它們!

0

你必須創建一個自定義的UI自動化提供這將揭露這些元素。 看看System.Windows.Automation.Provider命名空間的細節。

+0

感謝您的意見,但請提供更多信息,使解決方案更加完整和獨立。 – andr

+0

好的這是如何 – Max

1

使用更多信息像什麼Ranorex的XPath當您添加任何物品到倉庫的,你給?

此外,Max以上提到的方法是將ENTIRE表添加到存儲庫,然後查找子代注意:不是兒童,因爲兒童只能從下一個設置中找到元素,所以可能無法找到您所需的元素尋找所有的時間(看起來像這樣):

foreach(Ranorex.TdTag tags in repo.testWebsite.tdTable.FindDescendants<Ranorex.TdTag>()) 
{ 
if(tags.TagValue.contains("<tagname>")); 
{ 
tags.<DOSOMETHING>(); 
} 
} 

請注意,這應該通過所有標籤,併爲他們做同樣的事情。

除此之外,儘管所有標籤可能在存儲庫中都以相同方式找到並顯示,但它們有多個,因此可以將其推入Rooted文件夾,將ENTIRE表添加爲根,然後將td標籤添加爲排列項目。

.//div[#'pagecontent']/div[1]/div[2]/div/div/ul/form[2]/li/input[@name='Submit'] 

上面的例子具有多個/格區段,所以,以確定要搜索的一個給你放在[#],DIV [1]或DIV [2],因爲這些是第一或第二/你遇到的div標籤。 tdTags可能與tdtag [1],[2],[3]等標記相同,但它可能值得一試,因爲它可以讓您創建您之後的存儲庫項目。

自己很新的這一點,所以可能是錯的假設。

編輯等一下,馬克斯回答了自己的問題?哈哈...