使用VBA操作IElogin和预订课程

我试图用VBA打开一个新的IE实例,进入一个网页,login,然后导航到一个页面,在那里我可以预订我的体育课,导航到正确的类,并按下“书”button。

我相当精通简单的VBA,我已经使用了一段时间来自动执行excel任务,但是我从来没有试图用IE来使用它,所以我对它的相当新颖。
我不太了解VBA如何与HTML集成,而我的HTML知识是相当基础的。

到目前为止,我已经设法创build的代码来打开IE,导航到正确的网页,并login我从那里变得复杂…

该网页有一系列的“块”,可以select为周体育课。 这些都是每天更新,所以代码将需要search正确的date,时间和类,然后按相应的书籍button。

在过去的几天里,我已经广泛地search了这个解决scheme,但是找不到类似于我正在寻找的东西。

我到目前为止的VBA如下。 这适用于我的要求的第一部分。

Sub Login_Test() ''This version successfully goes to puregym.com and logs into my account 'Outstanding'''''''''''''''''''''''''''''''''' 'Need to select class page 'Need to select correct date & class 'Need to book class '''''''''''''''''''''''''''''''''''''''''''''' ' open IE, navigate to the desired page and loop until fully loaded Set ie = CreateObject("InternetExplorer.Application") my_url = "http://www.puregym.com/" With ie .Visible = True .navigate my_url Do Until Not ie.Busy And ie.readyState = 4 DoEvents Loop End With ' Input the userid and password ie.Document.getElementById("edit-email").Value = "email address" ie.Document.getElementById("edit-pincode").Value = "pin number" ' Click the Submit button ie.Document.getElementById("edit-submit").Click Do Until Not ie.Busy And ie.readyState = 4 DoEvents Loop ' Navigate to bookings page With ie .navigate "http://www.puregym.com/members/bookings" End With End Sub 

我可能是错的,但我相信我想运行的HTML的一个例子如下。 我想模仿select课堂和点击书籍button的行动。 (一旦我已经掌握了基础知识,我想VBA将类名,date和时间与我将存储在excel范围内的列表进行比较,只有在范围内才能预定。我很欣赏我需要在跑步之前走路,而所有这些……)

  <div class="day column-1" data-date="Friday 22nd January" data- shortdate="Fri 22/1" data-index="1"> <h2>Fri 22/1</h2> <div id="tt_block_53_33253" class="three columns tt_block" data-date="2016-01-22" data-time="06:15"> <div class="timetable-class limited-availability"> <button class="icon-info">&nbsp;</button> <div class="popout"> <span class="weekly-close">&nbsp;</span> <h1>FAST Tabata</h1> <p class="timetable-info">This class takes interval training to the next level. 20 seconds high intense work followed by 10 seconds rest for 8 rounds, sound easy? Give this class a go, you won't be disappointed.</p> <img src="//www.puregym.com/sites/default/files/styles/square_thumbnail/public/classes/Misc20_0.jpg?itok=mnWQFaIU" alt="Example of FAST Tabata" /> </div> <header> <h1>FAST Tabata</h1> <h2> 06:15 - 06:45 </h2> </header> <div class="pt-name">PT name: <strong>Lewis Pratten</strong></div> <span class="gym-name">Bristol Harbourside</span> <div class="booking-buttons"> <a href="/members/class-booking/book/53/33253" class="use-ajax secondary button">Book</a> <span class="spaces-text">Spaces</span> <span class="spaces-number">1</span> </div> 

非常感谢任何人提供的帮助。 或者build议使用不同的语言会更容易些? 从我读过的也许python或Java将是一个更好的环境做到这一点,但我不熟悉或者…

要获得“书籍”button,您可以执行以下操作:

 Dim links, link Set links = IE.Document.GetElementsByTagName("a") For Each link In links If link.innerText = "/members/class-booking/book/53/33253" Then link.Click End If Next link