Находим img и нажимаем с помощью alt locator - PullRequest
0 голосов
/ 03 июня 2019

Я пытаюсь найти и нажать на img в книжном магазине Amazon, используя alt для поиска, но только с одним словом (в данном случае словом «Game»).

Что я пробовал:

 describe 'test' do

it 'visit Amazon' do

    visit 'https://www.amazon.com/s/browse?_encoding=UTF8&node=283155&ref_=nav_shopall-export_nav_mw_sbd_intl_books'

        expect(page.find('#image')['alt']).to match(/Game/)

        puts 'ok'


end

end

Элемент на сайте:

<img onload="window.uet &amp;&amp; uet.call &amp;&amp; uet(&quot;cf&quot;);" src="https://images-na.ssl-images-amazon.com/images/I/81VqkhMFpuL._AC_SR201,266_.jpg" alt="A Game of Thrones: A Song of Ice and Fire, Book 1" class="aok-align-center">

Спасибо за вашу помощь!

1 Ответ

0 голосов
/ 03 июня 2019

Чтобы найти элемент img по частичному содержимому его атрибута alt, вы можете использовать селекторы атрибутов CSS lik

page.find('img[alt*="Game"]').click # alt attribute contains Game
page.find('img[alt~="Game"]').click # alt attribute contains the word Game

Другой вариант, если предположить, что img деформирован ссылкой, будет использовать тот факт, что click_link (по умолчанию частично) будет соответствовать атрибуту: alt упакованного изображения - https://www.rubydoc.info/github/teamcapybara/capybara/Capybara/Node/Actions#click_link-instance_method

page.click_link('Game')
...