selenium-webdriver
ブラウザウィンドウとのやりとり
サーチ…
アクティブなウィンドウの管理
C#
ウィンドウを最大化する
driver.Manage().Window.Maximize();
これはかなり簡単で、現在アクティブなウィンドウが最大化されます。
ウィンドウの位置
driver.Manage().Window.Position = new System.Drawing.Point(1, 1);
ここでは、現在アクティブなウィンドウを基本的に新しい位置に移動します。 Point
オブジェクトでは、 x
とy
座標を指定します。これらを画面の左上隅からのオフセットとして使用して、ウィンドウの配置場所を決定します。変数にウィンドウの位置を格納することもできます。
System.Drawing.Point windowPosition = driver.Manage().Window.Position;
ウィンドウのサイズ
ウィンドウサイズの設定と取得は、位置と同じ構文を使用します。
driver.Manage().Window.Size = new System.Drawing.Size(100, 200);
System.Drawing.Size windowSize = driver.Manage().Window.Size;
ウィンドウのURL
アクティブウィンドウの現在のURLを取得できます:
string url = driver.Url;
アクティブウィンドウのURLを設定して、ドライバが新しい値にナビゲートするようにすることもできます:
driver.Url = "http://stackoverflow.com/";
ウィンドウハンドル
現在のウィンドウのハンドルを取得できます。
string handle = driver.CurrentWindowHandle;
開いているすべてのウィンドウのハンドルを取得できます。
IList<String> handles = driver.WindowHandles;
Python
ウィンドウを最大化する
driver.maximize_window()
ウィンドウの位置を取得する
driver.get_window_position() # returns {'y', 'x'} coordinates
ウィンドウの位置を設定する
driver.set_window_position(x, y) # pass 'x' and 'y' coordinates as arguments
ウィンドウのサイズを取得する
driver.get_window_size() # returns {'width', 'height'} values
ウィンドウのサイズを設定する
driver.set_window_size(width, height) # pass 'width' and 'height' values as arguments
現在のページタイトル
driver.title
現在のURL
driver.current_url
ウィンドウハンドル
driver.current_window_handle
現在開いているウィンドウのリスト
driver.window_handles
現在のブラウザウィンドウを閉じる
新しい開いたタブに切り替えます。現在のウィンドウを閉じます(この場合は新しいタブ)。最初のウィンドウに戻ります。
分度器:
browser.getAllWindowHandles().then(function (handles) {
browser.driver.switchTo().window(handles[1]);
browser.driver.close();
browser.driver.switchTo().window(handles[0]);
});
JAVAセレン:
Set<String> handlesSet = driver.getWindowHandles();
List<String> handlesList = new ArrayList<String>(handlesSet);
driver.switchTo().window(handlesList.get(1));
driver.close();
driver.switchTo().window(handlesList.get(0));
複数のウィンドウを処理する
Python
最も一般的に使用されるシナリオ:
- 新しいウィンドウでページを開く
- それに切り替える
- 何かをする
- それを閉じる
- 親ウィンドウに戻る
# Open "Google" page in parent window
driver.get("https://google.com")
driver.title # 'Google'
# Get parent window
parent_window = driver.current_window_handle
# Open "Bing" page in child window
driver.execute_script("window.open('https://bing.com')")
# Get list of all windows currently opened (parent + child)
all_windows = driver.window_handles
# Get child window
child_window = [window for window in all_windows if window != parent_window][0]
# Switch to child window
driver.switch_to.window(child_window)
driver.title # 'Bing'
# Close child window
driver.close()
# Switch back to parent window
driver.switch_to.window(parent_window)
driver.title # 'Google'
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow