1. ホーム
  2. javascript

[解決済み] Protractor/WebdriverJSでデフォルトブラウザのウィンドウサイズを設定する方法

2022-10-14 19:29:49

質問

仕事でテストを実行するときは、なぜかブラウザが最大化されていますが、家で実行するときは、幅 50 % 程度のブラウザ ウィンドウしか開きません。このため、スクロール ダウンなどに不一致が生じます。理想的には、テストが実行されるすべてのマシンで同じサイズのブラウザ ウィンドウを開くようにしたいのですが。これを行うための最良の方法は何でしょうか?

(他の言語のためのいくつかの答えを見つけましたが、私はそれらをJavaScriptに適合させることができませんでした)

追加する

browser.executeScript('window.moveTo(0,0);' +
    'window.resizeTo(screen.width, screen.height);');

は何もしない(見かけ上 window.moveTowindow.resizeTo はGoogle Chromeではサポートされていません)。

どのように解決するのですか?

実行することで、デフォルトのブラウザサイズを設定することができます。

var width = 800;
var height = 600;
browser.driver.manage().window().setSize(width, height);

ブラウザのウィンドウを最大化するには、実行します。

browser.driver.manage().window().maximize();

位置を設定するには、実行します。

var x = 150;
var y = 100;
browser.driver.manage().window().setPosition(x, y);

エラーが出たら

WebDriverError: 不明なエラー: 操作はリモート デバッグではサポートされていません。

<ブロッククオート

リモート デバッグを使用するとサポートされていない操作 一部の WebDriver コマンド (ブラウザー ウィンドウのサイズ変更など) の中には、ブラウザーに Chrome 拡張機能を読み込む必要があるものがあります。 をブラウザに読み込む必要があります。ChromeDriverは通常、次のものをロードします。 オートメーション拡張機能" をロードします。

しかし、ChromeDriver は、新しい Chrome セッションを起動するのではなく、既存の Chrome セッションに接続するように指示することができます。 ChromeDriver は、新しいセッションを起動する代わりに、既存の Chrome セッションに接続するように指示することができます。これは debuggerAddress'を使用します。 自動化エクステンションは起動時にのみロードされるので、以下のようなコマンドがあります。 自動化拡張は起動時にのみロードされるため、リモートデバッグで既存のセッションを使用する際に リモートデバッグによって既存のセッションで作業する場合、ChromeDriver がサポートしないコマンドがあります。

もし、エラー "リモート デバッグの使用時にサポートされていない操作" が表示された場合、ChromeDriver を書き換えてみてください。 operation not supported when using remote debugging" というエラーが表示された場合は、新しい Chrome セッションを起動するようにテストを書き換えてみてください。 セッションを起動するようにテストを書き換えてみてください。これは、Capabilities オブジェクトから 'debuggerAddress' を削除することによって行うことができます。 を削除することで可能です。

ソース リモートデバッグの使用時にサポートされていない操作