2016-07-25 84 views
2

我順利地通過這些命令發送文本CKEDITOR它不能識別下一個元素(硒)

WebElement iframe = driver.findElement(By.tagName("iframe")); 
driver.switchTo().frame(iframe); 
WebElement tinymce = driver.findElement(By.tagName("body")); 
tinymce.clear(); 
tinymce.sendKeys("Automation Description"); 

問題

文本「自動化說明」被成功地傳遞給ckeditor文本發送到ckeditor後。 但是。它不定位下一個元素被顯示 跟隨誤差

沒有這樣的元件:無法找到元素: {「方法」:「的xpath」,「選擇器」:」 .//*[@ ID = 'SELECT2-STATE_NAME容器']「}

當我添加塊註釋到

WebElement iframe = driver.findElement(By.tagName("iframe")); 
driver.switchTo().frame(iframe); 
WebElement tinymce = driver.findElement(By.tagName("body")); 
tinymce.clear(); 
tinymce.sendKeys("Automation Description"); 

它成功位於下一個元素。

幫助我添加一個命令,以便在發短信給ckeditor之後可以找到下一個元素。謝謝


這裏有一個截屏:

screen shot

+0

你在「當我添加塊評論到」時添加了什麼? –

+0

哪個元素是「下一個元素」?我去ckeditor HTML,沒有「select2-state_name-container」屬性。 –

回答

2

當我看到你的代碼,你要切換框架首先找到ckeditor並設定值。但是您沒有切換回默認內容來查找下一個元素,這就是爲什麼硒將搜索定位器的原因轉換爲實際已不存在元素的已切換幀,所以您應該嘗試在找到元素之前切換回來,如下所示: -

WebElement iframe = driver.findElement(By.tagName("iframe")); 
driver.switchTo().frame(iframe); 
WebElement tinymce = driver.findElement(By.tagName("body")); 
tinymce.clear(); 
tinymce.sendKeys("Automation Description"); 

//Now switch back first to default 
driver.switchTo().defaultContent(); 

//Now you can go to find next element 

希望它有幫助... :)

+1

謝謝@Saurabh – niazi

+1

其工作謝謝 – niazi

0

我相信這是與你的交換機框架語句來完成,

driver.switchTo().frame() 

嘗試切換回0索引幀或輸入文字後的默認值:

WebElement iframe = driver.findElement(By.tagName("iframe")); 
driver.switchTo().frame(iframe); 
WebElement tinymce = driver.findElement(By.tagName("body")); 
tinymce.clear(); 
tinymce.sendKeys("Automation Description"); 
driver.switchTo().frame(0); //To go back to main frame 
//continue 

或者更好的找到主框架窗口和swicth它的選擇,但我認爲0應該工作你的情況

希望這有助於

+0

driver.switchTo()。defaultContent(); 使用此命令其工作 – niazi