Как я могу автоматизировать ссылку Google на странице, над которой я работаю, с помощью watir-webdriver? - PullRequest
1 голос
/ 08 декабря 2011

Ссылка на страницу, над которой я работаю: http://www.whatcar.com/car-news/subaru-xv-review/260397

Я пытаюсь автоматизировать "щелчок по ссылке Google", но мне не везет, и я продолжаю получать сообщение об ошибке.

Ссылка HTML:

<a tabindex="0" role="button" title="" class="s5 JF Uu" id="button" href="javascript:void(0);" aria-pressed="false" aria-label="Click here to publicly +1 this."></a>

Мой код:

@browser.link(:class, "s5 JF Uu").click

Сообщение об ошибке:

unable to locate element, using {:class=>"s5 JF Uu", :tag_name=>"a"} (Watir::Exception::UnknownObjectException)
./step_definitions/11.rb:12:in `/^On the page I click 'Twitter' , Facebook and Google button$/'
11.feature:8:in `When On the page I click 'Twitter' , Facebook and Google+ button'

Ответы [ 3 ]

2 голосов
/ 09 декабря 2011

Ссылка внутри рамки.Чтобы сделать его еще более увлекательным, фрейм id меняется каждый раз при обновлении страницы.

browser.frames.collect {|frame| frame.id}
=> ["I1_1323429988509", "f3593c4f374d896", "f4a5e09c20624c", "stSegmentFrame", "stLframe"] 

browser.refresh
=> [] 

browser.frames.collect {|frame| frame.id}
=> ["I1_1323430025052", "fccfdf9410ef34", "f11036dad706668", "stSegmentFrame", "stLframe"] 

I1_1323429988509 и I1_1323430025052 - фрейм.Поскольку I1_ деталь всегда одинакова, и ни один другой кадр не имеет этого, вы можете получить доступ к кадру следующим образом:

browser.frame(:id => /I1_/)

Поскольку внутри кадра есть только одна ссылка:

browser.frame(:id => /I1_/).as.size
=> 1 

Вы можете щелкнуть ссылку следующим образом:

browser.frame(:id => /I1_/).a.click

Или, если вы предпочитаете быть более явным

browser.frame(:id => /I1_/).a(:id => "button").click

Это откроет новое окно браузера, и новый вызовВот!:)

1 голос
/ 09 декабря 2011

Эта ссылка "кнопка" находится внутри iframe.Читайте на ватире wiki , как обращаться с вещами в кадрах .Если этого недостаточно для того, чтобы он заработал, отредактируйте ответ с исправленным кодом, ошибкой и т. Д., И мы сможем продолжить работу с этого момента.

1 голос
/ 08 декабря 2011

Технический ответ: Класс кнопки на странице, на которую вы ссылаетесь, для меня отличается от класса, который вы перечисляете. Похоже, что он ведет себя по-разному в зависимости от файлов cookie на вашем локальном компьютере (которые будут отсутствовать во время сеанса Firefox или IE под управлением Watir).

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

Этический ответ: Сомнительно, что вы пытаетесь автоматизировать продвижение онлайн статей через социальные сети. Watir / Watir-Webdriver не является спам-ботом, а используемые вами сервисы специально запрещают использование автоматов / ботов.

...