gpt4 book ai didi

javascript - 使用 selenium 在 iframe 中注入(inject) Javascript

转载 作者:行者123 更新时间:2023-11-28 18:21:59 32 4
gpt4 key购买 nike

我是 Selenium 的新手。我想点击一个 url,搜索所有 iframe,并在每个 iframe 中,我想注入(inject)一段 Javascript 代码。那么我该怎么做呢。到目前为止,我已经想出了基本的selenium代码,但不知道如何注入(inject)JS。

public class Poc {
public static void main(String[] args) {
System.setProperty("webdriver.chrome.driver","/home/xxx/xxx/xxx/chromedriver");
WebDriver driver = new ChromeDriver();
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
driver.get("http://www.sss.org/");

List<WebElement> elements = driver.findElements(By.tagName("iframe"));
for(WebElement element:elements) {
System.out.println(element.getAttribute("id"));
}
driver.close();
System.exit(0);

}
}

最佳答案

要将代码注入(inject)到每个 iframe 中,您首先必须切换到它

import org.openqa.selenium.JavascriptExecutor;

List<WebElement> elements = driver.findElements(By.tagName("iframe"));
for(WebElement element:elements) {
driver.switchTo().defaultContent();
driver.switchTo.frame(element);
if (driver instanceof JavascriptExecutor) {
((JavascriptExecutor) driver).executeScript("alert('hello world');");
}
System.out.println(element.getAttribute("id"));
}

关于javascript - 使用 selenium 在 iframe 中注入(inject) Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39752880/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com