NTTデータ認定WinActorアンバサダー NTTデータ認定WinActorアンバサダー WinActor無料トライアル! WinActor無料トライアル! NTTデータ「公式」eラーニング NTTデータ「公式」eラーニング NTTデータRPAパートナーアワード2022-2023受賞企業一覧 NTTデータRPAパートナーアワード2022-2023受賞企業一覧

TOPJohn | ポイント
※匿名による投稿などの履歴は、本人にのみ表示されます。
投稿にコメントしました

>具体的には、WinActorから表示したEdgeの設定画面の左上の設定(正確にはその横の三本線)の座標に対してクリック設定、 >更に表示されたメニューの中から任意のものの座標に対してのクリック設定、を実施。 何の設定を変更したいのか具体的に書かれるとレスが付きやすいと思いますよ

2024年4月25日 8:29
投稿にコメントしました

興味がある人向け 最新のSeleniumはWebdriverを自動更新します(Edge含む) 自動更新部分はrustで書かれたselenium_managerが更新作業を行います なので c# 用の selenium の内部にある selenium_manager.exe を実行して WebDriver の更新を行うという手段もあります https://www.selenium.dev/documentation/selenium_manager/| まあ、早く WinActor も最新のseleniumを使用するように変更して欲しいですけどね・・・

2024年4月24日 15:38
投稿にコメントしました

style=display:none の場合は対象をクリック出来ないのでdisplay:none をjavascriptで変更して クリック出来るようにすると良いです

2024年4月24日 13:04
投稿にコメントしました

100%エラーが出るならスクリプトにmsgboxでも埋め込んで どこまで動いているか確認するといいんですけどね

2024年4月16日 16:54
投稿にコメントしました

アナソリさんの マクロの実行結果を.xlsxで保存したい? マクロ実行を経ずに.xlsxで保存したい? に関係すると思いますが、手動で開いてxlsxで保存した場合はエラーが出るんですか?

2024年3月29日 8:22
投稿にコメントしました

茄子天さん 2行は意味無いと思いますよ まあ、結局なんですが powershell でなくても良いんですけどね オープンしてxlsxでセーブするだけなのでvbsで良い

2024年3月29日 8:18
投稿にコメントしました

wordeditor を使用するのですが自作のサンプルが見つからないので 参考サイトを https://qiita.com/santarou6/items/0a316f6a48451edcbb31|

2024年3月28日 15:45
投稿にコメントしました

茄子天さんのだとpowershellでは strCmd = strCmd & " $objExcel.EnableEvents = $false;" & vbNewLine でしょうか

2024年3月28日 15:39
投稿にコメントしました

拡張機能制御が後付け機能なので、このように変な仕様になっているんでしょうが オプションを拡張機能制御にしたら、ブラウザ起動は拡張機能制御用にブラウザを起動する(WebDriverを使用しない)と今後変更したほうがわかりやすいかもですね>公式

2024年3月28日 15:22
投稿にコメントしました

