Обновление: я понял, что слишком быстро проверяю элемент, нужно было дать hdoc_Doc время для загрузки.Получение элемента по идентификатору и запуск события click работает.Проблема решена.
Я пытаюсь перейти на страницу x нескольких страниц результатов поиска в Startpage.com.Я могу успешно разобрать объект в IHTMLElement.getElementByID ("2");и я использую это событие Click (), чтобы запустить JavaScript за ним.Тем не менее документ остается на первой странице результатов поиска.
private void GetNextPage(int i_page)
{
HTMLDocument hdoc_Doc = (HTMLDocument)wb1.Document; // wb1 is at page one of search results
IHTMLElement element_Page = hdoc_Doc.getElementByID(i_page.ToString());
if (null != element_Page)
{
// element_Page.click(); // Changed to below statement
hdoc_Doc.getElementByID("2").click(); // It now works
}
// Now check to see which titles are showing
IHTMLElement element_OneCheck = hdoc.getElementByID("title_1"); // Page one search results
IHTMLElement element_TwoCheck = hdoc.getElementByID("title_11"); // this is on page 2 search results if it gets there...
if (null != element_OneCheck)
Console.WriteLine("Page One Still...");
if (null != element_TwoCheck)
Console.WriteLine("Page Two found...");
}
Результат: «Первая страница еще ...» Я даже пытался выполнить прямое действие с документом:
hdoc_Doc.getElementByID("2").click;
Еще раз это сработало, но не переместило документ на следующую страницу результатов поиска.Я также разобрал это с помощью HTMLAgilityPack, но это для анализа, не обрабатывающего ссылку javascript, поэтому я пошел по этому пути.Вот ссылка, которую я пытаюсь выполнить:
<a href="javascript:;" class="numbers_st" onclick="mysubmit(20); return false;" id="2">2</a>
Любая помощь будет принята с благодарностью!Я на .NET 4.0 использую VS 2010 (да, я знаю, что он старый, но Ultimate по сравнению с бесплатными версиями, которые у меня есть для более новой VS - поэтому я придерживаюсь 2010 для полной среды).