如何使用Java代码加快Selenium Webdriver中iFrame之间的切换?

如何使用Java代码加快Selenium Webdriver中iFrame之间的切换?,java,c#,selenium,iframe,selenium-webdriver,Java,C#,Selenium,Iframe,Selenium Webdriver,对于SeleniumWebDriver:我正在使用EclipseIDE和Java代码 正在测试的应用程序:内置C# 我的脚本需要在帧之间切换并执行一些操作。这需要经常做。问题在于,每当执行切换语句时,脚本执行就会变得非常慢(大约延迟20秒)。框架层次结构如下所示: 1父帧:大型机 3个子帧:左、中、右 任何一个开关的语句集如下所示: driver.switchTo().defaultContent(); driver.switchTo().frame("mainFrame"); //switch

对于SeleniumWebDriver:我正在使用EclipseIDE和Java代码

正在测试的应用程序:内置C#

我的脚本需要在帧之间切换并执行一些操作。这需要经常做。问题在于,每当执行切换语句时,脚本执行就会变得非常慢(大约延迟20秒)。框架层次结构如下所示:

1父帧:大型机
3个子帧:左、中、右

任何一个开关的语句集如下所示:

driver.switchTo().defaultContent();
driver.switchTo().frame("mainFrame"); //switching to parent frame. This statement causes the delay
driver.switchTo().frame("left"); //switching to left frame

请建议是否有办法避免此延迟。

您可以先将帧存储为元素变量,然后切换到它

以下是一个例子:

var frameExample = driver.FindElement(By.className("myFrame"));
driver.switchTo().frame(frameExample);

因此,基本上,您将帧存储在元素变量中,并在需要时进行切换,这将有助于解决性能问题。

您使用的是使用C#构建的Java应用程序?这是什么意思?你的代码在我看来像Java。你的代码在我看来很好,你怎么知道是帧切换花了20秒?谢谢你指出这一点杰夫。我已经更新了标题并添加了更多细节,以使信息更加清晰。你说得对,我使用的是Java代码。我知道哪种方法可能会导致延迟,我将其缩小为使用调试和断点的语句。谢谢Mystia!它就像一个符咒。所有的耽搁都过去了。就这样。:)在C#上,我得到的
frameElement无法转换为IWebElementReference