1

フォーマッタが Selenium IDE でどのように機能するかを理解するのに苦労しています。フォーマッタを最初から書きたくないので、既存のコードを変更して、selenese を webdriver でサポートされた Java に変換したいと考えています。通常、私は Javascript コードと一緒に座って、それがどのように機能するかを理解しようとしますが、少し行き詰まっています。

典型的なフォーマッタを次に示します。

function parse(testcase, source){}
function format(testcase,name){
    var Javaprogram = ""
    for each command in testcase{
        switch command.command
        case something:
            Javaprogram += "driver.something(" + command.target + (command.value!=""?");":","+command.value+");")
        ...

このロジックは Java フォーマッタのどこにも見つかりません。フォーマット関数さえなく、「formatComment」と「formatSuite」だけです。これは、これが内部で行われていると信じさせますが、リバースエンジニアリングには時間がかかりますが、私は実際には持っていません.

誰もこれがどのように機能するか知っていますか? 既存のフォーマッタの変更に関するチュートリアルへのリンクを持っている人はいますか? どちらでも構いません。これに対する回答を探し続け、見つけたらコメントにリンクします。明らかに、人々はこれを実行しており、実行する能力があります。

4

2 に答える 2

1

Adam Goucher は 2009 年に、Selenium IDE プラグイン (フォーマッター) を作成するという文脈で、このことについて話している素晴らしい一連のブログ投稿を書きました。

フォーマッタ プラグインに関する IDE リリース ノートにも役立つ情報がいくつかあります。古い Wiki には、フォーマッタの記述方法を説明するページがあります (古いので注意してください)。

Selenium HQのダウンロード ページには、役に立つと思われるいくつかのフォーマッタ プラグインの例があります。

于 2013-03-01T22:33:38.043 に答える
0
  1. Selenium-IDE ソース コードを開きます。GitHub からダウンロードするか、Windows エクスプローラーで次の場所に移動します: (C:\Users\ YOUR_USER_NAME \AppData\Roaming\Mozilla\Firefox\Profiles\ FIREFOX_PROFILE \extensions)
  2. Selenium-IDE 拡張機能{a6fd85ed-e919-4a43-a5af-8da18bda539f}.xpiをデスクトップにコピーします
  3. ファイルの名前を {a6fd85ed-e919-4a43-a5af-8da18bda539f}.xpi.zip に変更します。
  4. Zipファイルを解凍します
  5. ZIP\chrome\content\formats\に移動します
  6. webdriver.js を開く
  7. 関数 formatCommand(command)を検索すると、行 ~425 で見つかります。

現在、この関数は Selenium-IDE の Formatter Extension を呼び出す役割を果たします。この関数はコマンドを入力として受け取り、文字列を出力として返します。これは、ターゲット プログラミング言語の対応する行です。

この関数を編集すると、すべてのプログラミング言語で Formatter がカスタマイズされます。特定のプログラミング言語をカスタマイズする場合は、拡張ソース コードを編集する必要があります。

  1. (C:\Users\ YOUR_USER_NAME \AppData\Roaming\Mozilla\Firefox\Profiles\ FIREFOX_PROFILE \extensions)に移動します。
  2. ターゲット フォーマッタX-formatters@seleniumhq.org.xpi をデスクトップにコピーし、解凍してchrome\content\formats\に移動します。ここで、フォーマッタの js ファイルを見つけることができます。

編集を適用するには:

于 2015-08-14T09:42:31.190 に答える