Selenium網站自動化測試:如何Copy & Paste文字區塊
這篇文章主要說明如何利用Selenium/Java來做到網頁上文字的copy & Paste。
要達到這樣的功能,就必須利用到 hotkey,Ctrl + C 與 Ctrl + V的使用。
最後,我們舉一個線上的案例實作,並且用一個完整的Java程式範例說明。
測試情境
我們主要透過這個模擬網站,將區塊A的文字內容拷貝到區塊B,最後將區塊A的文字做修改。
https://dl.dropboxusercontent.com/u/2611448/site/send_keys.html
用瀏覽器的F5 > inspector觀察該網頁原件,這個網頁區塊A的ID
<textarea rows=”10″ ,=”” cols=”10″ id=”A”>selenium-webdriver</textarea>
而區塊B的 ID 為
<textarea rows=”10″ ,=”” cols=”10″ id=”B”></textarea>
我們就可以透過這些id 用Selenium來定位該網頁原件
如何送出特殊鍵?
還是一樣利用 sendKeys,利用 keys.chord的鍵值,我們就可以送出 Ctrl + A
import org.openqa.selenium.Keys;
dr.findElement(By.id(“A”)).sendKeys(Keys.chord(Keys.CONTROL + “a”));
如何拷貝並貼上?
1. 首先我們到 Area A,將文字全選 Ctrl + A
dr.findElement(By.id(“A”)).sendKeys(Keys.chord(Keys.CONTROL + “a”));
2. 按下拷貝 Ctrl + C
dr.findElement(By.id(“A”)).sendKeys(Keys.chord(Keys.CONTROL + “x”));
3. 最後到 Area B,將文字貼上,Ctrl + P
dr.findElement(By.id(“B”)).sendKeys(Keys.chord(Keys.CONTROL + “v”));
Java 程式範例
[pastacode lang=”java” message=”Selenium Copy Paste” highlight=”” provider=”manual”]
package mySelenium;
import java.io.File;
import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
public class CopyPaste {
public static void main(String[] args) throws InterruptedException {
WebDriver dr = new FirefoxDriver();
dr.get("https://dl.dropboxusercontent.com/u/2611448/site/send_keys.html");
Thread.sleep(1000);
// Ctrl + A to select the Area A text
dr.findElement(By.id("A")).sendKeys(Keys.chord(Keys.CONTROL + "a"));
Thread.sleep(3000);
// Ctrl + X to copy the selected text
dr.findElement(By.id("A")).sendKeys(Keys.chord(Keys.CONTROL + "x"));
//Ctrl + v. Patest the clipboard text to B
dr.findElement(By.id("B")).sendKeys(Keys.chord(Keys.CONTROL + "v"));
//input new message to area A
dr.findElement(By.id("A")).sendKeys(Keys.chord("This is New text on Area A"));
Thread.sleep(3000);
System.out.println("browser will be close");
dr.quit();
}
}
[/pastacode]