如何在watir中找到特定图像?

时间:2013-05-29 07:29:09

标签: ruby selenium automation watir-webdriver

[1] pry(main)> require 'watir-webdriver'
=> true
[2] pry(main)> browser = Watir::Browser.new
=> #<Watir::Browser:0x61b0b0e094c1512a url="about:blank" title="">
[3] pry(main)> browser.goto 'm.racingnetwork.com.au'
=> "http://m.racingnetwork.com.au/"
[4] pry(main)> browser.frames.size
=> 0
[5] pry(main)> browser.imgs.size
=> 12
[6] pry(main)> x = browser.imgs[0].src
=> "http://m.racingnetwork.com.au/mobile-telstra-racingnetwork-production/theme/img/bpBannerSportLogo_170.png"
[7] pry(main)> browser.img(:src, x).exist?
=> false
[8] pry(main)> browser.img(:src, /mobile/).exist?
=> false
[9] pry(main)> browwer.img.exist?
=> true
[10] pry(main)> browser.img.id
=> ""

为什么我无法访问该图像,我的定位器中是否存在语法错误?

不幸的是,在这种情况下我没有像元素id这样的更好的定位器。我最后一次遇到Watir无法找到元素的问题,这是由于帧,但这里我们没有任何帧。

2 个答案:

答案 0 :(得分:1)

我尝试这样做,但没有找到。通过在另一个网站上做同样的事情,它可以工作。

开始页面:

<?xml version="1.0"?>
<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">

开始我的比较:

<!DOCTYPE HTML>
<html lang="fr" itemscope="" itemtype="http://schema.org/Blog">

我看到的唯一区别是XML:您正在使用的页面是XML格式,您应该验证您不需要解析XML而不是经典HTML。

答案 1 :(得分:1)

据我所知,第一张图片的HTML如下所示:

<img class="greendot-logo" src="/mobile-telstra-racingnetwork-production/theme/img/bpBannerSportLogo_465.png" alt="" height="80" width="232">

你有这个:

> browser.img(:src, /mobile/).exist?
=> false

但我明白了:

> browser.img(:src, /mobile/).exist?
=> true 

所以,试试这个:

> browser.img(:src => "/mobile-telstra-racingnetwork-production/theme/img/bpBannerSportLogo_465.png").exists?
=> true