查找img,然后使用alt locator单击

时间:2019-06-03 03:50:05

标签: selenium-webdriver rspec capybara

我正在尝试使用alt来查找并单击Amazon书店上的img,但只能用一个词(在这种情况下为“游戏”一词)。

我尝试过的事情:

 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 :(得分:0)

要通过其alt属性的部分内容查找img元素,可以使用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')