簡體   English   中英

使用硒在iframe中注入Javascript

[英]Injecting Javascript in iframe using selenium

我是硒的新手。 我想點擊一個網址,搜索所有iframe,在每個iframe中,我都想注入Javascript代碼。 那我該怎么做。 到目前為止,我已經提出了基本的硒代碼,但是不知道如何注入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);

    }
}

使用JavascriptExecutor在Selenium中編寫JavaScript代碼

您的示例代碼是

JavascriptExecutor js = (JavascriptExecutor) driver;
WebElement element = driver.findElement(By.linkText("Click ME"));
js.executeScript("arguments[0].setAttribute('attr', '10')",element);

要將代碼注入每個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"));
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM