Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.03.2013, 16:47   #1
s500
Пользователь
 
Регистрация: 09.04.2012
Сообщений: 10
По умолчанию GetElementById не работает

Здравствуйте!
Проблема в следующем:
Есть страница сайта (http://www.shanghairanking.com/SubjectCS2012.html), с которого нужно получить данные:
1. Название вуза.
2. Название критерия(score on) .
3. Количество баллов, которые набрал вуз по выбранному критерию.
Пока что проблема вот в чём: Адрес страницы не меняется, когда происходит изменение критерия. В исходном коде страницы выбранный критерий не отмечается. Как мне определить, какой критерий сейчас выбран?

Для определения названия критерия, мне посоветовали сделать вот так
Код:
HtmlElement element = webBrowser1.Document.GetElementById("criteria");
string selectedValue = element.GetAttribute("value");
Как оказалось, переменная element имеет значение null
Я так понимаю, что метод
Код:
webBrowser1.Document.GetElementById("criteria");
не находит в html документе объект, с ключевым атрибутом criteria
Но почему так происходит? Ведь он присутствует в коде страницы. Или я что-то неправильно понимаю?
Изображения
Тип файла: jpg вопрос.jpg (42.2 Кб, 136 просмотров)
Тип файла: jpg alumni.jpg (179.7 Кб, 130 просмотров)
Тип файла: jpg award.jpg (168.8 Кб, 127 просмотров)
Тип файла: jpg ошибка.jpg (77.2 Кб, 178 просмотров)
s500 вне форума Ответить с цитированием
Старый 25.03.2013, 18:01   #2
Luuzuk
Форумчанин
 
Аватар для Luuzuk
 
Регистрация: 18.01.2012
Сообщений: 975
По умолчанию

У вас либо webBrowser1 == null, либо webBrowser1.Document == null. до поиска элемента "criteria" дело вообще не дошло
Благодарить в репутацию. Проклинать — туда же
Luuzuk вне форума Ответить с цитированием
Старый 25.03.2013, 18:18   #3
s500
Пользователь
 
Регистрация: 09.04.2012
Сообщений: 10
По умолчанию

Цитата:
Сообщение от Luuzuk Посмотреть сообщение
У вас либо webBrowser1 == null, либо webBrowser1.Document == null. до поиска элемента "criteria" дело вообще не дошло
Вот мой код
Код:
string adress = "http://www.shanghairanking.com/SubjectCS2012.html";
webBrowser1.Navigate(adress);
HtmlElement element = webBrowser1.Document.GetElementById("criteria");
string selectedValue = element.GetAttribute("value");
Проверил, и webBrowser1 и webBrowser1.Document не равны null.
Помогите найти решение.
s500 вне форума Ответить с цитированием
Старый 25.03.2013, 18:48   #4
stalsoft
Форумчанин
 
Регистрация: 09.06.2011
Сообщений: 147
По умолчанию

Попробуй для начала поюзать что-то более подходящее для парсинга страниц, например html agility pack.

Сам юзал - очень удобная вещь.
У женщин чары образуются из стрингов;
А у программистов наоборот - стринги образуются из чаров;
stalsoft вне форума Ответить с цитированием
Старый 25.03.2013, 23:18   #5
Luuzuk
Форумчанин
 
Аватар для Luuzuk
 
Регистрация: 18.01.2012
Сообщений: 975
По умолчанию

Цитата:
webBrowser1.Navigate(adress);
Емнип, на работу метода Navigate требуется какое-то время (чтобы страничка успела загрузиться). Вы же сразу на следующей строке обращаетесь к webBrowser1.Document, который еще не успел загрузиться и равен null на момент выполнения строки.

Ловите событие Navigated у WebBrowser, и с Document (в т.ч. GetElementById) работайте уже оттуда
Благодарить в репутацию. Проклинать — туда же
Luuzuk вне форума Ответить с цитированием
Старый 26.03.2013, 12:29   #6
s500
Пользователь
 
Регистрация: 09.04.2012
Сообщений: 10
По умолчанию

Luuzuk, stalsoft спасибо!
s500 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
кроссбраузно document.getElementById().click(); frommars JavaScript, Ajax 0 07.05.2012 11:43
getElementById Eldrich JavaScript, Ajax 4 11.11.2011 22:14
Ошибка на document.getelementbyid в ИЕ! Andrey771 JavaScript, Ajax 3 05.09.2011 20:05
особенности мозилы для document.getElementById Wi1D JavaScript, Ajax 4 29.04.2010 22:45
JavaScript. Проблема с GetElementById kirill555 Помощь студентам 1 14.02.2008 12:30