首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Golang Chromedp重新加载当前页面,直到找到html对象

Golang Chromedp重新加载当前页面,直到找到html对象
EN

Stack Overflow用户
提问于 2022-01-11 01:40:35
回答 1查看 264关注 0票数 0
代码语言:javascript
运行
复制
chromedp.Navigate(tragetUrl),
chromedp.WaitVisible("#button"),
chromedp.Click("#button"),

目标:如果#按钮不存在,则重新加载当前页面,直到按钮出现并单击它

#按钮出现在随机时间,并取决于目标网站。

对实现上述目标有什么好的建议吗?

EN

回答 1

Stack Overflow用户

发布于 2022-05-18 04:27:22

关键是使用选项chromedp.AtLeast(0)。见下面的演示:

代码语言:javascript
运行
复制
func ReloadUntilButtonAppears(ctx context.Context, targetURL string) error {
    var nodes []*cdp.Node
    for {
        if err := chromedp.Run(ctx,
            chromedp.Navigate(targetURL),
            // chromedp.AtLeast(0) makes the query return immediately
            // even if there are not nodes found.
            chromedp.Nodes("#button", &nodes, chromedp.ByQuery, chromedp.AtLeast(0)),
        ); err != nil {
            return err
        }
        if len(nodes) > 0 {
            return chromedp.Run(ctx, chromedp.MouseClickNode(nodes[0]))
        }
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70660726

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档