Некоректное определение HtmlElementa

  • Автор темы Автор темы SlavenTyz
  • Дата начала Дата начала

SlavenTyz

Client
Регистрация
30.04.2018
Сообщения
1 188
Реакции
38
Баллы
48
Сложность в том что HtmlElement по факту отсутствует, а при условие его определения, данное условие выполняется, иначе HtmlElement-отсутствует а if(!HtmlElement.IsVoid) выполняется

Смысл в том, что когда проверяю условие на присутствие условия if наличие HTML элемента if(!HTML элемента.IsVoid) , то оно в любом случае выполняется т.е если его да же нет и это видно в самой программе. определил во время отладки, клинул на этот элемент и там видно либо False или в других случаях пишется что выпало исключение. В любом случае, в дереве элементов его нет, а условие выполняется.

Как избежать этот глюк


upload_2018-12-12_19-28-26.png
 
Логика такая, в окне с сообщениями перебираю всех людей и если находится новое сообщение, то есть есть цифра, как показано на картинке, то кликает на него. В дереве элементов я указал элемент, который отвечает за кол-во сообщений и смысл в том, что если этого элемента нет, то клик на него все равно происходит
 
Ну а метод FindElementByXpath и путь икспаф говорит, что ты ищешь относительно всей страницы, а не конкретного человека
Где это ты увидел. Тем более у меня этот метод лежит в цикле и с изменением i-номер совпадения, меняются данные человека (Имя, возраст)
 
Где это ты увидел. Тем более у меня этот метод лежит в цикле и с изменением i-номер совпадения, меняются данные человека (Имя, возраст)
ну так номер совпадения в данной логике никак не привязан к человеку. Ты берёшь первого человека, а метод берет первый элемент. И ему пофиг, какого человека ты там обрабатываешь, ты ему не объяснил, что искать надо строго по потомкам этого человека. Он ищет по всей странице и находит первый удовлетворительный элемент, а этот первый может быть хоть в конце, хоть и по критериям он будет первый
 
Он здесь ищет и ищет в цикле, при этом меняется имя чуваков upload_2018-12-12_20-6-26.png
 
Ты меня не понимаешь... Короче, у тебя 2 варианта логики
1. Ты собираешь всех людей как html элементы в коллекцию. Перебираешь их и ищешь среди их потомков элемент, отвечающий за число смсок. Возможно путь придётся подправить.
2. Ты через текущий xpath собираешь все элементы в коллекцию. Перебираешь их и вычисляешь родительские элементы. В родителях вычисляешь людей, имена или ссылки что тебе нужны ( я не знаю, что именно)

Я не знаю всего твоего кода, но в текущем варианте логика кажется неправильной
 
  • Оценить
Реакции: ZX
Ты меня не понимаешь... Короче, у тебя 2 варианта логики
1. Ты собираешь всех людей как html элементы в коллекцию. Перебираешь их и ищешь среди их потомков элемент, отвечающий за число смсок. Возможно путь придётся подправить.
2. Ты через текущий xpath собираешь все элементы в коллекцию. Перебираешь их и вычисляешь родительские элементы. В родителях вычисляешь людей, имена или ссылки что тебе нужны ( я не знаю, что именно)

Я не знаю всего твоего кода, но в текущем варианте логика кажется неправильной
Кажется я начинаю понимать, только я не понимаю чем отличается HtmlElementCollection от HtmlElement при условии что пути XPath одинаковые
 
Я понимаю, что HtmlElementCollection обращается ко всем элементам, а HtmlElement к конкретному, но в чем изюминка, не понимаю
 
Я понимаю, что HtmlElementCollection обращается ко всем элементам, а HtmlElement к конкретному, но в чем изюминка, не понимаю
Ты перед циклом как-то узнаешь количество элементов, которое ты будешь перебирать в этом цикле?
 
Да использую HtmlElementCollection и все других плюсов я не вижу
т.е. ты проделываешь одну и ту же работу дважды по сравнению с тем, если бы ты сразу взял коллекцию и работал с ней
Проделывать в 2 раза меньше работы, на мой взгляд, существенный плюс)
 
т.е. ты проделываешь одну и ту же работу дважды по сравнению с тем, если бы ты сразу взял коллекцию и работал с ней
Проделывать в 2 раза меньше работы, на мой взгляд, существенный плюс)
Это понятно, но вопрос в другом я не понимаю чем отличается HtmlElementCollection от HtmlElement при условии что пути XPath одинаковые
 
Это понятно, но вопрос в другом я не понимаю чем отличается HtmlElementCollection от HtmlElement при условии что пути XPath одинаковые
ничем. 1й ищет сразу все элементы. второй только один
 
ничем. 1й ищет сразу все элементы. второй только один
То есть у меня может быть разница в путях XPath и по этому вылезла ошибка. У меня вопрос как можно обратиться к 1 или 9 элементу через HtmlElementCollection
 
То есть у меня может быть разница в путях XPath и по этому вылезла ошибка. У меня вопрос как можно обратиться к 1 или 9 элементу через HtmlElementCollection
там вроде есть метод Elements или ElementsAt
По поводу ошибки, я не знаю, что ты делаешь и как
 

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