Ruby Watir, HTMLElement Object index - PullRequest
       7

Ruby Watir, HTMLElement Object index

0 голосов
/ 12 октября 2018

ДАЕТ следующий объект WATIR:

my_links["Reports"]
=> #<Watir::Anchor: located: true; {:tag_name=>"a", :index=>8}>

tag_name легко получить:

my_links["Reports"].tag_name
2018-10-12 12:29:00 INFO Watir <- `Verifying precondition #<Watir::Anchor: located: true; {:tag_name=>"a", :index=>8}># for tag_name`
2018-10-12 12:29:00 INFO Watir <- `Verified precondition #<Watir::Anchor: located: true; {:tag_name=>"a", :index=>8}>#assert_exists`
2018-10-12 12:29:00 INFO Watir -> `Executing #<Watir::Anchor: located: true; {:tag_name=>"a", :index=>8}>#tag_name`
2018-10-12 12:29:00 INFO Watir <- `Completed #<Watir::Anchor: located: true; {:tag_name=>"a", :index=>8}>#tag_name`
=> "a"

Но как мне получить индексный номер?Я вижу, что это целое число 8, но я не могу найти метод для его возврата.

1 Ответ

0 голосов
/ 12 октября 2018

Хеш, {:tag_name=>"a", :index=>8}, исходит от селектора элемента.Для доступа к этому существует средство чтения атрибутов:

my_links["Reports"].selector
#=> {:tag_name=>"a", :index=>8}

Вы можете получить доступ к индексу из этого хэша:

my_links["Reports"].selector[:index]
#=> 8

Обратите внимание, что элементы, извлеченные из коллекции, всегда будут иметь индекс.Извлечение отдельного элемента может не произойти, что означает, что индекс будет nil:

browser.link.selector
#=> {:tag_name=>"a"}

browser.link.selector[:index]
#=> nil

Однако, если индекс не указан, вы можете предположить, что он равен нулю.Чтобы избежать nil, укажите значение по умолчанию:

browser.link.selector.fetch(:index, 0)
#=> 0
...