WatiN SelectList или DIV Click со страницы ключевых слов Google Adwords

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

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

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

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

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

После поиска по ключевым словам вы увидите внизу страницы кнопки Далее и Назад.

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

Звучит просто, нажмите на divid 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">&nbsp;</div>
<div class="goog-button-base-content">
<span id="gwt-debug-aw-paging-next-content" class="aw-pagination-next">&nbsp;</span>
</div>
</div>
</div>
</div>

person BlasterGod    schedule 19.05.2011    source источник


Ответы (2)


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

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

Спасибо.


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

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.

person GraehamF    schedule 19.05.2011
comment
Я попытался щелкнуть диапазон, попытался щелкнуть div. Пробовал Click, пробовал FireEvent, пробовал Focus + KeyboardDown... все. Все еще нужна помощь с этим :( - person BlasterGod; 22.05.2011
comment
Я сделал больше тестов, и кажется, что в Watin я не получаю весь HTML-код. Когда я захожу из браузера (Firefox с firebug), я получаю ‹input type=text› сразу после первого DIV. Но когда я делаю это из Ватина, я не вижу этого элемента. Я попытался просмотреть HTML и из Watin, у меня есть 3 div с одинаковым идентификатором, но в firefox у меня его нет. В чем может быть проблема?? - person BlasterGod; 31.05.2011

Мне удалось решить проблему. Эту подсказку мне дал другой программист, так что заслуга принадлежит ему.

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

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

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

foreach (var item in pagination)
item.Click();                                
person BlasterGod    schedule 06.06.2011