如何使用C#遍历DOM对象?
我有一个网页,在那里我必须遍历DOM以找出所有元素,这些元素都有一个以如何使用C#遍历DOM对象?,c#,dom,automated-tests,ranorex,C#,Dom,Automated Tests,Ranorex,我有一个网页,在那里我必须遍历DOM以找出所有元素,这些元素都有一个以“accordion toggle”开头的类。打开/关闭accordion小部件时,每个此类对象都会分配一个类似的类: 为了对Ranorex进行自动黑盒测试,在该测试中单击所有Accordion并检查其行为,我需要一个类似DOM的对象,该对象包含页面中的所有Accordion,以便自动测试软件可以单击对象并检查其行为是否正确。如何提取这些信息?我花了两天的时间来查看页面的层次结构,想知道是否有一种简单的方法来提取这些信息 编
“accordion toggle”
开头的类。打开/关闭accordion小部件时,每个此类对象都会分配一个类似的类:
为了对Ranorex进行自动黑盒测试,在该测试中单击所有Accordion并检查其行为,我需要一个类似DOM的对象,该对象包含页面中的所有Accordion,以便自动测试软件可以单击对象并检查其行为是否正确。如何提取这些信息?我花了两天的时间来查看页面的层次结构,想知道是否有一种简单的方法来提取这些信息
编辑:
实际上,有一种方法可以做到这一点,但是我得到了一个系统。OutOfMemoryException
,尽管服务器上有大量可用内存。给你:
/// <summary>
/// Finds the accordion widgets
/// </summary>
public void FindAccordionWidgets()
{
Report.Log(ReportLevel.Info, "Code", "FindAccordionWidgets() started…");
IList<Ranorex.Unknown> elementList = repo.Home.Self.Find<Ranorex.Unknown>("//*[@class~'accordion-toggle'][@visible='true']");
Report.Log(ReportLevel.Info, "Code", "elementList populated.");
foreach (Ranorex.Unknown elementItem in elementList)
{
// Do whatever you want here
Report.Log(ReportLevel.Info, "Code", "elementItem " + elementItem.FlavorName + isOfType + elementItem.GetType());
}
}
//
///查找手风琴小部件
///
public void FindAccordionWidgets()
{
Log(ReportLevel.Info,“代码”,“FindAccordionWidgets()已启动…”);
IList elementList=repo.Home.Self.Find(“/*[@class~'accordion-toggle'][@visible='true']);
日志(ReportLevel.Info,“代码”,“元素列表填充”);
foreach(Ranorex.Unknown elementItem在elementList中)
{
//在这里你想干什么就干什么
Log(ReportLevel.Info,“Code”,“elementItem”+elementItem.FlavorName+isOfType+elementItem.GetType());
}
}
这可能有助于您从何处获得内存不足异常?如果您使用Ranorex Spy在代码的查找行中查找与XPath匹配的所有项目,您会得到多少个元素?所有你能做的代码,你可以在间谍测试第一…谢谢你的答复!对不起,我离开了那家公司,暂时不使用Ranorex。