我正在尝试使用MSAA(在Win7上)获取chrome浏览器中的地址栏并将其替换为不同的URL。当chrome正常启动时(作为登录用户),我可以通过遍历进程拥有的窗口类的UI树,使用IAccessible接口找到地址栏。 但是,如果我以不同的用户身份启动chrome(通过在Windows中使用RunAs),我会看到带有名称的窗口," chrome legacy window"通过" RunAs"所拥有的课程时处理。窗口层次结构和内容与我在扫描以登录用户身份运行的进程时所看到的内容大不相同。
虽然我可以看到(窗口类名)Chrome_WidgetWin_0&两个浏览器实例中的Chrome_WidgetWin_1,只有作为当前用户运行的那个允许访问地址栏。 知道chrome作为不同用户推出时发生了什么?是否有任何解决方法或我应该考虑不同的技术?
答案 0 :(得分:4)
我发现如果在Chrome查看器(在某些版本的chrome中)中打开了PDF文件,则会显示您引用的窗口。请确认打开chrome时使用的URL。
我还读过密码请求提示可以导致同一个窗口打开。仅当窗口由某些进程/用户启动时,才会显示PDF窗口
答案 1 :(得分:2)
Penn已经注意到这可能与PDF视图有关,这在最奇怪的地方引起了特殊问题。
查看错误跟踪器here,它看起来像PDF和#34;遗留窗口"的零星行为。已经在最近的版本中引入,所以也许尝试回滚到早期版本的Chrome。
此外,我认为你正在使用chrome:// accessibility with
Global accessibility mode: on
Show internal accessibility tree instead of native: on
或使用标志--force-renderer-accessibility启动chrome似乎是其他自动化程序(如here所示的自动程序的先决条件。
如果您无法使用此方法,我建议您尝试使用自动脚本。
这是一个自动code example,显示抓取地址栏并将其用于一般导航,其他内容!