Программное нажатие кнопки веб-страницы в приложении Windows Forms

Я работаю над проектом, который представляет собой Анализ статей из Google Scholar. В основном я занимаюсь синтаксическим анализом HTML, сохранением связанных полей в базе данных и т. Д. Однако я застрял в какой-то момент, когда я беру заголовки публикаций, я понял, что могу получить первые двадцать элементов. Но есть шестьдесят статей в связанном счете:

http://scholar.google.com/citations?user=B7vSqZsAAAAJ

Поэтому я считаю, что в качестве решения мне нужно программно нажать кнопку "Показать больше", чтобы иметь все заголовки, места публикации и т. Д.

Как вы думаете? Как я могу выполнить такое действие?

Редактировать: я проверил кнопку "Показать больше", хотя на следующей странице нечего показывать, его HTML-код остается прежним. В качестве решения я могу использовать цикл для n раз. Тем не менее, я ищу более надежное решение. Спасибо за ваше время!

2 ответа

Если он нажимает на кнопку в элементе управления WebBrowser в приложении Windows Form, тогда "Да", вы можете сделать это. Есть способы получить больше контроля над идентификацией с помощью XPath.

(Возможно, вам придется использовать Javascript, чтобы использовать XPath для взаимодействия объектов - поскольку вы не просили об этом, я предполагаю, что вам это не нужно)

webBrowser.Navigate("http://www.google.com");

//   Or

HtmlElement textElement = webBrowser.Document.All.GetElementsByName("q")[0];
textElement.SetAttribute("value", "your text to search");
HtmlElement btnElement = webBrowser.Document.All.GetElementsByName("btnG")[0];
btnElement.InvokeMember("click");

Или даже набрав в текстовых полях

webBrowser1.Document.GetElementById("gs_tti0").InnerText = "hello world";

Если это именно этот сайт, есть простой обходной путь. Измените строку запроса на то, какие записи вы хотите.

http://scholar.google.com/citations?user=B7vSqZsAAAAJ& cstart = 0 & pagesize = 2000

Другие вопросы по тегам