首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >iTunes connect VBA的自动化

iTunes connect VBA的自动化
EN

Stack Overflow用户
提问于 2018-09-06 10:08:05
回答 1查看 118关注 0票数 0

我正在尝试通过VBA自动生成报告。我在VBA中工作过,但不能通过代码登录iTunes网站。有人告诉我它是用IFrame写的,但我不知道。我甚至不能在登录页面的输入框中输入我的用户名。

https://itunesconnect.apple.com/login

代码语言:javascript
运行
复制
Dim HTMLdoc As HTMLDocument    
Dim MyBrowser As InternetExplorer

Sub check()

    Dim MyHTML_element As IHTMLElement
    Dim MyURL As String

    MyURL = "https://itunesconnect.apple.com/login"
    Set MyBrowser = New InternetExplorer

    MyBrowser.Silent = True
    MyBrowser.navigate MyURL
    MyBrowser.Visible = True

    Do
    Loop Until MyBrowser.readyState = READYSTATE_COMPLETE

    Set HTMLdoc = MyBrowser.document

    HTMLdoc.getElementsByID("account_name_text_field").Value = "username@outlook.com"
    HTMLdoc.all.Password.Value = "password"

    For Each MyHTML_element In HTMLdoc.getElementsByTagName("input")

        If MyHTML_element.Type = "sign-in" Then MyHTML_element.Click: Exit For

    Next

Err_Clear:

    If Err <> 0 Then

        Err.Clear

        Resume Next
    End If
End Sub
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-06 13:36:37

API听起来是个好主意。整个页面的加载速度非常慢(至少对我来说是这样),而且有一个iframe可供导航。

我会选择selenium basic wrapper for vba,然后切换到iframe。当我有时间的时候,我会试着改进这一点,但现在这是可行的。

在安装selenium之后,您将需要通过VBE > Tools > References添加对Selenium Type library的引用。

代码语言:javascript
运行
复制
Option Explicit
Public Sub EnterInfo()
    Dim d As WebDriver, t As Date, ele As Object
    Set d = New ChromeDriver
    Const URL = "https://itunesconnect.apple.com/login"
    Const WAIT_TIME_SECS As Long = 30
    t = Timer
    With d
        .Start "Chrome"
        .get URL
        Do
            DoEvents
            If Timer - t > WAIT_TIME_SECS Then Exit Do
            On Error Resume Next
            .SwitchToFrame "aid-auth-widget-iFrame"
            Set ele = .FindElementByCss("#account_name_text_field")
            On Error GoTo 0
        Loop While ele Is Nothing

        If ele Is Nothing Then Exit Sub
        ele.SendKeys "Joe.Bloggs@aol.com"

        .FindElementByCss("#sign-in").Click

        'Other code....
        Stop                                     '<=Delete me later
        .Quit
    End With
End Sub
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52195518

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档