一尘不染

无法检查任何消除硬编码延迟的元素的可用性

selenium

我已经在vba中与selenium相关联地编写了一个脚本,以开始在某些洪流站点中进行搜索。我的脚本运行良好,但问题是我必须hardcoded delay在脚本中使用才能使其成功。我现在想做的是使用一些循环或任何类似的方式通过从脚本中排除硬编码延迟来检查所需元素的可用性。任何帮助,将不胜感激。

到目前为止,这是我的尝试(正在工作):

Sub SearchItem()

    With New ChromeDriver
        .get "https://torrentz2.eu/"

        Application.Wait Now + TimeValue("00:00:10")  ''I wish to shake this hardcoded delay off
        .FindElementByCss("#thesearchbox").SendKeys ("Udemy")
        .FindElementByCss("#thesearchbutton").Click
    End With
End Sub

参考添加:

Selenium Type Library

阅读 245

收藏
2020-06-26

共1个答案

一尘不染

似乎已经找到了解决方案。有一个指向
github 的链接,其中Florent B.提供了关于脚本应如何等待直到所需元素可用的出色解决方案。

脚本应该是这样的:

Sub SearchItem()

    With New ChromeDriver
        .get "https://torrentz2.eu/"
        .FindElementByCss("#thesearchbox", timeout:=10000).SendKeys "Udemy"  ''wait for the element upto 10 seconds
        .FindElementByCss("#thesearchbutton").Click
    End With
End Sub
2020-06-26