2012-08-27 11 views
5

मैं जावा में मेरे समस्या Webdriver उपयोग कर रहा हूँ फ़ायरफ़ॉक्स 14.फ़ायरफ़ॉक्स 14 में

साथ CKeditor साथ सेलेनियम Webdriver का उपयोग कर कि मैं webdriver CKeditor के साथ अच्छी तरह से खेलने के लिए प्राप्त करने के लिए नहीं कर पा रहे है। मैं समाधान के लिए देखा है, लेकिन या तो फ़ायरफ़ॉक्स में किसी भी काम कर पाने में असमर्थ रहे हैं 13 या 14. ये समाधान है कि मैं कोशिश की है इस प्रकार हैं:

  1. सामान्य SendKeys

    textArea.sendKeys(); 
    

    या

    interction
    textArea.click(); 
    textArea.sendKeys(); 
    

    परिणाम: इस कोड CKeditor में किसी भी लेख का उत्पादन नहीं होगा

  2. कोड Selenium issue 3890 से

    d.get("http://ckeditor.com/demo"); 
    WebElement iframe = d.findElement(By.tagName("iframe")); 
    d.switchTo().frame(iframe); 
    WebElement tinymce = d.findElement(By.tagName("body")); 
    tinymce.clear(); 
    tinymce.sendKeys("Hello, ckeditor!"); 
    

    परिणाम: इस कोड को साइट के लिए जाना जाएगा और संपादक स्पष्ट है, लेकिन CKeditor उदाहरण में किसी भी पाठ में डाल नहीं होंगे।

  3. AdvancedUserInteractions - उदाहरण के लिए। क्रिया() कई विविधताओं का

    textArea.click(); 
    new Actions(driver).sendKeys("Hello, ckeditor!").build().perform(); 
    

    और

    new Actions(driver).sendKeys(textArea, "Hello, ckeditor!").build().perform(); 
    

    और

    new Actions(driver).click(textArea).sendKeys("Hello, ckeditor!").build().perform(); 
    

    परिणाम में: ये CKeditor

  4. स्विचिंग iframes में किसी भी पाठ का उत्पादन नहीं होगा (उपरोक्त अंक 38 9 0 के अनुसार) और एडवान का उपयोग करना cedUserInteractions

    कोड समान करने के लिए:

    driver.switchTo().frame(iframe); 
    textArea.click(); 
    new Actions(driver).sendKeys("Hello, ckeditor!").build().perform(); 
    

    परिणाम: फेंकता त्रुटि

  5. "c.value अपरिभाषित है" जावास्क्रिप्ट और CKeditor एपीआई का उपयोग कर

    JavascriptExecutor js = (JavascriptExecutor) d; 
    System.out.println("[debug] Set Text: " + setText); 
    js.executeScript("CKEDITOR.instances.editor1.setData('<p> "+ setText +"</p>');"); 
    

    परिणाम: 'org.apache.commons.lang.StringEscapeUtils.escapeHtml "सेटटेक्स्ट" एचटीएमएल प्रविष्टियों में कनवर्ट करने के लिए उपयोग नहीं किया जाता है। यह समाधान बड़े तारों पर "त्रुटि: शून्य" फेंकता है।

उन चीज़ों पर कोई विचार जो मैंने नहीं किया है? मैंने कोशिश की चीजों के लिए फिक्स? कोई अन्य सुझाव?

धन्यवाद!

उत्तर

3

कभी-कभी पाठ क्षेत्रों को इफ्रेम के रूप में संभाला जाता है जहां आपको उस फ्रेम पर स्विच करना होता है और इसे टाइप करने के लिए जेएस कमांड चलाया जाता है।

final WebDriver frame = driver.switchTo().frame(findElement(By.id("locator")); //any locator 
    ((JavascriptExecutor) driver).executeScript("document.body.innerHTML='" + TestValueThatYouWantToType + "'"); 
    driver.switchTo().defaultContent(); 
0

बस tinymce.clear(); के बाद प्रतीक्षा बयान जोड़ सकते हैं और यह ठीक काम करेंगे।

संबंधित मुद्दे