У меня есть веб-страница, где мне нужно пройти через DOM, чтобы найти все элементы, которые имеют class
, который начинается с "accordion-toggle "
. Каждый такой объект получает подобный класс, назначенный, когда виджет аккордеона открывается / закрывается:
Чтобы выполнить автоматический тест черного ящика для Ranorex, когда все аккордеоны щелкаются и проверяется их поведение, мне нужен DOM-подобный объект, который содержит все аккордеоны на странице, чтобы автоматизированное тестовое ПО могло щелкать по объектам и проверять ведут ли они себя должным образом. Как я могу извлечь эту информацию? Я в течение двух дней пытаюсь увидеть довольно иерархическую структуру страницы и задаюсь вопросом, есть ли простой способ извлечь эту информацию.
Edit:
На самом деле, есть способ сделать это, но я получаю System.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());
}
}