Java Selenium WebDriver';s sendKeys仅键入新行

Java Selenium WebDriver';s sendKeys仅键入新行,java,iframe,selenium,tinymce,Java,Iframe,Selenium,Tinymce,我正试图将一些内容发送到表中的单元格。 该表位于由TinyMCE生成的iFrame内。 由于某些原因,键入的唯一字符是“\n” 我有两种方法:switchToFrame()和switchToDefault(),用于在iFrame和窗口之间切换 我有一个在iFrame的中键入的方法,它工作得很好: public void typeInBody(String content) { switchToFrame(); WebElement body = driver.findEleme

我正试图将一些内容发送到表中的单元格。 该表位于由TinyMCE生成的iFrame内。 由于某些原因,键入的唯一字符是“\n”

我有两种方法:
switchToFrame()
switchToDefault()
,用于在iFrame和窗口之间切换

我有一个在iFrame的
中键入的方法,它工作得很好:

public void typeInBody(String content) {
    switchToFrame();

    WebElement body = driver.findElement(BODY_LOC);
    body.click();
    body.sendKeys(content);

    switchToDefault();
}
下面是在列中键入的方法:

public void typeInColumn(int index, String content) {
    switchToFrame();

    WebElement column = driver.findElement(COLS_LOC[index]);
    column.click();
    column.sendKeys(content);

    switchToDefault();
}
最后,这里是“测试”(不是最终测试,只是为了测试上述方法是否有效):

这是考试后的第一次考试

下面是带有
表单的.typeInBody(内容)调用typeInBody(内容)


知道硒为什么会这样吗?

据我所知,它来自硒。尽管我在列中放置了一个
Thread.sleep()
,并单击了我自己,但它仍然无法在单元格中识别它

我放置了一个
Action
对象,并用它对单元格进行了更改(单击并键入),结果成功了

新守则:

public void typeInColumn(int index, String content) {
    switchToFrame();

    WebElement column = driver.findElement(COLS_LOC[index]);

    Actions build = new Actions(driver);
    build.moveToElement(column).click().sendKeys(content).build().perform();

    switchToDefault();
}

我怀疑问题在于硒本身。当您尝试在列中输入数据时,是否确实在单击并键入正确的元素?我有一个函数,用于突出显示元素,当应用于该单元格时,它将突出显示该元素。另外,我在
列后面放了一个
Thread.sleep()
。单击()
,查看焦点是否在那里,它是否在。在那之后,在sleep()上,我甚至点击了那个单元格来确认。这就是为什么我认为它来自硒。
public void typeInColumn(int index, String content) {
    switchToFrame();

    WebElement column = driver.findElement(COLS_LOC[index]);

    Actions build = new Actions(driver);
    build.moveToElement(column).click().sendKeys(content).build().perform();

    switchToDefault();
}