您好我正在尝试通过Selenium Webdriver代码(Java)找到我的项目的CK编辑器。但每当我尝试使用SendKeys()方法时,它对我不起作用。 以下是CK编辑器和HTML代码的截图。
以下是代码,
if(driver.findElement(By.cssSelector("iframe#scayt_8")).isEnabled())
{
WebElement iframe = driver.findElement(By.cssSelector("iframe#scayt_8"));
System.out.println("Frame Enabled");
if(driver.findElement(By.xpath("//iframe[@id = 'scayt_8']")).isDisplayed())
{
System.out.println("Frame Displayed");
driver.switchTo().frame(iframe);
iframe.clear();
System.out.println("Clicking frame");
iframe.click();
iframe.sendKeys("Hello!!");
}
}
请帮我找到CK编辑器并发送文字。
答案 0 :(得分:3)
您可能需要切换到内嵌框架才能找到它。
WebElement editorFrame = driver.findElement(By.id("scayt_8"));
driver.switchTo().frame(editorFrame);
WebElement body = driver.findElement(By.tagName("body"));
body.clear();
body.sendKeys("some text");
我们在Selenium WebDriver In Practice一书的第3章中提供了与编辑一起工作的技巧。
答案 1 :(得分:0)
我认为基于cssSelector正在搜索iframe,但我认为它应该基于id?这是scayt_8。您可以尝试使用以下代码来获取iframe而不是cssSelector:
pig -x local -f read_test_data3.pig -param CURR_TS=`date "+%F %H:%M:%S"`
答案 2 :(得分:0)
切换到iframe后,尝试通过iframe中的段落标记名称找到webelement,如下所示: -
WebElement body=driver.findElement(By.tagName("p"));
然后尝试使用此webelement发送密钥:
body.sendKeys("Hello!!");
答案 3 :(得分:0)
WebElement iframe = driver.findElement(By.tagName("iframe")); driver.switchTo().frame(iframe);
WebElement tinymce = driver.findElement(By.tagName("body"));
tinymce.clear();
tinymce.sendKeys("Hello, ckeditor!");;
这将帮助您在CKeditor中发送文本。尝试这个。会起作用