2017-03-04 4 views
1

Ich bin neu bei Selenium und versuche mit icloud.com zu üben. Ich habe den Code unten geschrieben, aber der Frame kann nicht gefunden werden, aber wenn ich auf der Konsole mache, wird der Frame gefunden.Frame in Selen kann nicht gefunden werden

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

verwenden Sie einen Fehler gegenüber? – NarendraR

Antwort

0

Eigentlich Ihre Website Zeit in Anspruch nehmen iframe laden müssen ExplicitWait, um die Sichtbarkeit von 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"); 
+0

Vielen Dank! Es funktionierte, als ich auf Iframe wartete, wirklich schätzen – newtoSelenium