private void cmdFlowNWPC_Click(object sender, EventArgs e) { // 定义载入 google 的页面状态. WebPageState loadGoogle = new WebPageState( "load google", // 状态的名称. completedStateSetting: new WebPageNextStateSetting("load blog", true), // 在页面完成时, 自动跳转到载入 blog 的状态. startAction: new NavigateAction("http://www.google.com.hk"), // 页面状态的开始动作为载入 http://www.google.com.hk. condition: new UrlCondition( // 判断页面状态是否完成的地址条件. "google condition", // 条件名称. "http://www.google.com.hk", // 载入的页面以 http://www.google.com.hk 开始时, 认为此地址条件成立. StringCompareMode.StartWith ) ); // 定义载入 blog 的页面状态. WebPageState loadMyBlog = new WebPageState( "load blog", // 状态的名称. startAction: new NavigateAction("http://blog.sina.com.cn/zoyobar"), // 页面状态的开始动作为载入 http://blog.sina.com.cn/zoyobar. completedAction: new ExecuteJavaScriptAction("alert('我是从 google 页面跳转过来的!');"), // 当页面状态完成后, 执行一条 javascript 脚本. condition: new UrlCondition( // 判断页面状态是否完成的地址条件. "blog condition", // 条件名称. "http://blog.sina.com.cn/zoyobar", // 载入的页面以 http://blog.sina.com.cn/zoyobar 开始时, 认为此地址条件成立. StringCompareMode.StartWith ) ); // 从当前的 WebBrowser 控件创建 IEBrowser 对象, 并赋予刚才定义的流程. IEBrowser ie = new IEBrowser(this.webBrowser, new WebPageState[] { loadGoogle, loadMyBlog }); // 从载入 google 页面的状态开始. ie.IEFlow.JumpToState("load google"); }
private string ProcessStatus(WebPageState state) { if (state.ProcessInstructions.IndexOf("Handle Links") == -1) { return("Missed "); } return(state.ProcessSuccessfull ? "Success" : "Failed "); }
private void HandleLinks(WebPageState state) { Match m = RegExUtil.GetMatchRegEx(RegularExpression.UrlExtractor, state.Content); while (m.Success) { ManualProcessorLinksCounter++; m = m.NextMatch( ); } }
public void ManualProcessor( ) { uri = "http://www.holidaycoast.net.au/"; WebPageState state = new WebPageState(new Uri(uri)); WebPageProcessor processor = new WebPageProcessor( ); Assertion.Assert("Process Page", processor.Process(state)); Assertion.AssertEquals("OK", state.StatusCode); Assertion.AssertEquals(true, state.ProcessSuccessfull); }
private void GraphicsLinkHandler(WebPageState state) { Match m = RegExUtil.GetMatchRegEx(RegularExpression.SrcExtractor, state.content_); string image; while (m.Success) { m = m.NextMatch(); image = m.Groups[1].ToString(); statusBar.Text = "Image: " + image; Application.DoEvents(); DownloadImage(image); } }
public void ManualProcessorMultipleDelegates( ) { ManualProcessorLinksCounter = 0; uri = "http://www.holidaycoast.net.au/"; WebPageState state = new WebPageState(new Uri(uri)); WebPageProcessor processor = new WebPageProcessor( ); processor.ContentHandler += new WebPageContentDelegate(HandleLinks); processor.ContentHandler += new WebPageContentDelegate(HandleContent); Assertion.Assert("Process Page", processor.Process(state)); Assertion.AssertEquals("OK", state.StatusCode); Assertion.AssertEquals(true, state.ProcessSuccessfull); Assertion.AssertEquals(16, ManualProcessorLinksCounter); Assertion.Assert(ManualProcessorContentFound); }
private void HandleContent(WebPageState state) { ManualProcessorContentFound = state.Content.IndexOf("Coffs") != -1; }
private void HandleContent(WebPageState webPageState) { statusBar.Text = "Processed Uri: " + webPageState.uri_; Application.DoEvents(); }
private void cmdFlowNWPC_Click ( object sender, EventArgs e ) { // 定义载入 google 的页面状态. WebPageState loadGoogle = new WebPageState ( "load google", // 状态的名称. completedStateSetting: new WebPageNextStateSetting ( "load blog", true ), // 在页面完成时, 自动跳转到载入 blog 的状态. startAction: new NavigateAction ( "http://www.google.com.hk" ), // 页面状态的开始动作为载入 http://www.google.com.hk. condition: new UrlCondition ( // 判断页面状态是否完成的地址条件. "google condition", // 条件名称. "http://www.google.com.hk", // 载入的页面以 http://www.google.com.hk 开始时, 认为此地址条件成立. StringCompareMode.StartWith ) ); // 定义载入 blog 的页面状态. WebPageState loadMyBlog = new WebPageState ( "load blog", // 状态的名称. startAction: new NavigateAction ( "http://blog.sina.com.cn/zoyobar" ), // 页面状态的开始动作为载入 http://blog.sina.com.cn/zoyobar. completedAction: new ExecuteJavaScriptAction ( "alert('我是从 google 页面跳转过来的!');" ), // 当页面状态完成后, 执行一条 javascript 脚本. condition: new UrlCondition ( // 判断页面状态是否完成的地址条件. "blog condition", // 条件名称. "http://blog.sina.com.cn/zoyobar", // 载入的页面以 http://blog.sina.com.cn/zoyobar 开始时, 认为此地址条件成立. StringCompareMode.StartWith ) ); // 从当前的 WebBrowser 控件创建 IEBrowser 对象, 并赋予刚才定义的流程. IEBrowser ie = new IEBrowser ( this.webBrowser, new WebPageState[] { loadGoogle, loadMyBlog } ); // 从载入 google 页面的状态开始. ie.IEFlow.JumpToState ( "load google" ); }