1

我有一个 ac# 程序,它使用 Process 类来启动 Internet Explorer 并转到一个 url。

然后它将特定字符串发送到该页面的搜索框,复制返回结果的整个屏幕,并对其进行处理。

我遇到的问题是这样的:

我使用 SendKeys.SendWait("abc") 将字符串发送到 Internet Explorer 中的页面(活动窗口)。当程序运行时,我看到页面上填充的内容有时是“bc”,有时是“abbc”,有时是“abcc”,有时是正确的“abc”。每次运行看起来完全不同。这个问题发生在我测试的多台机器上。但是在我自己的机器上,我最初开发这个的地方,我从来没有见过它发生 - 只有当我在其他机器上测试它(所有运行 XP)。

我在 SendWait 语句之间延迟以处理随机时间问题,但我是否相信即使在同一个 SendWait 语句中也存在问题?

需要帮助。谢谢。

4

1 回答 1

1

如果您试图获取网页的来源,那么我建议您使用类似的东西

WebClient client = new WebClient();
client.DownloadString("http://mypage");

如果您尝试抓取页面上呈现的文本,那么我建议您查看 HtmlAgilityPack,它应该可以让您更轻松地抓取页面的内容并使其更具体。或者,您可以使用 RegEx 来选择 div 标签之间的文本:

RegEx textSelector = new RegEx("<div>([^<]+?)</div>");
string pageText = "";
foreach(var match in textSelector.Matches(myHtml))
    pageText += match.Groups[0].Value;

警告,该代码是在我的脑海中写下的,未经测试,并且可能会导致一些带有嵌套标签的非常随机的结果:)

于 2012-01-23T20:38:07.473 回答