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