6

現在、必須のテキスト エリア フィールドに値を入力する必要があるテスト ケースを自動化しようとしています。

テキストエリアは TinyMCE 3.4.9 を使用

selectFrame (tinymce を含む iFrame) フォーカス (tinymce) タイプ (tinymce, text) を提案するブログをオンラインで見つけました。

Selenium RC は iframe を見つけることができないため、これは役に立ちませんでした。ただし、Firefox プラグインでこれを試してみましたが、少なくとも iframe を選択してエディターにフォーカスすることはできますが、テキストを入力することはできません。RCでは、私が何をしてもうまくいかないようです

htmlエディタを使ってテキストを入力してみました。したがって、セレンはボタンをクリックしてhtmlエディターを開くことをエミュレートできます。RCはテキスト領域を見つけられないか、要素がDOMにアタッチされていないというエラーが発生します(その行に沿った何か)

紛らわしく聞こえる場合は申し訳ありません。

4

13 に答える 13

11

これは私のために働いた:

コマンド:runScriptターゲット:tinyMCE.activeEditor.setContent('テキストで置換')

http://www.tinymce.com/forum/viewtopic.php?id=27960から入手

于 2012-11-27T00:10:58.010 に答える
2

まず、フレームに切り替えます

// driver is type of IWebDriver
driver.switchTo().frame(frameName or frameIndex);

次に、IDで要素を取得し、テキストで埋めます

 var el = driver.findElement(By.id("tinymce"));
 el.sendKeys("YOUR TEXT");
于 2013-02-03T16:41:20.467 に答える
0

Selenium webdriver PHPUnit_Extensions_Selenium2TestCase では、以下を使用すると機能します。

$this-> execute(array('script' => "tinymce.get('cms_cpg_content').setContent('Lorem ipsum dolor sit amet,...')", 'args' => array()));

文字を入れたいとき。

于 2014-05-15T09:35:55.730 に答える
0

私はこのソリューションを使用しようとしています:

<tr>
  <td>type</td>
  <td>dom=document.getElementById('NAME_ifr').contentDocument.body</td>
  <td>Editor content</td>
</tr>

「name_ifr」を置き換えました。最初に名前をフレームに挿入し、tinymce フレームに入る前に挿入し、名前を「tinymce」に置き換えて、すべてのルールに従って入力する必要があるフレームに入った後に挿入します。しかし、私が得るのはエラーだけです。どういうわけか、DOM または js コマンドをスクリプトで機能させることはありません。足りないものはありますか?

于 2012-09-17T10:16:15.617 に答える
0

ページに TinyMCE 要素が 1 つある場合:

var obj = ((IJavaScriptExecutor)webDriver).ExecuteScript("tinyMCE.activeEditor.setContent('" + text + "');");
于 2013-04-12T17:02:43.687 に答える
0

tinyMCE エディターでもテキストの入力に問題がありました。

  • ファイアフォックス 20.01
  • tinyMCE 3.4.9
  • セレン IDE 1.10.0

私のフォームには複数の tinyMCE エディターがあります。

解決策 (Selenium RC に簡単に移植できる Selenium IDE を使用):

  • firebug を使用して、テキストエリアを置き換える tinymce iframe の ID を見つけます (例: form_editor1_ifr)。
  • この ID から「_ifr」を取り除き、元のテキストエリアの ID を取得します
  • Selenium IDE の runScript コマンドのターゲットでこの ID を使用します: tinyMCE.get('form_editor1_ifr').setContent('the content');
于 2013-05-02T07:34:35.747 に答える
0

Selenium RC を使用してこの問題を解決できました。次の手順を実行しました (参照用のスクリーンショットを添付)。

  1. tinyMCE エディターで、[詳細オプション] アイコンをクリックします。
  2. 「<>」ソースコードアイコンをクリック
  3. ソースコードのポップアップが表示されるので、テキストを入力して [OK] をクリックします
  4. TinyMCE エディタにテキストが表示される ここに画像の説明を入力

参考までに、CSSロケーターの手順を示しました

  • 詳細オプション ボタンをクリックします: css= tr[id*='tinymce'] td * div[aria-label='Advanced Options'] ボタン

  • ソースコードをクリック: css= tr[id*='tinymce'] td * div[aria-label='Source code'] ボタン

  • ポップアップ textarea をクリック css= div[class*='mce-floatpanel'][aria-label='Source code'] * textarea

  • ポップアップの [OK] ボタンをクリックします css= div[class*='mce-floatpanel'][aria-label='Source code'] * div>button:contains('Ok')

  • tinymce css=body p:contains に存在するテキストを確認します (これはテスト中です)

これで問題が解決することを願っています:)

于 2015-09-09T11:21:22.333 に答える
0

techiebyday.blogspot.comで説明されているプロセスを使用しており、現在のバージョンの Selenium RC (少なくとも 2.20 まで) および TinyMCE (3.4 以降) でうまく機能します。C# では、次のようになります。

string editorFrameId = editorId + "_ifr";
selenium.Focus(String.Format("dom=document.getElementById('{0}').contentWindow.document.body", editorFrameId));
selenium.GetEval(String.Format("selenium.browserbot.getCurrentWindow().document.getElementById('{0}').contentWindow.document.body.innerHTML = '{1}';", editorFrameId, fillString));
于 2012-08-28T15:27:04.057 に答える
0

TinyMCE 3.4.x と Firefox の Selenium IDE では、これでうまくいきました。NAME以下を TinyMCE インスタンスの ID に置き換えます。

<tr>
    <td>type</td>
    <td>dom=document.getElementById('NAME_ifr').contentDocument.body</td>
    <td>Editor content</td>
</tr>

これはhttps://gist.github.com/809728に基づいています

于 2012-08-23T20:44:47.350 に答える
0

Selenium テストを TinyMCE で動作させる唯一の方法は、テストに TinyMCE を使用しないことです。

サーバー側のウィザードリを使用して、テスト条件下で TinyMCE プラグインを選択的に無効にします。

これは TinyMCE 自体の使用をテストするのには役立ちませんが、少なくともフォームに入力して完了し、テストを進めることができます... :)

于 2012-08-16T14:54:35.423 に答える
-1

http://odino.org/typing-into-tinymce-with-selenium/ ...TinyMCE と selenium IDE の接続が 3.4.5 では機能しないように見えるので、この問題は3.4.9.

于 2012-08-14T22:56:26.463 に答える