4

Selenium Webドライバーを使用して、Flexベースの機能を備えたWebアプリケーションを自動化しようとしています。これを行うにはサードパーティの拡張機能に依存する必要があることを知ったので、ここで打たれました。

次のようないくつかのオプションを検討しました。

1.ロボットフレームワーク

2.sfapi

しかし、問題が見つかりました:ドラッグアンドドロップの使用doFlexDragTo(id:String, pos:String)が機能していません。 http://code.google.com/p/sfapi/issues/detail?id=7

この関数をアプリケーションで使用するには、実際にこの関数が機能している必要があります。

3.今、私たちは以下を探求することを考えています(どちらも私が思うに同じです) https://www.gorillalogic.com/monkeytalk/legacy-products とFlexMonkium

上記以外に利用できるより良いオプションがある場合は、私たちに提案してください。誰かがSeleniumWebドライバーを使用してFlexベースの自動化を処理するために、このルートまたは何らかのルートですでに調査を行っている場合は、提案してください。

4

2 に答える 2

4

Sikuliをお試しください。あなたの場合はうまくいくはずです。

于 2012-12-15T17:36:44.283 に答える
-1

アクションを試してみませんか?

クリックする非表示のボタンを作成する

((JavascriptExecutor) driver).executeScript("var mybutton = $('<button/>', {id: 'invisbutton', class: 'invisbutton',text: '', style: 'position:absolute; width:20px; height:20px;top:" + result_pos_y + "px;left:" + result_pos_x + "px;visibility:hidden'}); $('" + element_to_append + "').append(mybutton);");

result_pos_yおよびresult_pos_xピクセルの int 値です

element_to_appendjquery webelementリファレンスです

ボタンに移動してクリックします (再生または一時停止ボタンのように)

Actions builder = new Actions(driver.getWebDriver());
        builder.moveToElement(driver.findElement(By.xpath("//button[@id='invisbutton']"))).build().perform();
        builder.moveToElement(driver.findElement(By.xpath("//button[@id='invisbutton']"))).click().build().perform();

そして、アサートを使用してコードを挿入します。私の場合、JS を介していくつかの Flash プレーヤーの状態に到達できるため、以下は私のアサートの例です。

String brightcove_id = driver.findElement(By.xpath("//div[@id='bcplayer-container']//object")).getAttribute("id");
    ((JavascriptExecutor) driver).executeScript("brightcove.api.getExperience('" + brightcove_id + "').getModule(brightcove.api.modules.APIModules.VIDEO_PLAYER).getIsPlaying( function(isPlaying) { alert(isPlaying)})");
    driver.pause(200);
    String alert_text = driver.switchTo().alert().getText();
    driver.switchTo().alert().accept();
    assertTrue("Video is not stopped after clicking pause button", alert_text.equals("false"));

アクションは、ネイティブ イベントを追加しなくても FF でサポートされますが、Chrome でネイティブ イベント サポートを追加する必要があることに注意してください。

この方法の唯一の欠点は、ボタンのマッピング (すべてのフラッシュ要素のピクセル マップ) を作成する必要があることです。

于 2014-06-18T12:27:50.437 に答える