C# なので powershell へ要変更ですが ダウンロードフォルダ設定及び自動操作中のinfobarを閉じる UiAutomation のサンプルです。     public static void SetEdgeDownloadFolder(string windowNamePattern, string downloadFolderPath)     {         var rootElement = AutomationElement.RootElement;         var edgeElement = FindElementByClassNameAndNameReg(rootElement, "Chrome_WidgetWin_1", windowNamePattern);         if (edgeElement is not null)         {             var dialogElement = FindElementByClassName(edgeElement, TreeScope.Children, "#32770");             if (dialogElement is not null)             {                 var editElement = FindElementByClassName(dialogElement, TreeScope.Children, "Edit");                 if (editElement is not null)                     SetValue(editElement, downloadFolderPath);                 var selectElement = FindElementByClassNameAndName(dialogElement, "Button", "フォルダーの選択");                 if (selectElement is not null)                     Invoke(selectElement);             }         }     }     public static void CloseInfoBar(string windowNamePattern)     {         var rootElement = AutomationElement.RootElement;         var edgeElement = FindElementByClassNameAndNameReg(rootElement, "Chrome_WidgetWin_1", windowNamePattern);         if (edgeElement is not null)         {             var infoBarContainerElement = FindElementByClassName(edgeElement, TreeScope.Descendants, "InfoBarContainerView");             if (infoBarContainerElement is not null)             {                 var cloaseButtonElement = FindElementByClassName(infoBarContainerElement, TreeScope.Descendants, "ImageButton");                 if (cloaseButtonElement is not null)                 {                     Invoke(cloaseButtonElement);                 }             }         }     }     private static AutomationElement? FindElementByClassNameAndNameReg(AutomationElement srcElement, string className, string namePattern)     {         AutomationElement? result = null;         var elements = srcElement.FindAll(TreeScope.Element | TreeScope.Children,                 new PropertyCondition(AutomationElement.ClassNameProperty, className))                 .Cast<AutomationElement>();         Regex reg = new Regex(namePattern);         foreach (var element in elements)         {             if (reg.IsMatch(element.Current.Name))             {                 result = element;                 break;             }         }         return result;     }     private static AutomationElement FindElementByClassName(AutomationElement srcElement, TreeScope treeScope, string className)         => srcElement.FindFirst(TreeScope.Element | treeScope, new PropertyCondition(AutomationElement.ClassNameProperty, className));     private static AutomationElement? FindElementByClassNameAndName(AutomationElement srcElement, string className, string name)     {         return srcElement.FindAll(TreeScope.Element | TreeScope.Children,                 new PropertyCondition(AutomationElement.ClassNameProperty, className))                 .Cast<AutomationElement>()                 .Where(x => x.Current.Name.Equals(name))                 .First();     }     private static void SetValue(AutomationElement srcElement, string elementText)     {         var valuePattern = srcElement.GetCurrentPattern(ValuePattern.Pattern) as ValuePattern;         if (valuePattern is not null)             valuePattern.SetValue(elementText);     }     private static void Invoke(AutomationElement srcElement)     {         var invokePattern = srcElement.GetCurrentPattern(InvokePattern.Pattern) as InvokePattern;         if (invokePattern is not null)             invokePattern.Invoke();     }

2024年3月28日 8:22
投稿にコメントしました

公式の回答が必要な場合はこちらではほぼ回答されないので 問い合わせの非公開(重要)で保守契約IDを記載の上質問された方が良いですよ 個人的には、WinActor 終了後にバックアップ、起動前にリストアで運用かなとは思いますが

2024年3月26日 15:50
投稿にコメントしました

IEは、かなり前になりますが スクリプトを大幅に改変して使用してましたね 現在はver6もインストールしてないので 過去のスクリプト改変分のUPも出来ません・・・ vba詳しいと色々出来るんですけどね

2024年3月22日 16:23
投稿にコメントしました

エラーの原因はわかりませんが 運用方法として 処理が終わったら「済」とかデータに書き込むと運用しやすいですよ 未処理「空白」だけ処理するとしておくと再度動作させたときも「済」データはスキップされる 手作業で処理した分も「済(手動)」とするとRPAではスキップされる

2024年3月21日 11:14
投稿にコメントしました

念のため、このスクリプトの設定欄を貼ってもらった方が良いかも あと、現状どのように生成されるのか 今後どのように生成したいのか を書かれた方が良いかと

2024年3月14日 11:45
投稿にコメントしました

他から持ってきただけなので 最後のJSON表示をWinActor起動に変更する必要はありますが

2024年3月6日 9:04
投稿にコメントしました

