簡體   English   中英

在 Selenium Webdriver 中定位 CK 編輯器並向其發送文本

[英]Locating CK Editor and Sending text to it in Selenium Webdriver

嗨,我正在嘗試通過 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 編輯器並向其發送文本。

您可能需要切換到內聯框架才能找到它。

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 章中提供了與編輯器合作的技巧。

我認為 iframe 是基於 cssSelector 進行搜索的,但我認為它應該基於 id? 這是 scayt_8。 您可以嘗試使用以下代碼來獲取 iframe 而不是 cssSelector:

driver.FindElement(By.TagName("iframe"))

切換到 iframe 后,嘗試通過 iframe 中的段落標記名稱定位 webelement,如下所示:-

 WebElement body=driver.findElement(By.tagName("p"));

然后嘗試使用此 webelement 發送密鑰:

body.sendKeys("Hello!!");
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 中發送文本。 嘗試這個。 它會工作

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM