Selenium中解決輸入法導致sendKeys輸入內容與預期不一致的問題

有時候由於系統輸入法處於中文狀態或英文狀態輸入內容與預期不一致的問題,我們採用文本內容拷貝的方式傳遞給相關元素,從而解決該問題,具體代碼如下:

 /***
     * 通過拷貝的方式輸入文字內容,防止輸入法中英文切換導致輸入內容不一樣問題
     * @param webElement  元素
     * @param text   輸入文字內容
     */
    public static void elementSendPaste(WebElement webElement, String text){
        webElement.clear();
        webElement.click();
        StringSelection selection=new StringSelection(text);
        Toolkit.getDefaultToolkit().getSystemClipboard().setContents(selection, null);
        Robot robot=null;
        try {
            robot=new Robot();
            robot.keyPress(KeyEvent.VK_CONTROL);
            robot.keyPress(KeyEvent.VK_V);
            robot.keyRelease(KeyEvent.VK_V);
            robot.keyRelease(KeyEvent.VK_CONTROL);
        } catch (AWTException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

引用如下:

import org.openqa.selenium.WebElement;
import java.awt.*;
import java.awt.datatransfer.StringSelection;
import java.awt.event.KeyEvent;

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章