SeleniumWebDriver でウインドウサイズを最大化しようと思ったら、Java とかでは

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

と書くところ、canopy ではどう書くのか気になって調べました。

ウインドウを最大化する

canopy では

pin FullScreen

と書きます。

ちなみに、デフォルトではブラウザを立ち上げると右にスナップするようになっているそうです。

コレは

pin Right

と書いた場合と同じで、左にスナップすることも可能。

github を見ると、pin の内部実装はこんな感じ。

let pin direction =   
    let h = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Height
    let w = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Width
    let maxWidth = w / 2    
    browser.Manage().Window.Size <- new System.Drawing.Size(maxWidth,h)        
    match direction with
    | Left -> browser.Manage().Window.Position <- new System.Drawing.Point((maxWidth * 0),0)
    | Right -> browser.Manage().Window.Position <- new System.Drawing.Point((maxWidth * 1),0)
    | FullScreen -> browser.Manage().Window.Maximize()

pin の引数 direction は、types.fs の中で direction 型として定義されていて、

type direction =
    | Left
    | Right
    | FullScreen

となってました。当然テキトーな文字を渡すとビルド時に型エラーで怒られます。

プログラミングF#