首页 > 解决方案 > 是否有可能在 Selenium 中刷新某个帧

问题描述

我想使用 Selenium 刷新某个 IFrame。我想到的唯一方法是在某些 WebElement 上为 f5 使用 Key。

driver.switchTo().parentFrame();
driver.findElement(By.id("main")).sendKeys("\\uE035"); 

但它确实重新加载了整个页面,这不是我需要的。有一个选项可以在所选框架上使用鼠标右键重新加载它,然后您可以选择“重新加载框架”选项,但 chrome 没有为此提供快捷方式,这使得无法在某个 WebElement 上使用 SendKeys()。

标签: javaseleniumselenium-webdriver

解决方案


看起来您正在对 parentElement 而不是实际的 iFrame 元素进行刷新。

试试下面的东西。如果您有多个 iframe 元素,则需要使用不同的选择器。

        JavascriptExecutor js = (JavascriptExecutor) driver;
        js.executeScript("document.getElementsByTagName('iframe')[0].contentWindow.location.reload();");

推荐阅读