Selenium網站自動化測試:如何Copy & Paste文字區塊

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

Selenium Copy Paste

 

用瀏覽器的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]

 

Leave a Reply

Your email address will not be published. Required fields are marked *