2018年12月17日月曜日

FileMakerのスクリプトをテキストとしてコピー|selenium,Windows Application Driver (WinAppDriver)


OS:Windows
FileMaker 16,17
selenium
Windows Application Driver (WinAppDriver)

seleniumの準備
https://www.seleniumhq.org/download/
C#のをダウンロード

フォルダーを作成し、「WebDriver」と「Support」をそれぞれのフォルダーに展開。
C:\WebDriver\selenium\WebDriver

C:\WebDriver\selenium\Support

「セキュリティ:ブロックの解除」の確認。
「C:\WebDriver\selenium\WebDriver\lib\net40」
「C:\WebDriver\selenium\Support\lib\net40」
フォルダを開き、すべてのファイルの「ブロックの解除」を行ってください。
※ブロックされていない場合は、そのままでOK.

Microsoft/WinAppDriverの準備
https://github.com/Microsoft/WinAppDriver/releases
WindowsApplicationDriver.msiをダウンロード
WindowsApplicationDriver.msiをダブルクリックしてインストール。
以下にインストールされます。
「C:\Program Files (x86)\Windows Application Driver\WinAppDriver.exe」

Windows 10|管理者モード にする。
WinAppDriver.exe は、管理者モードにしないと動作しません。

設定 - 更新とセキュリティー - 開発者向け
開発者モード を選択



「C:\Program Files (x86)\Windows Application Driver\WinAppDriver.exe」を起動し、

Windows Application Driver listening for requests at: http://127.0.0.1:4723/
Press ENTER to exit.

となればOK。

以上で準備は、完了。

FileMaker 16 または、17 でスクリプトワークスペースを開き、文字列でコピーしたいスクリプトを選択。

Windows PowerShell ISE で実行。

変数を設定 [$cmd; 値: Quote ( Setting::ProcessMakerHL_Path_win ) & " " & Quote ( "address=" & Setting::address 
) & " " & Quote ( "port=" & Setting::port ) & " " & Quote ( "access_token=" & Setting::access_token )]
Event を送信 [「aevt」; 「odoc」; $cmd].....

上記のようにスクリプトが文字列で取得できています。
「$Result|clip;」としてあるので、クリップボードにも保存されています。

.batファイルを作成。
バッチファイルを作成して、いつでもコピーできるようにする。
ファイル名:CopyFMScriptToString.bat
文字コード:ANSI (notepad.exeの場合) 他のエディターの場合、SHIFT-JIS でOK
中身:
powershell -Command "$ERROR.Clear();$OutputEncoding=[System.Text.Encoding]::Default;Add-Type -Path 'C:\WebDriver\selenium\WebDriver\lib\net40\WebDriver.dll' ;Add-Type -Path 'C:\WebDriver\selenium\Support\lib\net40\WebDriver.Support.dll' ;<#WinAppDriver を実行。#>$Path='C:\Program Files (x86)\Windows Application Driver\WinAppDriver.exe';Start-Process -windowstyle \"Minimized\" -FilePath $Path;<# デスクトップ操作用ドライバインスタンスを生成 #>$capabilities=New-Object OpenQA.Selenium.Remote.DesiredCapabilities;$capabilities.setCapability(\"app\", \"Root\");$uri = New-Object System.Uri(\"http://127.0.0.1:4723\");$driver=New-Object OpenQA.Selenium.Remote.RemoteWebDriver($uri,$capabilities);<#対象:最前面のファイル#>$WindowTitle=(Get-Process Filemaker* | Where-Object {$_.Name -ne \"\"} | Select-Object MainWindowTitle )[0].MainWindowTitle;$Window = $driver.FindElementByName(\"スクリプトワークスペース ($WindowTitle)\" );$element=$Window.findElementByName(\"Fabric\");$Result=$element.FindElementsByClassName(\"ListBoxItem\") | ForEach-Object {($_.text).Trim()};$Result|clip;$Result;$ERROR[0];"


CopyFMScriptToString.bat をダブルクリックで、FileMakerのスクリプトをテキストとしてコピーできます。

0 件のコメント:

コメントを投稿