私はUIAを使用して、必要なテストのために、nativate、goback、goforwardなどのブラウザー(つまり、chrome、firefox)の操作を制御しようとしています。デモコードを書いてみましたが、問題が発生しました。Chromeのアドレス編集用のAutomationElementを入手し、ValuePatternを使用してURLを設定しようとしましたが、以下の例外が発生しました。
在 System.Runtime.InteropServices.Marshal.ThrowExceptionForHRInternal(Int32 errorCode, IntPtr errorInfo)
在 MS.Internal.Automation.UiaCoreApi.CheckError(Int32 hr)
在 System.Windows.Automation.ValuePattern.SetValue(String value)
在 BrowserControl.Browser.Browser.Goto(String url) 位置 C:\Users\darren\documents\visual studio 2010\Projects\BrowserControl\BrowserControl\Browser\Browser.cs:行号 109
在 BrowserControl.Program.Main(String[] args) 位置 C:\Users\darren\documents\visual studio 2010\Projects\BrowserControl\BrowserControl\Program.cs:行号 17
在 System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
在 System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
在 Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
在 System.Threading.ThreadHelper.ThreadStart_Context(Object state)
在 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
在 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
在 System.Threading.ThreadHelper.ThreadStart()
また、SetFoucusメソッドでも同じ例外が発生することがわかりました。win32メソッドを使用してメッセージを送信しようとしましたが、element.Current.NativeWindowHandleがnullであることがわかりました。しかし、ValuePatternの現在のプロパティから現在の値を確認できます。以下のメソッド()UiaRegisterProviderCallback(IntPtr.Zero);を呼び出すまで、UIAが最初にChromeのコントロールを見つけることができないアドレスの場合。
だから、それの理由はわかりません、そしてとにかくクロムの制御の値を設定することはありますか