import java.awt.*; import java.awt.datatransfer.StringSelection; import java.awt.event.KeyEvent; import java.io.*; import java.util.concurrent.TimeUnit; import org.junit.*; import org.openqa.selenium.*; import org.openqa.selenium.chrome.*; import com.thoughtworks.selenium.SeleneseTestBase; public class SearchChineseCharacters extends SeleneseTestBase { private static WebDriver driver; static final int MAX_TIMEOUT_IN_SECONDS = 5; @BeforeClass public static void setUpBeforeClass() throws Exception { System.setProperty("webdriver.chrome.driver", System.getProperty("user.dir") + File.separator + "chromedriver.exe"); driver = new ChromeDriver(); String url = "http://cn.bing.com/"; driver.manage().window().maximize(); driver.manage().timeouts() .implicitlyWait(MAX_TIMEOUT_IN_SECONDS, TimeUnit.SECONDS); driver.get(url); } @AfterClass public static void tearDownAfterClass() throws Exception { if (driver != null) { System.out.println("運行結束!"); driver.quit(); } } @Test public void test() { String queryString = "Selenium自動化測試"; WebElement element = driver.findElement(By .xpath("//input[@id='sb_form_q']")); // 直接輸入查詢字符串 // element.sendKeys(queryString); // 下面的語句模擬複製粘貼功能、copy & paste // 向粘貼板中存放數據,還可以註釋掉下面的語句,進行手工複製一些東西到粘貼板 setClipboardData(queryString); // 模擬Ctrl+V,進行粘貼 Robot robot = null; try { robot = new Robot(); } catch (AWTException e1) { e1.printStackTrace(); } robot.keyPress(KeyEvent.VK_CONTROL); robot.keyPress(KeyEvent.VK_V); robot.keyRelease(KeyEvent.VK_V); robot.keyRelease(KeyEvent.VK_CONTROL); // 點擊查詢按鈕 driver.findElement(By.xpath("//input[@id='sb_form_go']")).click(); // 截圖函數 captureScreenshot("截圖測試JUnit"); } private void captureScreenshot(String fileName) { String imagePath = System.getProperty("user.dir") + File.separator + fileName + ".png"; try { byte[] decodedScreenshot = ((TakesScreenshot) driver) .getScreenshotAs(OutputType.BYTES); FileOutputStream fos = new FileOutputStream(new File(imagePath)); fos.write(decodedScreenshot); fos.close(); System.out.println("截圖保存至" + imagePath); } catch (Exception e) { e.printStackTrace(); } } public static void setClipboardData(String string) { StringSelection stringSelection = new StringSelection(string); Toolkit.getDefaultToolkit().getSystemClipboard() .setContents(stringSelection, null); } }