如何关闭Iframe Selenium Java

问题描述

iframe是aliexpress.com的第一条横幅 我让本地选择器关闭按钮,但无法切换到iframe。不幸的是,我不知道iframe的ID。 已经尝试通过选择器“ iframe”获取元素,但对我却不起作用。 有什么方法可以获取没有ID的iframe,获取ID或在外部关闭iframe?

解决方法

您应该能够通过xPath捕获它,然后将To()切换到框架。另一种选择是将硒驱动程序用作JavascriptExecutor,然后以该框架为根节点调用js脚本。

,

您可以使用Javascript将其删除:

@Test
public void iframe(){
    driver.get("https://aliexpress.com");
    driver.manage().window().maximize();
    WebElement iFrame = new FluentWait<>(driver)
            .withTimeout(Duration.ofSeconds(10))
            .ignoring(NoSuchElementException.class)
            .until(ExpectedConditions
                    .presenceOfElementLocated(By.xpath("//iframe[contains(@src,'campaign.aliexpress.com')]")));
    ((JavascriptExecutor)driver)
            .executeScript("arguments[0].remove();",iFrame);
    driver.findElement(By.xpath("//li[@class='product-item'][1]")).click();
}

P.S。-还有很多其他横幅,因此值得您将浏览器窗口最大化。