Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用C#遍历DOM对象?_C#_Dom_Automated Tests_Ranorex - Fatal编程技术网

如何使用C#遍历DOM对象?

如何使用C#遍历DOM对象?,c#,dom,automated-tests,ranorex,C#,Dom,Automated Tests,Ranorex,我有一个网页,在那里我必须遍历DOM以找出所有元素,这些元素都有一个以“accordion toggle”开头的类。打开/关闭accordion小部件时,每个此类对象都会分配一个类似的类: 为了对Ranorex进行自动黑盒测试,在该测试中单击所有Accordion并检查其行为,我需要一个类似DOM的对象,该对象包含页面中的所有Accordion,以便自动测试软件可以单击对象并检查其行为是否正确。如何提取这些信息?我花了两天的时间来查看页面的层次结构,想知道是否有一种简单的方法来提取这些信息 编

我有一个网页,在那里我必须遍历DOM以找出所有元素,这些元素都有一个以
“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。