ささいなことですが。

Windowsアプリテスト自動化ライブラリFriendly開発者の日記です。

Friendlyを更新しました。

FriendlyとFriendly.Windowsを更新しました。
www.nuget.org
www.nuget.org

DynamicAppVarからの変換

コンストラクタにAppVarをとる型に変換できるようにした。こんな感じに書けるようにしました。人によっては気持ち悪いと思うかもしれませんが便利さ優先。

WPFTextBox textBox = app2.Type<Application>().Current.MainWindow._textBox;

WindowDriver作るときにちょっと楽になります。

public class EntryControl_Driver
{
    public WPFUserControl Core { get; }

    // new書かなくてよい
    public WPFTextBox Name => Core.Dynamic()._textBoxName;
    public WPFTextBox email => Core.LogicalTree().ByBinding("Mail.Value").Single().Dynamic();
    public WPFButtonBase Entry => Core.LogicalTree().ByType("System.Windows.Controls.Button").ByType<ContentControl>().ByContentText("Entry").Single().Dynamic();

    public EntryControl_Driver(AppVar core)
    {
        Core = new WPFUserControl(core);
    }
}

環境によって対象アプリのCPU使用率が高くなる不具合の修正

プルリク来ました。
けーすけ (@_ksuke) | Twitterさんありがとうございました!
github.com

WindowsAppFriendで接続状態の移譲

こんな感じのコードが書けます。

//アプリにアタッチ
var app = new WindowsAppFriend(targetApp);
var targetWindowHandle = targetApp.MainWindowHandle;

//接続状態を移譲
//これをするとappは所有権を失います。
var bin = app.HandOverResources(newOwnerProcessId);

//接続権限を引き継ぎ
var app2 = new WindowsAppFriend(targetWindowHandle, bin);

???
なんの役にやつの?
次のブログで解説します。