Как найти HTML-ссылку, используя Watir (3.0) и атрибут name

Контекст:

  • Win XP box, Ruby 1.9.2p290
  • список драгоценных камней watir # => watir (3.0.0) watir-classic (3.1.0)
  • список драгоценных камней sinatra # => sinatra (1.3.3)

Учитывая довольно упрощенный веб-сайт, как это:

require "sinatra"
get '/' do
    "<a href='http://example.com/' name='a_name' >Click me!</a>"
end

Когда я запускаю приложение sinatra через порт по умолчанию (4567) и…

Затем, в командной строке, я пытаюсь использовать ссылку через атрибут имени, я получаю исключение:

j:…>pry -r watir
[1] pry(main)> b = Watir::Browser.new
=> #<Watir::IE:0x1538fd32 url="about:blank" title="">
[2] pry(main)> b.goto "http://localhost:4567/"
=> 0.203129
[3] pry(main)> b.link( name: 'a_name' ).flash
Watir::Exception::MissingWayOfFindingObjectException: name is an unknown way of finding a <a> element (a_name)
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/watir-classic-3.1.0/lib/watir-classic/locator.rb:76:in `rescue in match?'

Я делаю это неправильно? На других элементах HTML поиск по имени все еще работает нормально. До сих пор предыдущие версии Watir также работали нормально. Что мне не хватает? Или использование атрибута name больше не поддерживается?

2 ответа

Решение

Так как сообщение об ошибке говорит name is an unknown way of finding a <a> element, Похоже name Атрибут больше не поддерживается для ссылок. Это похоже на ошибку для меня, так как, насколько я могу видеть name атрибут по-прежнему поддерживается для ссылок: http://www.w3.org/TR/html401/struct/links.html

Вы можете сообщить об ошибке здесь: https://github.com/watir/watir-classic/issues

Я думаю, что параметр ссылки не является правильным. Попробуй это:

b.link(:name => 'a_name').flash
Другие вопросы по тегам