首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Watir webdriver鼠标悬停(悬停)- Firefox Chrome IE之间的差异

Watir webdriver鼠标悬停(悬停)- Firefox Chrome IE之间的差异
EN

Stack Overflow用户
提问于 2013-04-05 21:50:47
回答 1查看 4.5K关注 0票数 3

我试图用.hover方法在一个公共网站上触发鼠标,但似乎只在Chrome上有效。其他浏览器会生成错误或不显示任何信息。

我尝试了一些替代方法,比如使用内部Javascript的Watir的.fire_event.execute_script,但在火狐和IE上都失败了。Watir Classic给出了同样的结果。

我不明白这是关于Watir语法的问题,是关于特定于浏览器的语法的问题,还是关于不支持的浏览器版本的问题。

代码语言:javascript
复制
require "rubygems"
require "watir-webdriver"

BROWSER = Watir::Browser.new :chrome
BROWSER.goto("http://france.meteofrance.com/")
sleep 10 # wait until flash ads are closed
BROWSER.a(:class, "p593500Content").when_present.hover # works, on Chrome only
puts BROWSER.div(:id, "p593500Content").style # position of div after a.hover: left: 249px; top: 223px;

# Chrome - OK, tooltip displayed
# Firefox 7 to 19 - KO: d is undefined in driver_component.js (sometimes l. 7024, or l. 8587)
# IE8, IE9 - KO (maybe OK with IE7): 'unable to locate element, using {:class=>"p593500Content", :tag_name=>"a"}', nothing occurs

Ruby版本和Gem列表:

代码语言:javascript
复制
ruby 1.9.3p392 (2013-02-22) [i386-mingw32]

bigdecimal (1.1.0)                  rspec-expectations (2.13.0)
builder (3.2.0)                     rubyzip (0.9.9)
childprocess (0.3.9)                s4t-utils (1.0.4)
commonwatir (4.0.0)                 selenium-webdriver (2.31.0)
cucumber (1.2.3)                    subexec (0.2.2)
diff-lcs (1.2.1)                    user-choices (1.1.6.1)
ffi (1.6.0 x86-mingw32)             watir (4.0.2 x86-mingw32)
gherkin (2.11.6 x86-mingw32)        watir-classic (3.6.0)
hoe (3.5.2)                         watir-page-helper (1.0.3)
io-console (0.3)                    watir-webdriver (0.6.2)
json (1.7.7, 1.5.5)                 websocket (1.0.7)
mini_magick (3.5.0)                 win32-api (1.4.8 x86-mingw32)
minitest (2.5.1)                    win32-process (0.7.1)
multi_json (1.7.2)                  win32screenshot (1.0.8)
nokogiri (1.5.7.rc3 x86-mingw32)    windows-api (0.4.2)
rake (0.9.2.2)                      windows-pr (1.2.2)
rautomation (0.8.0)                 xml-simple (1.1.2)
rdoc (3.9.5)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-06 00:19:44

您在IE中看到的错误发生在它试图悬停之前。它的意思是,它找不到你想要调用悬停的东西。因此,您需要弄清楚为什么会发生这种情况。

一些潜在的原因:

  • 运行这些浏览器(或浏览器)的系统足够慢,以至于元素还没有被呈现(通常是通过客户端javascript或ajax类型的操作)
  • 超文本标记语言是不同的,项目具有不同的属性。(顺便说一下,这在你的情况下似乎不是问题,至少不是基于在IE8中查看该网站)
  • 超文本标记语言是不同的,项目在IE8中,否则就会发生,这会阻止在那个时刻访问DOM,例如,可能你有某种模式,比如浏览器要求安装

,或者浏览器设置中的某种插件或something.

  • Something会阻止元素在

中呈现

可以尝试的一件事是延长when_present操作的超时,以便给它更多的时间

一个潜在的故障排除步骤可能是在该行之前进行一些休眠,并以10秒为间隔拍摄一些屏幕截图,这样您就可以看到(至少在视觉上)浏览器在该点呈现的内容是在Nord-Pas-de-Calais呈现的地图的那一部分。是否有模式弹出窗口或其他浏览器警告?

基于错误,FF问题似乎完全不同,这似乎是一个webdriver问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15835696

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档