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

Moh*_*hit 3 c# java iframe selenium selenium-webdriver

对于 Selenium WebDriver:我使用的是 Eclipse IDE 和 Java 代码

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

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

1 个父框架:MainFrame
3 个子框架:左、中、右

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

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

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

Nau*_*nja 5

您可以先将框架存储为元素变量,然后再切换到它。

下面是一个例子:

var frameExample = driver.FindElement(By.className("myFrame"));
driver.switchTo().frame(frameExample);
Run Code Online (Sandbox Code Playgroud)

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