等待 iframe 打开并使用 Selenium 加载

发布于 2024-08-15 03:35:40 字数 544 浏览 5 评论 0原文

我有一个应用程序,用户单击按钮,触发 iFrame 打开。我在继续之前等待该框架打开负载时遇到了真正的麻烦。

我无法使用:

wait_for_page_to_load

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

我无法使用:

select_frame

因为框架尚未加载,

我留下了如此丑陋的东西

sleep(3)

所以在我可以选择框架并断言有关它的内容之前,

。关于如何正确执行此操作有什么建议吗?我不想使用 lib 特定的 JS,因为我正在提取 Selenium DSL 以在多个项目中使用。另外,我正在使用 selenium-client,所以任何基于 ruby​​ 的东西都会是一个优点。

干杯,

广告。

编辑:我似乎无法使用:

wait_for_frame_to_load

要么超时。

I have an app in which the user clicks a button, triggering an iFrame to open. I'm having real trouble waiting for this frame to open an load before continuing.

I can't use:

wait_for_page_to_load

because the it's not the page that loads, it's the iframe.

I can't use:

select_frame

because the frame hasn't loaded yet

so I'm left with the ever so ugly

sleep(3)

before I can select the frame and assert something about it.

Any suggestions on how to do this properly? I don't want to use lib specific JS as I am extracting a Selenium DSL for use across multiple projects. Also, I'm using selenium-client so anything ruby based would be a plus.

Cheers,

Ad.

edit: I can't seem to use:

wait_for_frame_to_load

either, it times out.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

放赐 2024-08-22 03:35:40

不确定这是否有效,因为 Iframe 与普通框架在单独的沙箱中运行,因为您可以进行跨站点页面调用,并且它们可能有自己的 JavaScript,您将无法与之交互。

@selenium.wait_for_frame_to_load "iframe", "30000"

如果您在 *chrome 或 *iehta 中运行测试,但目前没有任何东西可以测试,它可能可以工作

Not sure if this will work because Iframes run in a separate sandbox to normal frames because you can do cross site page calls and they may have their own JavaScript which you wont be able to interact with.

@selenium.wait_for_frame_to_load "iframe", "30000"

it may work if you run your tests in *chrome or *iehta but don't have anything at the moment to test with

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文