This sample program shows how to create a Reflection Web document and get text from a Web page. To do this, we get a Web control object to access the Web page document and then use XPath to identify the Web element (text) on the page, as follows:
IWebElement WebElement = WebDocument.GetElement("HTML/BODY/TABLE/TBODY/TR[1]/TD[1]")
This data is displayed on the console.
The Html markup for the our basic demo page we are connecting to is shown below:
The table.htm file |
Copy Code
|
---|---|
!DOCTYPE html <html> <head> <title>HTML Test Page</title> </head> <body> <table border="1"> <tbody> <tr id="first-table-tr"> <td id="USDOLLAR">U.S. Dollars</td> <td>1</td> <td>1.3240</td> <td>108.25</td> <td>0.8114</td> </tr> <tr> <td>Canadian Dollars</td> <!--Use XPath to get the data on the following line--> <td>0.7553</td> <td>1</td> <td>81.7598</td> <td>0.6128</td> </tr> <tr> ................. |
http://docs.attachmate.com/reflection/prog-demo/table.html.
Get text from a Web page |
Copy Code
|
---|---|
using System; using System.Collections.Generic; using System.Text; using Attachmate.Reflection.Web.Msie; using Attachmate.Reflection.Framework; using Attachmate.Reflection.UserInterface; using System.Windows.Forms; using Application = Attachmate.Reflection.Framework.Application; namespace GetTextFromWebPage { class Program { static void Main(string[] args) { //Start a visible instance of Reflection or get the instance running at the given channel name Application app = MyReflection.CreateApplication("workspace", true); //open a Web Session document set to the "docs.attachmate.com/reflection/prog-demo/table.html" URL IWebControl webControl = (IWebControl)app.CreateControl(Environment.GetEnvironmentVariable("USERPROFILE") + @"\Documents\Micro Focus\Reflection\GetDataFromWeb.urlx"); //Get the Web document and create a View to make the Web document visible IWebDocument webDocument = webControl.Document; IFrame frame = (IFrame)app.GetObject("Frame"); frame.CreateView(webControl); //Wait until the document is ready while(webControl.ReadyState != System.Windows.Forms.WebBrowserReadyState.Complete) { System.Threading.Thread.Sleep(5000); } //Use XPATH to get the WebElement in second row and second column of the table. IWebElement webElement = webDocument.GetElement("HTML/BODY/TABLE/TBODY/TR[1]/TD[1]"); //Get the text and write it to the console string conversionRate = webElement.InnerText; Console.WriteLine("The currency conversion rate from Canadian to U.S. dollars: " + conversionRate); Console.ReadKey(); } } } |