Не могу проверить существование htmlElement

tka4enko.ilya

Client
Регистрация
20.10.2015
Сообщения
61
Благодарностей
9
Баллы
8
в c# коде получаю дочерний элемент хтмлэлемента методом FindChildByAttribute
но почему то свойство IsVoid у дочернего элемента true, хотя он присутствует на странице и я могу взять его атрибуты. Как еще проверить существование thmlelement? Раньше проверял только свойством IsVoid
 

arhip1985

Client
Регистрация
31.10.2011
Сообщения
2 956
Благодарностей
781
Баллы
113
в c# коде получаю дочерний элемент хтмлэлемента методом FindChildByAttribute
но почему то свойство IsVoid у дочернего элемента true, хотя он присутствует на странице и я могу взять его атрибуты. Как еще проверить существование thmlelement? Раньше проверял только свойством IsVoid
та тру это же да, или исвоид по другому работает?
 

tka4enko.ilya

Client
Регистрация
20.10.2015
Сообщения
61
Благодарностей
9
Баллы
8
да оно и так работает. элемент получаю.
Вот только в коде убедится что он точно есть не могу.
IsVoid = true;
 

tka4enko.ilya

Client
Регистрация
20.10.2015
Сообщения
61
Благодарностей
9
Баллы
8
пока единственная мысль, только брать OuterHtml и смотреть пустой он или нет. Но как то не по феншую это
 

arhip1985

Client
Регистрация
31.10.2011
Сообщения
2 956
Благодарностей
781
Баллы
113
Вот только в коде убедится что он точно есть не могу.
IsVoid = true;
а что, его нет а показывает тру?
я так понимаю, надо писать подобно этому:
HtmlElement he = tab.FindElementById("main");
HtmlElement heCh = he.FindChildByAttribute("input:checkbox", "fulltag", "input:checkbox", "text", 0);

и делать проверку на содержание heCh
 

tka4enko.ilya

Client
Регистрация
20.10.2015
Сообщения
61
Благодарностей
9
Баллы
8
я проверял так
if (!heCh.IsVoid)
{
// ЭЛЕМЕНТА нет на странице
return null;
}

или так некорректно проверять?
 

arhip1985

Client
Регистрация
31.10.2011
Сообщения
2 956
Благодарностей
781
Баллы
113
я проверял так
if (!heCh.IsVoid)
{
// ЭЛЕМЕНТА нет на странице
return null;
}

или так некорректно проверять?
точно не знаю, что оно возвращает, если нет элемента, но попробуйте:
1. возможно оно находит другой дочерний элемент, который существует
2. попробуйте , если есть, то вернуть например 1, а далее сравните, если вернуло 1 значит есть, если что-то другое, то нет.
 

tka4enko.ilya

Client
Регистрация
20.10.2015
Сообщения
61
Благодарностей
9
Баллы
8
точно не знаю, что оно возвращает, если нет элемента, но попробуйте:
1. возможно оно находит другой дочерний элемент, который существует
ну тогда бы IsVoid == false
2. попробуйте , если есть, то вернуть например 1, а далее сравните, если вернуло 1 значит есть, если что-то другое, то нет.
не понял мысль
 

arhip1985

Client
Регистрация
31.10.2011
Сообщения
2 956
Благодарностей
781
Баллы
113

tka4enko.ilya

Client
Регистрация
20.10.2015
Сообщения
61
Благодарностей
9
Баллы
8
это же неправильно. если heCh.IsVoid == true значит не существует.
спасибо.
буду через contais проверять содержимое outerhtml
 
  • Спасибо
Реакции: arhip1985

arhip1985

Client
Регистрация
31.10.2011
Сообщения
2 956
Благодарностей
781
Баллы
113
это же неправильно. если heCh.IsVoid == true значит не существует.
спасибо.
буду через contais проверять содержимое outerhtml
да, вы правы, в справке зенно так и написано. а что элемент есть, а оно всё равно возвращает тру?))) просто не особо знаком с сишарпом, в пхп если is_array , то когда есть сарай, то да, когда нет, то другое. думал по этой аналогии.

вот ещё нашёл - Значение true, если возвращаемый тип — void; в противном случае — значение false.
просто толком не знал, что такое void.
 
Последнее редактирование:

arhip1985

Client
Регистрация
31.10.2011
Сообщения
2 956
Благодарностей
781
Баллы
113
... потёрто
 

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