No se puede quitar el retraso codificado de mi script
He escrito un script en vba en combinación con selenio para analizar todos los nombres de compañías disponibles en una página web. La página web tiene un método de carga diferida activo, por lo que solo hay 20 enlaces visibles en cada desplazamiento. Si me desplazo 2 veces, el número de enlaces visibles es 40 y así sucesivamente. Hay 1000 enlaces disponibles en esa página web. Mi script a continuación puede llegar al final de esa página manejando todos los desplazamientos y obtener todos los nombres disponibles en esa página web.
Sin embargo, es necesario esperar un cierto tiempo después de cada desplazamiento para que esa página web actualice el contenido. Aquí es donde he usadohardcoded delay
pero el proceso de codificación es muy inconsistente y, a veces, hace que el navegador se cierre antes de completar toda la operación.
¿Cómo puedo modificar esta parte.Wait 6000
para hacerloExplicit Wait
en lugar deHardcoded Wait
.
Esto es lo que he escrito hasta ahora:
Sub Getlinks()
Dim driver As New ChromeDriver, prevlen&, curlen&
Dim posts As Object, post As Object
With driver
.get "http://fortune.com/fortune500/list/"
prevlen = .FindElementsByClass("company-title").Count
Do
prevlen = curlen
.ExecuteScript ("window.scrollTo(0, document.body.scrollHeight);")
.Wait 6000 ''I like to kick out this hardcoded delay and use explicit wait in place
Set posts = .FindElementsByClass("company-title")
curlen = posts.Count
If prevlen = curlen Then Exit Do
Loop
For Each post In posts
R = R + 1: Cells(R, 1) = post.Text
Next post
End With
End Sub