Selenium自動化,一直以爲是富文本的問題,原來是切換frame的問題

話不多說,先上源碼:
<div position="relative">
<textarea id="artContent" class="span14" name="fckeditorContent" validate-rules="[['required','請填寫$']]" validate-title="正文" style="display: none;" aria-hidden="true"></textarea>
<span id="artContent_parent" class="mceEditor defaultSkin" role="application" aria-labelledby="artContent_voice">
<span id="artContent_voice" class="mceVoiceLabel" style="display:none;">Rich Text Area</span>
<table id="artContent_tbl" class="mceLayout" cellspacing="0" cellpadding="0" role="presentation" style="width: 680px; height: 300px;">
<tbody>
<tr class="mceFirst" role="presentation">
<tr class="mceLast">
<td class="mceIframeContainer mceFirst mceLast">
<iframe id="artContent_ifr" frameborder="0" src="javascript:""" allowtransparency="true" title="Rich Text AreaPress ALT-F10 for toolbar. Press ALT-0 for help" style="width: 100%; height: 277px; display: block;">
<!DOCTYPE >
<html>
<head xmlns="http://www.w3.org/1999/xhtml">
<body id="tinymce" class="mceContentBody " contenteditable="true" onload="window.parent.tinyMCE.get('artContent').onLoad.dispatch();" spellcheck="false" dir="ltr">
<p>

一看源碼,我以爲是富文本問題,網站找了資料怎麼操作富文本的,調用富文本API的,我對富文本不熟悉啊,照貓畫虎,做完了不行啊,惆悵的。。。

這個東西selenium ide也錄不了哇,Xpath也找不到啊,沒有出路哇,。。後來問了一大牛,大牛說操作textarea,修改textarea屬性(style="display: none;" aria-hidden="true),,結果試了試,也是不行啊。。。。


沒辦法,在找了些資料,再看看源碼。。。。。看到了這個  “<!DOCTYPE >” 這個是什麼? frame啊。。。。切frame  試試吧  。。。


終於皇天不負有心人,成功搞定啦。。。。。

上源碼。。。

WebElement iframe=driver.findElement(By.xpath("//iframe[@id='artContent_ifr']")); //找到iframe
driver.switchTo().defaultContent();//切換到默認內容
driver.switchTo().frame(iframe);//切換到目標frame
driver.findElement(By.xpath("//body[@id='tinymce']")).sendKeys("'<p>'"+content+"'</p>'");//send內容
driver.switchTo().defaultContent();//切回到默認內容

在進行下一步操作就ok了。

撒花。。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章