在Selenium Webdriver中找到CK编辑器并向其发送文本

时间:2015-08-12 04:09:59

标签: java selenium-webdriver

您好我正在尝试通过Selenium Webdriver代码(Java)找到我的项目的CK编辑器。但每当我尝试使用SendKeys()方法时,它对我不起作用。 以下是CK编辑器和HTML代码的截图。

enter image description here

以下是代码,

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编辑器并发送文字。

4 个答案:

答案 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中发送文本。尝试这个。会起作用