Программное нажатие кнопки веб-страницы в приложении 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