IE.Navigate等到URL更改

时间:2018-02-14 21:22:46

标签: internet-explorer vbscript scripting

我尝试创建一个输入网络凭据的脚本,但是当我将表单的网址(https://accounts.sap.com/saml2/idp/sso/accounts.sap.com)直接放在浏览器中时,我发现它显示了一个消息说:

  

错误身份提供商无法处理身份验证请求   接收。删除浏览器缓存和存储的cookie,然后重新启动   你的浏览器。如果您仍然遇到问题,请发送电子邮件至   sso@sap.com

但是,如果我在浏览器中输入https://launchpad.support.sap.com/,它会重新启动相同的网址而不会显示错误消息。

这是我使用的脚本:

Call Main

Function Main
    Set IE = WScript.CreateObject("InternetExplorer.Application", "IE_")
    IE.Visible = True
    IE.Navigate "https://launchpad.support.sap.com/#/softwarecenter"
    Wait IE
    With IE.Document
        .getElementByID("j_username").value = "USERNAME"
        .getElementByID("j_password").value = "PASSWORD"
        .getElementsByName("frmLogin")(0).Submit
    End With
End Function

Sub Wait(IE)
  Do
    WScript.Sleep 500
  Loop While IE.ReadyState < 4 And IE.Busy
End Sub

但是脚本不会等待URL更改并搜索元素。

有人知道如何等到网址更改吗?

1 个答案:

答案 0 :(得分:0)

他们的服务器使用重定向。 (f12&gt; IE中的网络选项卡)。你应该导航到 https://accounts.sap.com/

IE.Navigate("https://accounts.sap.com")

你还应该确保&#34;记住我&#34;复选框已关闭,因此网站cookie不会在您下次运行脚本时尝试自动登录。

.getElementById("rememberme").checked = false;

每次运行脚本时,都可以使用IE开发工具(f12)删除网站cookie。

理想情况下,您想要注销&#39;他们的网站每个测试周期,以便每次运行脚本时,都会在其服务器上创建一个新会话。