126邮箱登录---iframe

来源:互联网 发布:淘宝申诉失败客服电话 编辑:程序博客网 时间:2024/04/28 21:50

开始直接定位根本定位不了,后来发现里面包了一个iframe,解决办法如下:

写法一:

System.out.println("126 mail login");
WebDriver driver = new FirefoxDriver();
driver.get("http://www.126.com");

driver.findElement(By.id("lbNormal")).click();
//driver.switchTo().frame(driver.findElement(By.id("x-URS-iframe")));//注意iframe
driver.switchTo().frame("x-URS-iframe");//这样写也可以,上一句那样也可以,效果相同

driver.findElement(By.name("email")).clear();
driver.findElement(By.name("email")).sendKeys("改下你的账号");
driver.findElement(By.name("password")).clear();
driver.findElement(By.name("password")).sendKeys("密码");


写法二:

WebElement account = driver.findElement(By.id("lbNormal"));
 account.click();
 WebElement iframeforlogin = driver.findElement(By.id("x-URS-iframe"));  
 driver.switchTo().frame(iframeforlogin);
 
 WebElement username = driver.findElement(By.name("email"));
 WebElement password = driver.findElement(By.name("password"));
 WebElement submitbutton = driver.findElement(By.id("dologin"));
 username.clear();
 username.sendKeys("改下你的账号");
 password.clear();
 password.sendKeys("密码");
 submitbutton.click();


注意:

1.中间注释掉的是另一种详细些的写法,两种都可以执行成功

2.126输入框不能使用id、xpath定位,因为它的id是一直在变化的(我开始就没注意到这点)

3.注意不要把上图画出的第1个红框中的定位忘记了,虽然一进网页就显示的账号密码登录,但是没有定位那里也会找不到

0 0
原创粉丝点击