Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/449.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript iTunes connect VBA的自动化_Javascript_Html_Vba_Web Scraping - Fatal编程技术网

Javascript iTunes connect VBA的自动化

Javascript iTunes connect VBA的自动化,javascript,html,vba,web-scraping,Javascript,Html,Vba,Web Scraping,我正在尝试通过VBA自动生成报告。我曾在VBA工作,但无法通过代码登录iTunes网站。有人告诉我它是用IFrame写的,但我不知道。即使我不能把我的用户名输入框的登录页面 Dim HTMLdoc作为HTMLDocument 将MyBrowser设置为InternetExplorer 子检查() 将MyHTML_元素设置为IHTMlement 将MyURL设置为字符串 MyURL=”https://itunesconnect.apple.com/login" 设置MyBrowser=New I

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

Dim HTMLdoc作为HTMLDocument
将MyBrowser设置为InternetExplorer
子检查()
将MyHTML_元素设置为IHTMlement
将MyURL设置为字符串
MyURL=”https://itunesconnect.apple.com/login"
设置MyBrowser=New InternetExplorer
MyBrowser.Silent=True
MyBrowser.navigate MyURL
MyBrowser.Visible=True
做
循环,直到MyBrowser.readyState=readyState\u完成
设置HTMLdoc=MyBrowser.document
HTMLdoc.getElementsByID(“帐户名称文本字段”)。值=“username@outlook.com"
HTMLdoc.all.Password.Value=“密码”
对于HTMLdoc.getElementsByTagName(“输入”)中的每个MyHTML_元素
如果MyHTML\u element.Type=“登录”,则MyHTML\u element.Click:退出
下一个
错误清除:
如果错误为0,则
呃,明白了
下一步继续
如果结束
端接头

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

我会选择vba并切换到iframe。当我有时间的时候,我会努力改进这个,但是现在这个效果很好

安装selenium后,您需要通过
VBE>Tools>References
selenium类型库添加引用

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
选项显式
公共子企业信息()
Dim d作为WebDriver,t作为Date,ele作为Object
设置d=新的色度驱动器
常量URL=”https://itunesconnect.apple.com/login"
常数等待时间秒长=30
t=计时器
与d
.启动“Chrome”
.获取URL
做
多芬特
如果定时器-t>等待时间秒,则退出Do
出错时继续下一步
.SwitchToFrame“辅助验证小部件iFrame”
Set ele=.FindElementByCss(“#帐户(名称)文本(字段)”)
错误转到0
循环,而ele什么都不是
如果ele为空,则退出Sub
“乔。Bloggs@aol.com"
.FindElementByCss(“#登录”)。单击
'其他代码。。。。

停止“你可能想调查一下。谢谢!尝试了API和以上代码,工作顺利:)您可以发布您的API答案,并在两天内接受它。
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