4
[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 无法找到元素的问题,这是由于帧,但在这里我们没有在任何帧中。

4

2 回答 2

2

据我所知,第一张图片的 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 
于 2013-05-29T08:19:55.840 回答
2

我试着去做,但没有找到。通过在另一个网站上做完全相同的事情,它可以工作。

您的页面开始:

<?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。

于 2013-05-29T08:08:08.703 回答