[英]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.