4

我正在使用 Selenium Web 驱动程序。我有一个文本区域,其中写入了一些文本。现在如何在其中添加一些text /html 或在特定位置插入数据?

以下代码将其附加到文本区域/文本框

driver.findElement(By.xpath("textBox/textArea")).sendKeys("abc");

IE。如果文本区域/文本框包含 123。上面的结果将是123abc。但我想要abc123 或 12abc3

PS:我正在测试“电子邮件回复”功能。因此,作为用户,当您回复邮件时,不要复制文本,然后清除所有文本,然后在编写新文本后将所有文本复制回来,如下所示:

WebElement element = driver.findElement(By.xpath("textBox/textarea"));
String previousText = element.getAttribute("value");
element.clear();
element.sendKeys("abc" + previousText);

请帮忙...

4

4 回答 4

8
import org.openqa.selenium.Keys;

...

WebElement element = driver.findElement(By.xpath("textBox/textarea"));
element.sendKeys(Keys.HOME + "abc");

或者可能用于多行文本区域

element.sendKeys(Keys.CONTROL, Keys.HOME);
element.sendKeys("abc");
于 2012-11-18T15:26:09.583 回答
2
 WebElement element = driver.findElement(By.xpath("textBox/textarea"));
 String previousText = element.getAttribute("value");
 element.clear();
 element.sendKeys("abc" + previousText);
于 2012-11-16T08:12:31.200 回答
0

您可以通过机器人使用插入文本。
按照我的方式。
我希望这可以帮助你。

public void runScript() {

    WebElement textarea = driver.findElement(By.id("textarea"));

    insert(textarea, "abc", 2);
}

public void insert(WebElement textElement, String insertText, int offset) {

    String currentText = textElement.getText();
    int len = currentText.length();
    if (len < offset) {
        throw new IllegalArgumentException(String.format("len(%d) < offset(%d)", len, offset));
    }
    Robot robot = null;
    try {
        robot = new Robot();
    } catch (AWTException e) {
        e.printStackTrace();
    }
    robot.setAutoDelay(20);
    // On focus.
    textElement.click();
    // Move cursor for head.
    type(robot, KeyEvent.VK_CONTROL, KeyEvent.VK_HOME);
    for (int i = 0; i < offset; i++) {
        type(robot, KeyEvent.VK_RIGHT);
    }
    textElement.sendKeys(insertText);
}

public void type(Robot robot, int... keycodes) {
    for (int keycode : keycodes) {
        robot.keyPress(keycode);
    }
    for (int keycode : keycodes) {
        robot.keyRelease(keycode);
    }
}
于 2012-11-16T08:49:35.100 回答
0
htmlContent = driver.find_element_by_id("wp-editor-area")
htmlContent.sendKeys(Keys.CONTROL, Keys.HOME)
htmlContent.sendKeys("The Content You WANT!")
于 2021-05-12T09:12:14.723 回答