Как создать массивы из show_links, show_tables, show_images, show_divs, которые можно использовать для создания повторно используемых тестов - PullRequest
0 голосов
/ 02 января 2011

Я новичок в программировании / Ruby / Watir, и я хотел бы знать, как создавать массивы из содержимого, извлеченного с веб-сайтов.

По сути, я предлагаю пользователю проверить сайт, URL-адрес:вошел, и (в конце концов) я хотел бы иметь возможность предоставить пользователю выбор того, на какие элементы страницы они хотели бы ориентироваться.

###################### 
# User prompts for site to be tested   #
#######################

устанавливает инструмент тестирования автоматизации: введите веб-сайт, который выхочу проверить 'url = gets.chomp ставит' тестирование следующего веб-сайта: '' '+ url +' '' '

##################### 
# Watir method for invoking IE     #
#####################
  require 'watir/ie'
  ie = Watir::IE.new
  ie.goto url

  **ie.show_links.each {|l| puts l}**

Линия, выделенная жирным шрифтом, получена с другого сайта Watir / Ruby, когда она былауспешно распечатывать все ссылки, я предпочел бы сохранить ссылки / изображения / таблицы / div, а затем дать пользователю возможность как / что будет проверено.Очевидно, мне нужно лучше понять, как работают массивы в Ruby.Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 02 января 2011

Они уже находятся в массиве: ie.links http://wtr.rubyforge.org/rdoc/1.6.5/classes/Watir/Container.html#M000318

Вы найдете их для многих типов, которые вы хотите выбрать. Удачи

0 голосов
/ 08 февраля 2011

Содержание не совсем то же самое, что и элементы.Элементы страницы хранятся в контейнерах и ссылаются на элементы по своему содержанию (среди прочего).Поэтому, если вы хотите сохранить несколько идентификаторов текстовых полей, вы можете создать массив таким образом ...

text_field_id_array = Array.new
ie.text_fields.each { |field| text_field_id_array << field.id }

Но при хранении самих текстовых полей хранится только «указатель».Поэтому, если у вас была ссылка на странице, и вы сохранили элемент ссылки с помощью ie.link (: index, 1), то сделали что-то, что создало ссылку на странице ПЕРЕД сохраненной ссылкой, а затем щелкнули по сохраненной ссылке, это не будетнажмите ту же ссылку, которую вы сохранили.Было бы нажать «ie.link (: index, 1)».Первая ссылка на странице ...

mylink = ie.link(:index, 1)           # Store the link you want
ie.button(:name, 'createsanearlierlink').click
mylink.click                          # Click the wrong link

Я действительно надеюсь, что это имеет смысл.

...