正在寻找如何在没有IE COM方法的情况下使用powershell测试网站登录的解决方案。有很多例子如何使用IE COM方法:-ComObject的internetExplorer.Application,但不幸的是,这对我来说不起作用,因为网站根本不使用IE。
Google chrome在其开发工具中的网络选项卡上有一个不错的功能
清除网络日志,过滤使其显示";所有";请求/响应。
登录到该网站,然后点击红色按钮或点击";ctrl+e";以阻止日志增加。
仔细查看每个请求,直到您看到登录请求(这些请求有时很难发现。(
一旦您找到请求,右键单击请求的名称,然后您可以选择";复制->复制为PowerShell";。
将其粘贴到ISE等中
然后,我个人将从请求上方删除所有$Session
行,并将-WebSession $session
更改为-SessionVariable $session
,然后在此后的每个web请求中调用-WebSession $session
。(只使用-Sessionvariable
一次,因为这是实例化会话的内容(。我这样做的原因是为了让登录创建自己的会话数据,而不是使用浏览器中的任何可能数据。
最后,您将希望从Web请求中清除任何不需要的标头。
根据登录机制的不同,请求可能需要调整以允许通过自动化完成,我只遇到过几种情况,由于AJAX或页面上的其他元素,需要多次请求。