gpt4 book ai didi

ruby - Watir webdriver 鼠标悬停(悬停)- Firefox Chrome IE 之间的区别

转载 作者:数据小太阳 更新时间:2023-10-29 08:12:50 25 4
gpt4 key购买 nike

我正在尝试使用方法 .hover 在公共(public)网站上触发鼠标,但它似乎只适用于 Chrome。其他浏览器生成错误或不显示任何信息。

我尝试了替代方法,例如 Watir 的 .fire_event 或带有内部 Javascript 的 .execute_script,但在 Firefox 和 IE 上都失败了。 Watir Classic 给出了相同类型的结果。

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

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 列表:

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)

最佳答案

您在 IE 中看到的错误出现在它试图悬停之前。它说它找不到你想要调用悬停的东西。因此,您需要弄清楚为什么会这样。

一些潜在的原因:

  • 运行这些浏览器(或多个浏览器)的系统速度足够慢,以至于元素尚未呈现(通常由客户端 javascript 或 ajax 类型的操作)
  • HTML 不同,项目具有不同的属性。 (顺便说一句,这似乎不是您的问题,至少不是基于在 IE8 中查看该站点)
  • HTML 不同,项目在框架中
  • 其他事情正在发生,这会阻止在那一刻访问 DOM,例如,您可能有某种模式,例如浏览器要求安装 flash 或某种插件或其他东西。
  • 浏览器设置中的某些内容阻止了元素的呈现

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

潜在的故障排除步骤可能是在该行之前暂停几次,然后每隔 10 秒截取一些屏幕截图,这样您就可以(至少在视觉上)看到浏览器在该点呈现的内容是在 Nord-Pas-de-Calais 绘制 map ?是否有模态弹出窗口或其他一些浏览器警告?

根据错误,FF 问题似乎完全不同,这似乎是网络驱动程序问题。

关于ruby - Watir webdriver 鼠标悬停(悬停)- Firefox Chrome IE 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15835696/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com