2

Ruby で Webdriver を使用しており、iFrame 内の html5 dash-cenc プレーヤーのシークおよびボリューム スライダー コントロールを確認したいと考えています。

アイデアは、プレーヤーが「x」時間先にシークするコマンドを受け入れるか、再生の先頭に移動してからシーク プログレス バーの半分までシークするかを確認することです。問題は、プレーヤーを手動でテストしたところ、「矢印キー」が機能しなかったため、再生をシークする唯一の方法は、シークバーの目的の場所をクリックすることです。

プレーヤーが再生を開始するときに確認したい html の一部を次に示します。

<div id="progressbar" data-value="0" class="ui-slider ui-slider-horizontal ui-widget ui-widget-content ui-corner-all"><div class="ui-slider-range ui-widget-header ui-corner-all ui-slider-range-min" style="width: 61.436170212766%;"></div><span class="ui-slider-handle ui-state-default ui-corner-all" tabindex="0" style="left: 61.436170212766%;"><div class="tooltip-container" style="display: none;"><div id="time-tooltip">0:03:50</div><div class="triangle-down"></div></div></span></div>

私はいくつかの例を試してみましたが、うまくいきませんでした.

    reg = @driver.find_element(:id, "fancybox-frame")
    @driver.switch_to.frame reg
    @driver.find_element(:id, "toggle-play").click

メディア コントロールのスクリーンショットと Google Chrome ブラウザーの「要素の検査」部分を添付しました (プレーヤーは Google Chrome でのみ動作し、Firefox では動作しません)。

4

2 に答える 2

1

答えを見つけて、プレーヤーに対して次のコマンドを試しました。

@driver.execute_script("document.getElementById('dashplayer').load();")
@driver.execute_script("document.getElementById("dashplayer").pause();")
@driver.execute_script("document.getElementById('dashplayer').paused;")
@driver.execute_script("document.getElementById("dashplayer").play();")
@driver.execute_script("document.getElementById('dashplayer').volume;")
@driver.execute_script("document.getElementById('dashplayer').volume=0.5;")
于 2015-08-27T14:37:24.390 に答える