我是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']")));
答案 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");