package com.my.homework; import java.util.regex.Pattern; import java.awt.AWTException; import java.util.concurrent.TimeUnit; import org.junit.*; import static org.junit.Assert.*; import static org.hamcrest.CoreMatchers.*; import org.openqa.selenium.*; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.firefox.FirefoxProfile; import org.openqa.selenium.firefox.internal.ProfilesIni; import org.openqa.selenium.support.ui.Select; import com.my.webdriver.RobotKeyboard; public class CreateFileCaseTest { private WebDriver driver; private String baseUrl; private boolean acceptNextAlert = true; private StringBuffer verificationErrors = new StringBuffer(); @Before public void setUp() throws Exception { ProfilesIni pi = new ProfilesIni(); FirefoxProfile profile = pi.getProfile("default"); driver = new FirefoxDriver(); baseUrl = "https://my.worktile.com"; driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); driver.manage().timeouts().pageLoadTimeout(30, TimeUnit.SECONDS); } @Test public void testWjy() throws Exception { driver.get(baseUrl + "/"); driver.manage().window().maximize(); Thread.sleep(3000); //调用登录方法 login("13813919424","wjy123456"); assertTrue(isElementPresent(By.xpath("//*[@id='btn_leftmenu_shortcut_create']/i"))); driver.findElement(By.cssSelector("i.wtfont.wtf-project")).click(); Thread.sleep(2000); driver.findElement(By.xpath(".//*[@id='leftmenu_content']/dl/div/dd[2]/div/ul/li[3]/a[2]/span")).click(); Thread.sleep(1000); driver.findElement(By.linkText("文件")).click(); Thread.sleep(1000); //driver.findElement(By.cssSelector("a.file-pic.file-picfolder")).click(); driver.findElement(By.xpath("//*[contains(text(), '练习')]")).click(); Thread.sleep(1000); driver.findElement(By.xpath("//div[@id='main']/div/div[2]/data-ui-view/ui-view/div/div/div/div/div[2]/ui-view/div/div/button")).click(); //调用添加文件方法 addFile(); //验证上传是否成功 assertTrue(isElementPresent(By.xpath("//*[contains(text(), 'ML0_8_wujingyu.txt')]"))); } //添加文件 public void addFile() throws InterruptedException, AWTException { Thread.sleep(5000); RobotKeyboard.getInstance().type("d:\ML0"); Thread.sleep(1000); //为了解决输入法干扰,上面输入模糊匹配后,加了一个向下键录入文件名 RobotKeyboard.getInstance().typeKey("Down", 1); Thread.sleep(1000); RobotKeyboard.getInstance().typeKey("Tab", 2); Thread.sleep(1000); RobotKeyboard.getInstance().typeKey("Enter", 1); } //登录操作 public void login(String p_user,String p_pwd){ //driver.findElement(By.cssSelector("button.btn.btn-login")).click(); driver.findElement(By.xpath("//*[contains(text(), '登录基础版')]")).click();////*[contains(text(), '登录基础版')] driver.findElement(By.name("login_name")).clear(); driver.findElement(By.name("login_name")).sendKeys(p_user); driver.findElement(By.name("login_password")).clear(); driver.findElement(By.name("login_password")).sendKeys(p_pwd); driver.findElement(By.xpath("//button[@type='button']")).click(); try { Thread.sleep(5000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } //判断是否有广告出现 if (isElementPresent(By.xpath("//*[@id='ng-app']/body/div[1]/div/div/div/div[1]/span/i"))) driver.findElement(By.xpath("//*[@id='ng-app']/body/div[1]/div/div/div/div[1]/span/i")).click(); //判断是否登录成功 assertTrue(isElementPresent(By.xpath("//*[contains(text(), '吴靖宇')]"))); } @After public void tearDown() throws Exception { driver.quit(); String verificationErrorString = verificationErrors.toString(); if (!"".equals(verificationErrorString)) { fail(verificationErrorString); } } private boolean isElementPresent(By by) { try { driver.findElement(by); return true; } catch (NoSuchElementException e) { return false; } } private boolean isAlertPresent() { try { driver.switchTo().alert(); return true; } catch (NoAlertPresentException e) { return false; } } private String closeAlertAndGetItsText() { try { Alert alert = driver.switchTo().alert(); String alertText = alert.getText(); if (acceptNextAlert) { alert.accept(); } else { alert.dismiss(); } return alertText; } finally { acceptNextAlert = true; } } }