0

我正在尝试通过 URI 找到打开的网页并在其上启动 JS。我找到了一些示例并编写了简单的方法。这就是它的外观:

private void GetHtmlCode()
    {
        string uri = GetTargetURI();
        if(!string.IsNullOrEmpty(uri))
        {
            IE ie = IE.AttachTo<IE>(Find.ByUrl(uri));
            htmlCode = ie.Eval(JavaScriptToRun);
        }
        else
        {
            MessageBox.Show("Target page is not opened",
                            "Notification", MessageBoxButtons.OK);
        }
    }

还有一种获取 URI 的方法:

private string GetTargetURI() //проверка URL
    {

        Regex reg;
        Match match;
        foreach(SHDocVw.InternetExplorer ie in shellWindows)
        {
            reg = new Regex(patternURL);
            match = reg.Match(ie.LocationURL.ToString());
            if (!string.IsNullOrEmpty(match.Value))
            {
                pageURL = ie.LocationURL.ToString();
                return pageURL;
            }
            pageURL = string.Empty;              
        }
        return pageURL;
    }   

- 所以 URI 完全正确或为空。

问题IE ie = IE.AttachTo<IE>(Find.ByUrl(uri));总是抛出

WatiN.Core.Exceptions.BrowserNotFoundException:找不到 IE 窗口匹配约束:属性“href”等于 uri“%my_target_URI%”。搜索在 '30' 秒后过期。

我用谷歌搜索了很多,但仍然没有找到任何解决方案:(有人可以帮忙吗?谢谢。

4

1 回答 1

0

尝试使用:

Browser.AttachTo<IE>(Find.ByUrl(u => u.Contains("NewMapping")))

并确保您的函数没有返回空,因为这应该是没有捕获窗口的原因。

问候!

于 2012-10-31T18:33:06.160 回答