等待WebBrowser中的URL加载C#
我正在开发一个程序,可以自动以批处理的形式重新发布Craigslist的帖子 我正在执行一个名为等待WebBrowser中的URL加载C#,browser,c#,wait,Browser,C#,Wait,我正在开发一个程序,可以自动以批处理的形式重新发布Craigslist的帖子 我正在执行一个名为arrayTest()的方法,该方法包含一行webBrowser1.Navigate(URL[I])。这将从数组中获取URL,并让webBrowser1打开它。执行后,clickRepost()方法。此方法模拟按钮单击。但是该方法在webBrowser1完成打开URL之前执行 我需要的帮助是告诉程序等待webBrowser1完成打开URL,然后再转到下一个方法 到目前为止,我所尝试的: Task t
arrayTest()
的方法,该方法包含一行webBrowser1.Navigate(URL[I])代码>。这将从数组中获取URL,并让webBrowser1
打开它。执行后,clickRepost()调用代码>方法。此方法模拟按钮单击。但是该方法在webBrowser1
完成打开URL之前执行
我需要的帮助是告诉程序等待webBrowser1
完成打开URL,然后再转到下一个方法
到目前为止,我所尝试的:
Task t = Task.Run(() => {
webBrowser1.Navigate(urls[i]);
})
t.wait();
clickRepost();
这仍然会导致clickRepost()
不允许webBrowser1
完成URL的加载。我还尝试在调用方法之间添加System.Threading.Thread.Sleep(5000)
,但在Java中这样做时,它只关闭程序x秒
这是我节目的一部分,真的是我唯一遇到麻烦的部分
private void arrayTest()
{
String[] urls = CLLinks.Text.Split('\n');
for (int i = 0; i < urls.Length; i++)
{
log.AppendText("Opening Url...\n");
webBrowser1.Navigate(urls[i]);
log.AppendText("Reposting...\n");
clickRepost();
log.AppendText("Checking Completion...");
webBrowser1.Navigate(urls[i]);
completionCheck();
}
}
private void CLRenBtn_Click(object sender, EventArgs e)
{
arrayTest();
}
private void completionCheck()
{
HtmlElementCollection col = webBrowser1.Document.GetElementsByTagName("input");
foreach (HtmlElement item in col)
{
if (!(item.GetAttribute("value") == "Renew this Posting"))
{
log.AppendText("Renew Posting does not exist");
}
else
{ }
}
}
private void clickRepost()
{
HtmlElementCollection col = webBrowser1.Document.GetElementsByTagName("input");
foreach (HtmlElement item in col)
{
if (item.GetAttribute("value") == "Renew this Posting")
{
item.InvokeMember("click");
}
else
{}
}
}
private void arrayTest()
{
字符串[]URL=CLLinks.Text.Split('\n');
for(inti=0;i
CLRenBtn\u单击
是我在表单上按下的开始重新过账的按钮<代码>arrayTest()
将更改为更相关的名称。当时我正在测试这是否可行。我计划合并clickRepost()
和completionCheck()
,因为它们做的是相同的事情
非常感谢 找到了答案!
这对我来说很好,但现在我的小问题是,当我开始重新发布时。它跳过数组中的第一个url,并发布后面的url。下次发布有关堆栈溢出的编程问题时。谢谢