Selenium无法定位元素

今天在做163邮箱的自动化登录时,使用各种方法都无法定位元素,后来百度说是因为登录页面使用了框架,一检查,如下图:
Selenium无法定位元素_第1张图片

使用了内联框架iframe,原来定位用户名输入框,仅使用:WebElement user = driver.findElement(By.name(“email”));这一句代码,现在因为页面使用了框架,所以,要想定位该元素,要先定位到这个框架,即:
driver.switchTo().frame(“x-URS-iframe”);

以下是163邮箱登录的所有代码,代码最后两行是想要输出登录后的用户名,不知何故又是无法定位,希望知道的朋友指点!

package hello;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;

public class GetInfo {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        System.setProperty("webdriver.firefox.marionette","C:\\Program Files (x86)\\Mozilla Firefox\\geckodriver.exe");
        System.out.println("start selenium");

        WebDriver driver = new FirefoxDriver();
        driver.get("http://mail.163.com/");
        driver.switchTo().frame("x-URS-iframe");

        WebElement user = driver.findElement(By.name("email"));
        user.clear();
        user.sendKeys("XXXXXXXX");

        WebElement password = driver.findElement(By.name("password"));
        password.clear();
        password.sendKeys("XXXXXXXX");

        WebElement login = driver.findElement(By.id("dologin"));
        login.click();

        //String username = driver.findElement(By.xpath(".//*[@id='spnUid']")).getText();
        //System.out.println(username);
    }

}

你可能感兴趣的:(selenium)