我想使用Python在Windows环境中自动执行桌面活动.怎么做?一些例子也会有所帮助.
通过桌面活动,我指的是诸如控制鼠标和键盘,访问活动窗口属性,双击桌面上的图标,最小化和最大化窗口,通过键盘将数据输入到输入弹出窗口等操作.
这并不像听起来那么恶意,我想获得他们当前的窗户大小,而不是看他们的内容.目的是弄清楚如果每个其他窗口都是全屏的,那么我也应该这样开始.或者,如果所有其他进程只有800x600,尽管有一个巨大的分辨率,那么这可能是用户想要的.为什么让他们浪费时间和精力调整窗口大小以匹配他们拥有的所有其他人?我主要是一个Windows devoloper,但如果有一个跨平台的方法,它不会让我感到不安.
打开应用程序URL后,用户将被重定向到登录页面,其中有一个登录按钮.
driver.get("abc.com")
Run Code Online (Sandbox Code Playgroud)
现在,当用户单击"登录"按钮时,URL在同一窗口中更改,表示它变为xyz.com,并显示用于登录目的的身份验证弹出窗口,类似于下图所示的图像.

要在身份验证窗口中输入用户名和密码,我尝试了以下代码
shell = win32com.client.Dispatch("WScript.Shell")
shell.Sendkeys("username")
time.sleep(1)
shell.Sendkeys("{TAB}")
time.sleep(1)
shell.Sendkeys("password")
time.sleep(1)
shell.Sendkeys("{ENTER}")
time.sleep(1)
Run Code Online (Sandbox Code Playgroud)
它没用.然后我尝试使用上面的代码直接打开Windows身份验证弹出窗口(通过点击登录按钮后复制URL),它工作正常
driver.get("xyz.com")//instead of abc.com my application URL
Run Code Online (Sandbox Code Playgroud)
我有点困惑.如果我打开我的应用程序URL abc.com,单击登录按钮,使用autoit,它没有输入凭据.但是,如果我直接发送窗口身份验证URL xyz.com而不是app URL abc.com并使用autoit,它就可以工作.
任何人都可以建议我在这里缺少什么?我也尝试在点击登录按钮后切换窗口,考虑其新的URL然后自动命令,但它仍然无法正常工作.
driver.switch_to_window(driver.window_handles[1])
Run Code Online (Sandbox Code Playgroud)
有什么想法吗?
注意:我注意到点击登录按钮,窗口无限加载,光标在Windows身份验证poup的用户名文本字段上处于活动状态.此外,一旦出现Windows身份验证窗口,selenium命令都不起作用,也没有自动命令.