我正在尝试为 Web 应用程序自动化一些测试,并且许多测试需要在<iframe>
. 我将一个锚点从一个 jspContainer 拖到同一个 jspContainer 中的另一个<iframe>
。Selenium::WebDriver::Error::MoveTargetOutOfBoundsError:
尝试执行拖放操作时,我不断收到。尝试使用该hover
方法时,我也遇到了同样的错误。但是当我使用该click
方法单击锚点时,它可以正常工作,并且我可以看到链接突出显示,就好像它已被单击一样。下面是我的一些代码,并通过 irb 输出。
irb(main):048:0> a = b.frame(:id => "Iframe").link(:text => "anchor")
=> #<Watir::Anchor:0x..f02685d6 located=false selector={:text=>"anchor", :tag_name=>"a"}>
irb(main):049:0> c = b.frame(:id => "Iframe").div(:id => "drop")
=> #<Watir::Div:0x5ed628c6 located=false selector={:id=>"drop", :tag_name=>"div"}>
irb(main):050:0> a.wd.location
=> #<struct Selenium::WebDriver::Point x=295, y=339>
irb(main):051:0> c.wd.location
=> #<struct Selenium::WebDriver::Point x=30, y=329>
irb(main):052:0> c.style
=> "width: 250px; height: 100px;"
irb(main):053:0> b.frame(:id => "Iframe").locate
=> #<Watir::FramedDriver:0x24f3738 @element=#<Selenium::WebDriver::Element:0x..fc6af7d56 id="{11f61368-a4ea-4d
a9-9084-6307abcda2aa}">, @driver=#<Selenium::WebDriver::Driver:0x..f97d59986 browser=:firefox>>
irb(main):054:0> a.drag_and_drop_on c
Selenium::WebDriver::Error::MoveTargetOutOfBoundsError: Given coordinates (432, 542) are outside the document.
Error: MoveTargetOutOfBoundsError: The target location (432, 544) is not on the webpage.
irb(main):056:0* a.hover
Selenium::WebDriver::Error::MoveTargetOutOfBoundsError: Given coordinates (432, 542) are outside the document.
Error: MoveTargetOutOfBoundsError: The target location (432, 544) is not on the webpage.
irb(main):059:0* a.click
=> []
我注意到的一件事是在设置变量a
和 c 时 irb 的输出说located=false
。但是我可以使用exists?
、click
和flash
方法来表明 watir-webdriver 确实知道这些元素在哪里。任何帮助或建议将不胜感激。
我正在使用 watir-webdriver 0.6.2、Firefox 18.0.2、Windows 7 64 位