0
我試圖通過URI找到打開的網頁並在其上啓動JS。我找到了一些樣本並寫了簡單的方法。這是它的外觀:Watin:從IE獲取網頁並在其上啓動JavaScript
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'秒後過期。
我GOOGLE了很多,但還是沒有找到任何解決辦法:( 任何人可以幫助請 感謝
爲什麼不使用WatiN打開網頁然後選擇特定的對象?當你有有效的IE實例時,你可以調用如下的代碼:ie.RunScript(「alert('script from WatiN!');」); –