Я немного продвинулся в преобразовании некоторых тестовых тестов / спецификаций из Watir в Selenium. После моего последнего вопроса здесь и предложенного ответа я начал использовать Selenium 2.0 с WebDriver вместо Selenium 1.
В рассматриваемом примере речь идет о сборе всех ссылок в таблице в массив - эта часть завершена. Однако, как только ссылки находятся в массиве, единственным значимым способом, которым я могу взаимодействовать с ними, является .text. Использование @ driver.navigate.to Array [1] приводит к ошибке формата URL в браузере, а link.href или .src не являются допустимыми параметрами.
Реализация Watir собирала эти ссылки (страницы, добавленные пользователями через CMS), сохраняла их в массиве и затем посещала каждую страницу одну за другой, отправляя ведущую форму. Я полагаю, что я мог бы заставить это работать, используя Selenium и повторно посещая «домашнюю» страницу, которая содержит все ссылки между отправкой формы заявки, но это может означать сотни дополнительных загрузок страницы, кэшированных или нет.
Код пока:
'@countries = Array.new
@browser.navigate.to "http://www.testingdomain{$env}.com/global"
@browser.find_elements(:xpath, "//table[@class='global-list']//a").each do |link|
@countries << [link.text, link.href] ## The original WATIR line that needs an update
end #links
@countries.uniq! #DEBUG for false CMS content'
Ближайшим элементом, который я мог найти в документации по selenium-webdriver, был метод (string) .attribute, но, опять же, я не уверен, какие атрибуты