3

我正在尝试为 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?clickflash方法来表明 watir-webdriver 确实知道这些元素在哪里。任何帮助或建议将不胜感激。

我正在使用 watir-webdriver 0.6.2、Firefox 18.0.2、Windows 7 64 位

4

0 回答 0