如何关闭 iframe selenium java
How to close Iframe selenium java
iframe 是 aliexpress.com 中的第一个横幅
我让本地选择器关闭按钮,但无法切换到 iframe。不幸的是,我不知道 iframe 的 id。
已经尝试通过选择器“iframe”获取元素,但对我不起作用。
有没有办法获取没有id的iframe,或者获取id,或者在外面关闭iframe?
你应该可以通过xPath抓取然后switchTo()到frame。另一种选择是使用 selenium 驱动程序作为 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. - 还有很多其他横幅,因此值得将浏览器 window 最大化。
iframe 是 aliexpress.com 中的第一个横幅 我让本地选择器关闭按钮,但无法切换到 iframe。不幸的是,我不知道 iframe 的 id。 已经尝试通过选择器“iframe”获取元素,但对我不起作用。 有没有办法获取没有id的iframe,或者获取id,或者在外面关闭iframe?
你应该可以通过xPath抓取然后switchTo()到frame。另一种选择是使用 selenium 驱动程序作为 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. - 还有很多其他横幅,因此值得将浏览器 window 最大化。