我是硒的新手。我想点击一个网址,搜索所有的iframe,并在每个iframe中,我想注入一个Javascript代码。那我该怎么做呢到目前为止,我已经提出了基本的selenium代码,但不知道如何注入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);
}
}
答案 0 :(得分:1)
使用JavascriptExecutor在selenium中编写javascript代码
您的示例代码是
JavascriptExecutor js = (JavascriptExecutor) driver;
WebElement element = driver.findElement(By.linkText("Click ME"));
js.executeScript("arguments[0].setAttribute('attr', '10')",element);
答案 1 :(得分:1)
要将代码注入每个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"));
}