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

时间:2018-05-08 16:14:01

标签: vba excel-vba selenium web-scraping selenium-chromedriver

我在vba中编写了一个与selenium相关的脚本,以便在某个torrent网站上启动搜索。我的脚本运行正常,但问题是我必须在脚本中使用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

1 个答案:

答案 0 :(得分:0)

似乎已经找到了解决方案。有the link导致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