chromedp.Navigate(tragetUrl),
chromedp.WaitVisible("#button"),
chromedp.Click("#button"),
目标:如果#按钮不存在,则重新加载当前页面,直到按钮出现并单击它
#按钮出现在随机时间,并取决于目标网站。
对实现上述目标有什么好的建议吗?
发布于 2022-05-18 04:27:22
关键是使用选项chromedp.AtLeast(0)
。见下面的演示:
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]))
}
}
}
https://stackoverflow.com/questions/70660726
复制相似问题