【发布时间】:2013-12-30 16:15:25
【问题描述】:
我正在尝试单击网页上的按钮。 我有当前的代码:
WebBrowser1.Document.All("load-more").InvokeMember("click")
但是,我还有其他代码可以在页面上向下滚动,因为直到您到达底部才会加载整个页面。 最终,在您到达底部几次后,您可以选择是否要加载更多内容。 您单击以加载更多的按钮的 ID 是“加载更多”,但是,该按钮并不总是可用。
那么它怎么可能等到按钮可点击才真正点击按钮呢?
我尝试过使用System.Threading.Thread.Sleep(6500),但我不能使用它,因为如果我这样做,页面将不会自动向下滚动。
有人对我如何实现这一点有任何想法吗?
我专注于 WebBrowser:
Me.WebBrowser1.Document.Body.Focus()
我将键发送到 WebBrowser 以进行滚动:
System.Windows.Forms.SendKeys.Send("{END 5}")
滚动脚本现在看起来像这样:
Dim Wait As Date
Now.AddSeconds(Second)
Wait = Now.AddSeconds(Second).AddSeconds(1)
Do Until Now > Wait
Application.DoEvents() ' Allow windows messages to be processed
Loop
Me.WebBrowser1.Document.Body.Focus()
System.Windows.Forms.SendKeys.Send("{END 5}")
所以基本上,现在,一旦网页加载完毕,它就会自动向下滚动到底部。
我仍然不知道如何检查按钮是否可点击 - 该按钮仅在网页滚动到底部几次后才会出现(每次滚动都会加载更多内容)。
【问题讨论】:
-
如果您的页面加载需要 6.6 秒怎么办?
-
向下滚动页面的代码是什么?
-
页面加载后页面自动滚动。
-
将代码添加到帖子中。
标签: .net vb.net winforms visual-studio-2010 webbrowser-control