WatiN SelectList или DIV Нажмите со страницы ключевых слов Google Adwords - PullRequest
0 голосов
/ 19 мая 2011

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

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

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

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

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

После поиска по ключевым словам вы увидите, что внизу страницы у вас есть кнопка Next и Previous .

Я бы хотел от 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 :
Я загрузил изображение, чтобы вы могли видеть именно ту кнопку, о которой я говорю:

example

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

<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>

Ответы [ 2 ]

0 голосов
/ 06 июня 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();                                
0 голосов
/ 19 мая 2011

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

Это поможет в предложении решений.

Спасибо.


Так что следующее не работает?

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();
}

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

...