Передача несуществующего HtmlElement в делегата

sibbora

Client
Регистрация
23.11.2013
Сообщения
149
Благодарностей
73
Баллы
28
Нужно передать в функцию объект HtmlElement. Но если не нужно, чтобы данный элемент использовался как родительский при поиске, нужно передать null. Пишу так:
Код:
Func<Tab, HtmlElement, string, string> fnXYZ;
fnXYZ  = (TargetTab, elParent, strXPath)=>{
    HtmlElement elElement = null;
    if (elParent.IsNull) {
        elElement = TargetTab.FindElementByXPath(strXPath, 0);
    }else{
        elElement = elParent.FindChildByXPath(strXPath, 0);
    }
    return elElemetn.GetAttribute("InnerHtml");
};
...но если вызываю функцию как задумано - return fnXYZ(instance.ActiveTab, null, "//xpath"), то возвращается ошибка
upload_2015-11-29_19-46-8.png
...можно конечно приделать костыль вида:
Код:
HtmlElement elDummyParent = Tab1.FindElementByTag("body",0);
return fnXYZ(instance.ActiveTab, elDummyParent , "//xpath")
...и оставить в процедуре только строку elElement = elParent.FindChildByXPath(strXPath, 0); - но хотелось бы найти более красивое решение
 

sibbora

Client
Регистрация
23.11.2013
Сообщения
149
Благодарностей
73
Баллы
28
Возможно немного сумбурно описал проблему в стартопике. Если проще: как при необходимости передать в функцию null вместо объекта HtmlElement?
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 715
Баллы
113
сделайте через try catch просто
 
  • Спасибо
Реакции: sibbora

sibbora

Client
Регистрация
23.11.2013
Сообщения
149
Благодарностей
73
Баллы
28
блин точно :-) так работает:
Код:
        try{
            elElement = elParent.FindChildByXPath(strXPath, intIndex);
        }catch{
            elElement = TargetTab.FindElementByXPath(strXPath, intIndex);
        }
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 715
Баллы
113
Красота же )
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)