4

Windows 7 で動作する Firefox リモート ドライバーで Selenium グリッド 40 を使用しています。C# API も使用しています。ヘッドレス Firefox ブラウザでデバイスの幅を設定する方法を考えていました。デバイスの幅が ipad の最大幅よりも小さいため、以下のように定義されている ipad 固有の css が取得されます。

@media only screen and (min-device-width: 481px) and (max-device-width: 1024px) and (orientation:portrait) {
  /* For portrait layouts only */
}

@media only screen and (min-device-width: 481px) and (max-device-width: 1024px) and (orientation:landscape) {
  /* For landscape layouts only */
}

私はすでに以下を使用してウィンドウサイズを変更しました:

driver.Manage().Window.Size = new System.Drawing.Size(1290,900)

ただし、これらの css ディレクティブは引き続き取得されます。

その他の情報: 私のグリッド ノードは、実際には誰もログインしない仮想マシンです。私はセレン グリッドをリモートで実行していますが、それがデバイスの幅が小さい理由かもしれません。ウィンドウの最小解像度がデフォルトになる場合があります。それを変更する方法があれば役立つかもしれませんが、私はそれを認識していません。

更新: PowerShell スクリプトを使用して、レジストリ内の DefaultSettings.XResolution、DefaultSettings.YResolution、および DefaultSettings.BitsPerPel のすべてのインスタンスを 1290、900、および 16 に設定し、コンピューターを再起動しようとしましたが、機能しませんでした。

4

2 に答える 2

-1

私の経験は Selenium の Python 実装の使用に限定されているため、これはうまくいかないかもしれませんが、目的のページをロードする driver.get() アクションを実行する前に driver.set_window_size(width, height) を使用できます。

重要なのは、これらのアクションを実行する順序です。ページをロードするにブラウザーのサイズを変更するように Selenium に指示する必要があります。そうしないと、最初のページのロード後にブラウザー ウィンドウのサイズを変更するのと同じ動作をシミュレートしているためです。ご存知かもしれませんが、ブラウザー ウィンドウのサイズを変更する場合、一部の「レスポンシブ」機能を有効にするには、ページの再読み込みが必要です。

于 2015-02-10T16:52:39.793 に答える