307641452 发表于 2016-9-14 16:32:15

selenium测试126邮箱登陆和新建联系人(java)

发到自己博客直接被扔进垃圾箱,这网站的博客是没法玩了,那就发帖也要玩!!

看的书里面有个测试126邮箱新增联系人的功能,用书中的代码已经完全无法定位了,所以就自己去写了代码测试了一下,搞了一下午才搞出来。
登陆的时候他的登陆信息都是放在一个iframe里面的,必须切换到这个frame才能进行操作;
新增联系人页面的定位还是有点困难。

package dhb.appModules;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.ie.InternetExplorerDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
import org.testng.Assert;
import org.testng.annotations.Test;
public class NewTest {
@Test
public void f() {
   WebDriver driver=new InternetExplorerDriver();
   driver.get("http://mail.126.com/");
   WebElement ifr=driver.findElement(By.tagName("iframe"));
   driver.switchTo().frame(ifr);
   WebElement name=driver.findElement(By.xpath("//input[@name='email']"));
   name.clear();
   name.sendKeys("dhbautotest");
   WebElement pswd=driver.findElement(By.name("password"));
   pswd.clear();
   pswd.sendKeys("duanhong");
   System.out.println(driver.getWindowHandle().toString());
   
WebElement button=driver.findElement(By.id("dologin"));
button.click();

driver.switchTo().defaultContent();
System.out.println(driver.getTitle());
WebDriverWait wait=new WebDriverWait(driver, 30);
wait.until(ExpectedConditions.textToBePresentInElement(By.id("spnUid"), "dhbautotest@126.com"));
   
System.out.println(driver.getTitle());
Assert.assertTrue(driver.getPageSource().contains("未读邮件"));
driver.findElement(By.xpath("//div[@id='dvMultiTab']/ul/li/div")).click();
WebElement pp=driver.findElement(By.xpath("//div[@id='dvContainer']/div/header/div/div/div/span"));
System.out.println(pp.getAttribute("class"));
pp.click();
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
WebElement username=driver.findElement(By.xpath("//div[@id='contact_edit_main_normal']/dl/dd/div/input"));
WebElement email=driver.findElement(By.xpath("//div[@id='iaddress_MAIL_wrap']/dl/dd/div/input"));
WebElement telno=driver.findElement(By.xpath("//div[@id='iaddress_TEL_wrap']/dl/dd/div/input"));
WebElement beizhu=driver.findElement(By.xpath("//div[@id='contact_edit_main_normal']/dl/dd/div/textarea"));
WebElement submit=driver.findElement(By.xpath("//div/div/div/div/span"));
username.sendKeys("棉花糖");
email.sendKeys("棉花糖@qq.com");
telno.sendKeys("13555555555");
beizhu.sendKeys("这是牛逼人物");
submit.click();
}
}

SunnyLan 发表于 2016-9-14 17:10:24

楼主看的是不是selenium2+java 虫师 126邮箱项目实战那本书?

SunnyLan 发表于 2016-9-14 17:14:01


可以用switchto()方法试下   public static void testIframe(WebDriver driver)
  {
    driver.get("E:\\StashFolder\\huoli_28@hotmail.com\\Stash\\Tank-MoneyProject\\浦东软件园培训中心\\我的教材\\Selenium Webdriver\\frame\\main.html"); 
     
    // 在 主窗口的时候
    driver.findElement(By.id("maininput")).sendKeys("main input");
    // 此时 没有进入到iframe, 以下语句会报错
    //driver.findElement(By.id("iframeinput")).sendKeys("iframe input");
         
    driver.switchTo().frame("frameA");
    driver.findElement(By.id("iframeinput")).sendKeys("iframe input");
     
    // 此时没有在主窗口,下面语句会报错
    //driver.findElement(By.id("maininput")).sendKeys("main input");
     
    // 回到主窗口
    driver.switchTo().defaultContent();
    driver.findElement(By.id("maininput")).sendKeys("main input");
  }

307641452 发表于 2016-9-14 17:18:02

SunnyLan 发表于 2016-9-14 17:10
楼主看的是不是selenium2+java 虫师 126邮箱项目实战那本书?

不是 我看的是吴晓华的 selenium webdriver 实战宝典

307641452 发表于 2016-9-14 17:20:10

SunnyLan 发表于 2016-9-14 17:14
可以用switchto()方法试下   public static void testIframe(WebDriver driver)
  {
 & ...

对正是用的你这种方法,我才测试通过的,目前我贴出来的代码是能够登陆成功并且新增联系人的了。
页: [1]
查看完整版本: selenium测试126邮箱登陆和新建联系人(java)