2017-07-04 15 views
-1

Ich habe ein Skript geschrieben, das VBA in Kombination mit Selen verwendet, um alle Unternehmensverknüpfungen von einer Webseite zu erhalten, die nicht alle Links anzeigt, bis nach unten gescrollt wurde. Wenn ich jedoch mein Skript ausführe, bekomme ich nur 20 Links, aber es gibt insgesamt 1000 Links. Ich habe gehört, dass es möglich ist, diese Art von Aufgabe auszuführen JavaScript-Funktion zwischen dem Code ausführen. Zu diesem Zeitpunkt kann ich mir nicht vorstellen, wie ich das in mein Skript einfügen kann. Hier ist, was ich bisher versucht:Wie kann ich eine Webseite mit Selenium mit VBA scrollen?

Sub Testing_scroll() 

Dim driver As New WebDriver 
Dim posts As Object, post As Object 

driver.Start "chrome", "http://fortune.com/fortune500" 
driver.get "/list/" 

driver.execute_script ("window.scrollTo(0, document.body.scrollHeight);") --It doesn't support here 

Set posts = driver.FindElementsByXPath("//li[contains(concat(' ', @class, ' '), ' small-12 ')]") 

For Each post In posts 
    i = i + 1 
    Cells(i, 1) = post.FindElementByXPath(".//a").Attribute("href") 
Next post 

End Sub 
+0

Ich denke, Power Query kann das automatisch tun, wenn Ihre Version von Excel es unterstützt, oder dynamische Web-Abfrage für ältere Version https://www.vertex42.com/News/excel-web-query.html – Slai

Antwort

0

Nach den Beispielen mit SeleniumBasic enthalten Sie

driver.ExecuteScript("window.scrollTo(0, document.body.scrollHeight);") 

nicht „driver.execute_script“ verwendet werden soll, das ist die Python-Äquivalent von the previous solution I gave you:) Sie müssen das auf die gleiche Weise wiederholen, bis Sie alle 1000 Links auf der Seite haben.

+0

Dank George McConnon, für deine Antwort. Es löst teilweise das Problem, vor dem ich jetzt stehe. Ich kämpfe jedoch, um eine Schleife zu erstellen, um diesen Prozess zu erreichen. – SIM

+0

Ich habe es schon herausgefunden. – SIM

+0

Gut gemacht! :) Du solltest deine Lösung hier hinzufügen, damit andere von deiner Weisheit profitieren können: D – NotInventedHere

Verwandte Themen