Java Selenium WebDriver';s sendKeys仅键入新行
我正试图将一些内容发送到表中的单元格。 该表位于由TinyMCE生成的iFrame内。 由于某些原因,键入的唯一字符是“\n” 我有两种方法: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
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();
}