有時候由於系統輸入法處於中文狀態或英文狀態輸入內容與預期不一致的問題,我們採用文本內容拷貝的方式傳遞給相關元素,從而解決該問題,具體代碼如下:
/*** * 通過拷貝的方式輸入文字內容,防止輸入法中英文切換導致輸入內容不一樣問題 * @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;