Example #1
0
        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");
        }
Example #2
0
 private string ProcessStatus(WebPageState state)
 {
     if (state.ProcessInstructions.IndexOf("Handle Links") == -1)
     {
         return("Missed ");
     }
     return(state.ProcessSuccessfull ? "Success" : "Failed ");
 }
Example #3
0
        private void HandleLinks(WebPageState state)
        {
            Match m = RegExUtil.GetMatchRegEx(RegularExpression.UrlExtractor, state.Content);

            while (m.Success)
            {
                ManualProcessorLinksCounter++;
                m = m.NextMatch( );
            }
        }
Example #4
0
        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);
            }
        }
Example #6
0
        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);
        }
Example #7
0
 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" );
		}