我正在尝试加载网站,等待它完全加载,然后在加载时显示一个消息框。
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
WebBrowser1.Navigate("https://www.google.com")
Do Until WebBrowser1.ReadyState = 4
Threading.Thread.Sleep(100)
Loop
MsgBox("Loaded")
End Sub
然而,当我使用它时,没有任何事情发生,尽管等待大约30秒。如果我删除所有内容,请留下......
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
WebBrowser1.Navigate("https://www.google.com")
End Sub
...,它加载得很好。
答案 0 :(得分:0)
UI不会加载页面,因为你已经在无限(或至少接近无限)的循环中绑定了UI线程。
而不是等待以便浏览器加载,而是异步响应event of the browser loading。像这样:
// "Some text\r\nSome text\r\nSome text\r\nSome text\r\nPage 1 to 20"
string divText = Driver.FindElement(By.Id("tabletransaction")).Text;
// ""Some text\r\nSome text\r\nSome text\r\nSome text"
string tableText = Driver.FindElement(By.Id("ticketransaction")).Text;
// "Page 1 to 20"
string remainingText = divText.Replace(tableText, string.Empty).Trim();
每当您发现自己想要“暂停”某个应用程序以等待某些事情发生时,您很可能需要在发生某事时订阅事件。
答案 1 :(得分:0)
如果我看到这是正确的,那么由于你在每次运行支票时都使主线程停止。你能不能在DocumentCompleted事件上添加一个事件处理程序?