まずは、人を介在しない運用を目指すべきだとは思いますが どうしても介在させたいみたいですが ドラッグドロップよりもファイル選択ダイアログを表示するとかの方が 使いやすくないですかね? powershellですが Add-Type -AssemblyName System.Windows.Forms Add-Type -AssemblyName System.Drawing $Form = New-Object System.Windows.Forms.Form $Form.Size = New-Object System.Drawing.Size(850,170) $Form.Text = "入力ダイアログ" $Form.MaximizeBox = $false $Form.FormBorderStyle = [System.Windows.Forms.FormBorderStyle]::FixedSingle $Form.TopMost = $true $Form.Font = New-Object System.Drawing.Font('メイリオ',9) $Form.StartPosition = [System.Windows.Forms.FormStartPosition]::CenterScreen $LabelFilePath = New-Object System.Windows.Forms.Label $LabelFilePath.Location = New-Object System.Drawing.Point(20,10) $LabelFilePath.Size = New-Object System.Drawing.Size(270,20) $LabelFilePath.Text = "ファイルを指定してください。" $Form.Controls.Add($LabelFilePath) $TextBoxFilePath = New-Object System.Windows.Forms.TextBox $TextBoxFilePath.Location = New-Object System.Drawing.Point(20,30) $TextBoxFilePath.Size = New-Object System.Drawing.Size(720,45) $TextBoxFilePath.Multiline = $true $TextBoxFilePath.ScrollBars = [System.Windows.Forms.ScrollBars]::Vertical $Form.Controls.Add($TextBoxFilePath) $ButtonFilePath = New-Object System.Windows.Forms.Button $ButtonFilePath.Location = New-Object System.Drawing.Point(750,30) $ButtonFilePath.Size = New-Object System.Drawing.Size(50,25) $ButtonFilePath.Text = "参照" $Form.Controls.Add($ButtonFilePath) $ButtonCancel = New-Object System.Windows.Forms.Button $ButtonCancel.Location = New-Object System.Drawing.Point(630,85) $ButtonCancel.Size = New-Object System.Drawing.Size(80,25) $ButtonCancel.Text = "キャンセル" $ButtonCancel.DialogResult = "Cancel" $Form.Controls.Add($ButtonCancel) $ButtonOK = New-Object System.Windows.Forms.Button $ButtonOK.Location = New-Object System.Drawing.Point(725,85) $ButtonOK.Size = New-Object System.Drawing.Size(80,25) $ButtonOK.Text = "OK" $Form.Controls.Add($ButtonOK) $ButtonFilePath.add_click{     $Dialog = New-Object System.Windows.Forms.OpenFileDialog     $Dialog.Title = "ファイルを選択してください。"     if ($Dialog.ShowDialog() -eq "OK")     {         $TextBoxFilePath.Text = $Dialog.FileName     } } $ButtonOK.add_click{         $Form.DialogResult = "OK" } $Result = $Form.ShowDialog() if ($Result -eq "OK") {     $JsonHash = @{}     $JsonHash["FilePath"] = $TextBoxFilePath.Text     ConvertTo-Json -InputObject $JsonHash -Compress } $Form.Dispose()

2024年3月6日 9:00
投稿にコメントしました

うちは管理者ユーザのノードロック版ですね まあ、引数に -f 付ければ良さそうですかね

2024年3月6日 8:32
投稿にコメントしました

あれ、うちの環境とレジストリまったく違いますね Windows10 環境ですが \HKEY_CLASSES_ROOT\winactor7_scenario\shell\open\command \HKEY_LOCAL_MACHINE\SOFTWARE\Classes\winactor7_scenario\shell\open\command の WinACtor7.exe の引数は -f になってますが それだけですね

2024年3月5日 16:51
投稿にコメントしました

設定ファイルはExcel派が多いのでしょうが 自分はJSONを使用しています

2024年3月5日 12:48
投稿にコメントしました

winactor 及び selenium から考えて前のコメントを書いていたのですが WebDriver の仕様的にはページのタイムアウト時間設定の変更できるのでは? と思ったので書いておきます 動作確認用のページ及び時間の都合で確認は出来ませんが https://www.w3.org/TR/webdriver/#timeouts| のPage load timeoutを設定すると良さそう 設定方法は、また難解になりますが・・・ デフォルトの値を見ると300秒になってるので現状5分ぐらい待ってる状態?

2024年3月5日 12:03