无法找到Selenium中的帧

时间:2017-03-04 16:19:28

标签: selenium

我是Selenium的新手并尝试使用icloud.com进行练习。我编写了下面的代码,但无法找到框架,但是当我在控制台上进行框架定位时。

driver.get("https://www.icloud.com");
driver.manage().window().maximize();
driver.manage().timeouts().pageLoadTimeout(3000, TimeUnit.SECONDS);     
        driver.switchTo().frame(driver.findElement(By.xpath("//iframe[@title='Apple Id Sign-In'][@id='auth-frame'][@class='atv4 sc-view']")));

1 个答案:

答案 0 :(得分:0)

实际上您的网站需要花时间加载iframe需要使用ExplicitWait来查看iframe

    driver.get("https://www.icloud.com");
    driver.manage().window().maximize();
    driver.manage().timeouts().pageLoadTimeout(3000, TimeUnit.SECONDS);     

    WebDriverWait wait =new WebDriverWait(driver, 120);
    wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//iframe[@title='Apple Id Sign-In'][@id='auth-frame'][@class='atv4 sc-view']")));

    driver.switchTo().frame(driver.findElement(By.xpath("//iframe[@title='Apple Id Sign-In'][@id='auth-frame'][@class='atv4 sc-view']")));

    driver.findElement(By.id("appleId")).sendKeys("hello");