Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 等待iframe打开并加载Selenium_Ruby_Selenium_Automated Tests_Selenium Rc - Fatal编程技术网

Ruby 等待iframe打开并加载Selenium

Ruby 等待iframe打开并加载Selenium,ruby,selenium,automated-tests,selenium-rc,Ruby,Selenium,Automated Tests,Selenium Rc,我有一个应用程序,用户点击一个按钮,触发一个iFrame打开。在继续之前,我很难等待此帧打开加载 我不能使用: wait_for_page_to_load select_frame 因为加载的不是页面,而是iframe 我不能使用: wait_for_page_to_load select_frame 因为帧还没有加载 所以我只剩下那个些丑陋的人了 sleep(3) 在我可以选择框架并断言它之前 关于如何正确地做到这一点,有什么建议吗?我不想使用特定于lib的JS,因为我正在提取Sel

我有一个应用程序,用户点击一个按钮,触发一个iFrame打开。在继续之前,我很难等待此帧打开加载

我不能使用:

wait_for_page_to_load
select_frame
因为加载的不是页面,而是iframe

我不能使用:

wait_for_page_to_load
select_frame
因为帧还没有加载

所以我只剩下那个些丑陋的人了

sleep(3)
在我可以选择框架并断言它之前

关于如何正确地做到这一点,有什么建议吗?我不想使用特定于lib的JS,因为我正在提取Selenium DSL,以便在多个项目中使用。另外,我使用的是selenium客户端,所以任何基于ruby的东西都是有利的

干杯

广告

编辑:我似乎无法使用:

wait_for_frame_to_load

或者,它会超时。

不确定这是否会起作用,因为iFrame在一个单独的沙箱中运行,而普通的框架则运行在另一个沙箱中,因为您可以进行跨站点页面调用,并且它们可能有自己的JavaScript,您无法与之交互

@selenium.wait_for_frame_to_load "iframe", "30000"

如果您在*chrome或*iehta中运行测试,但目前没有任何东西可供测试,那么它可能会起作用

抱歉,伙计,忘了那个-也尝试过了。我可以在加载帧并选择它之后使用它,但是如果我在单击触发它的按钮后等待它,它就会超时。谢谢。我想可能是这样的。iFrame往往是沙盒,因为Browsersarrgh将其视为安全风险!解决了这个问题-我使用的是帧的ID(即#iframe),而不仅仅是帧的名称(iframe)。我现在在*chrome上工作。我选择帧,然后等待它加载,然后断言有关它的内容。然后我选择_frame(“relative=parent”)以退出该帧。干杯如何切换do iframe并等待onload=“javascript:pageload();functionalPageLoad();”在Ruby中重新加载页面?我发现自己打开了一个页面内的iframe,我可以访问它,然后页面重新加载,我无法再访问该框架。我已经读了很多关于等待、睡眠、时间、切换到帧然后切换到家长的答案,但是我无法达到我的目标。