Как выполнить копирование / вставку с помощью селена Webdriver - PullRequest
0 голосов
/ 05 июля 2018

Я хочу выполнить вставку в уже существующую локальную переменную для ввода текста с помощью селенового веб-драйвера в Java. Для этого я использовал этот метод:

public static void copyText(final String id, final String text) throws Exception {
        waitForJQueryProcessing(DRIVER, N_30);
        WebElement elem = DRIVER.findElement(By.id(id));
        DRIVER.findElement(By.id(id)).clear();
        Toolkit toolkit = Toolkit.getDefaultToolkit();
        Clipboard clipboard = toolkit.getSystemClipboard();
        StringSelection strSel = new StringSelection(text);
        clipboard.setContents(strSel, null);
        elem.sendKeys(Keys.chord(Keys.CONTROL, "v", text));
        System.out.println(text);

    }

Когда я выполню тест, я буду выглядеть пустым, я не знаю почему?

Ответы [ 2 ]

0 голосов
/ 06 июля 2018

Когда вы пытаетесь скопировать последовательность символов из буфера обмена в <input> элемент, вы можете использовать следующее решение:

//imports
import java.awt.HeadlessException;
import java.awt.Toolkit;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.UnsupportedFlavorException;
import java.io.IOException;
//other lines of code
WebElement elem = DRIVER.findElement(By.id(id));
elem.clear();
String data = (String) Toolkit.getDefaultToolkit().getSystemClipboard().getData(DataFlavor.stringFlavor);
elem.sendKeys(data);
0 голосов
/ 06 июля 2018

Попробуйте приведенный ниже код и проверьте, может ли он вам помочь.

String CopyText = driver.findElement(By.xpath("your xpath to order id")).getText();
driver.findElement (By.xpath("/html/body/main/div/div/div[2]/div/div/div[2]/div/table/tbody
/tr[2]/td[2]")).sendKeys(myOrderText ));

или попробуйте следующий код:

// or any locator strategy that you find suitable 
        WebElement locOfOrder = driver.findElement(By.id("id of the element to be copied"));
Actions act = new Actions(driver);
act.moveToElement(locOfOrder).doubleClick().build().perform();
// catch here is double click on the text will by default select the text 
// now apply copy command 

driver.findElement(By.id("")).sendKeys(Keys.chord(Keys.CONTROL,"c"));

    // now apply the command to paste
    driver.findElement (By.xpath("/html/body/main/div/div/div[2]/div/div/div[2]/div/table/tbody/tr[2]/td[2]")).sendKeys(Keys.chord(Keys.CONTROL, "v"));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...