Просмотр списка выбора или щелчка по DIV со страницы ключевых слов Google Adwords

#watin #web-scraping #selectlist #google-ads-api

#watin #соскабливание полотна #список выбора #google-ads-api #нажмите #очистка веб-страниц

Вопрос:

Я перепробовал все, но безуспешно. Я использую Watin и C # .NET

То, что я делаю, собирается:

https ://adwords.google.com/o/Targeting/Explorer?__u=1000000000amp;__c=1000000000amp;ideaRequestType=KEYWORD_IDEAS#search.none

Примечание: Между https и :// нет пробела, но мне пришлось добавить его из-за проблемы с уценкой

Ввод капчи вручную (ввод текста из Watin).

После поиска по ключевым словам вы увидите, что внизу страницы у вас есть кнопки «Следующий» и «Предыдущий«.

Я хотел бы из WatiN перейти на страницу 2, 3,…

Звучит просто, нажмите на div идентификатором gwt-debug-aw-paging-next ), и он перейдет на следующую страницу, но этого не происходит.

Я перепробовал FireEvent , click , KeyDown , все … но это не работает.

Я также попытался выбрать 100 результатов из Selectlist , но опять же, это не сработало.

Я пробовал это всеми способами:

 browser.DomContainer.SelectList("gwt-debug-aw-paging-list-box").Option("100").Select();
  

Кажется, что ничего не работает, когда речь идет о кнопках в правом нижнем углу страницы.

Мне удалось «имитировать» клик по общим или точным результатам, но не с нижними кнопками.

Есть какие-нибудь предложения?

Правка 1:
я загрузил изображение, чтобы вы могли видеть именно ту кнопку, о которой я говорю:

пример

Нажмите здесь, чтобы увеличить изображение.

 <div id="gwt-debug-aw-paging-next" class="goog-button-base goog-inline-block goog-button aw-btn aw-pagination-button" tabindex="0" title="Next page">
<input type="text" tabindex="-1" style="opacity: 0; height: 1px; width: 1px; z-index: -1; overflow: hidden; position: absolute;">
<div class="goog-button-base-outer-box goog-inline-block">
<div class="goog-button-base-inner-box goog-inline-block">
<div class="goog-button-base-pos">
<div class="goog-button-base-top-shadow">amp;nbsp;</div>
<div class="goog-button-base-content">
<span id="gwt-debug-aw-paging-next-content" class="aw-pagination-next">amp;nbsp;</span>
</div>
</div>
</div>
</div>
  

Ответ №1:

Пожалуйста, вставьте разметку элемента, на который вы хотели бы щелкнуть, включая один или два родительских элемента.

Это поможет предложить решения.

Спасибо.


Значит, следующее не работает?

 using(IE ie = new IE("your-page's-url"))
{
    // ... any steps needed to bring up the page in question ...
    ie.Element("gwt-debug-aw-paging-next").Click();
}
  

Если нет, возможно, попробуйте щелкнуть по промежутку gwt-debug-aw-paging-next-content.

Комментарии:

1. Я попытался щелкнуть по промежутку, попытался щелкнуть по div. Пробовал Click, пробовал fireEvent, пробовал Focus KeyboardDown… все. Все еще нужна помощь с этим: (

2. Я провел больше тестов, и кажется, что в Watin я не получаю весь HTML-код целиком. Когда я захожу из браузера (Firefox с firebug) Я получаю <тип ввода=»текст»> сразу после первого DIV. Но когда я делаю это из Watin, я не вижу этого элемента. Я попытался просмотреть HTML и из Watin, у меня есть 3 div с одинаковым идентификатором, но в Firefox у меня этого нет. В чем может быть проблема??

Ответ №2:

Мне удалось решить эту проблему. Другой программист дал мне этот совет, так что кредиты достаются ему.

Идея в том, что в Google adwords есть больше диапазонов с одинаковым идентификатором (странно, я знаю), поэтому нам нужно щелкнуть по каждому диапазону, а не только по первому.

Вот окончательный код, который необходимо добавить:

 var pagination = browser.Spans.Where(e =>
e.IdOrName == "gwt-debug-aw-paging-next-content").ToList();

foreach (var item in pagination)
item.Click();