gpt4 book ai didi

java - 如何使用 Selenium 在框架/IFrame 和子框架上行走

转载 作者:太空宇宙 更新时间:2023-11-04 12:27:21 25 4
gpt4 key购买 nike

我正在使用 selenium 进行自动化测试,在框架和 iframe 上行走时遇到一些问题。

我有这个设置

<iframe id="1">
<iframe id="2">
<frame id="3">
<a id="4">

我希望用 Selenium 走完这条路,直到到达 id="4"。

我的测试是:

new WebDriverWait(driver, 30).until(ExpectedConditions.frameToBeAvailableAndSwitchToIt("1"));
new WebDriverWait(driver, 30).until(ExpectedConditions.frameToBeAvailableAndSwitchToIt("2"));
new WebDriverWait(driver, 30).until(ExpectedConditions.frameToBeAvailableAndSwitchToIt("3"));

driver.switchTo().frame("1");
driver.switchTo().frame("2");
driver.switchTo().frame("3");

问题是,它没有传递到第 2 帧(在这两种情况下),它进入第一个帧,但找不到第 2 帧。

有什么不同的方法吗? iframe 似乎与框架和 Selenium 不同,但我如何使用两者?

感谢您的宝贵时间!

编辑:找到更多信息,请查看。仍然需要访问相同的 div,1、2、3 和 4,但我需要访问的 iframe(2) 位于 div 内。

<iframe id="1">
<iframe id="anotherframe"></iframe>
<iframe id="anotherframe1"></iframe>
<div id="outside>
<iframe id="2">
<frame id="3">
<a id="4">
</frame>
</iframe>
</div>
<iframe id="anotherframe2"></iframe>
</iframe>

对此我很抱歉,代码太多了哈哈

谢谢!

编辑:

经过大约 90 次测试后,我让它正常工作,主要问题不是 Selenium 命令,而是页面本身,它动态加载并且具有随机 ID。

我只需要使用一个thread.sleep(30000);等了这么久才让它出现,然后它就走得神乎其神了。

非常感谢您的帮助,您的评论给了我如何使用它的新想法 =)

最佳答案

经过大约 90 次测试后,我让它正常工作,主要问题不是 Selenium 命令,而是页面本身,它动态加载并且具有随机 ID。

我只需要使用一个thread.sleep(30000);等了这么久才让它出现,然后它就走得神乎其神了。

最佳选择:

new WebDriverWait(driver, 30).until(ExpectedConditions.frameToBeAvailableAndSwitchToIt("1"));
new WebDriverWait(driver, 30).until(ExpectedConditions.frameToBeAvailableAndSwitchToIt("2"));
new WebDriverWait(driver, 30).until(ExpectedConditions.frameToBeAvailableAndSwitchToIt("3"));

非常感谢您的帮助,您的评论给了我如何使用它的新想法 =)

关于java - 如何使用 Selenium 在框架/IFrame 和子框架上行走,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38228035/

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