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 に答える