I am currently new to XML and learning about it. (Which isn't too much of a problem.) However, I am having a very rough time with trying to use it with C#, I have looked at the tutorials.
Objective: I'm trying to be able to read my XML file and grab values that I call for.
Issue: It seems like every time I use it and call some stuff, then call something else, it just throws an error. I can't figure it out or understand how or why. I've tried multiple things.
XML Example:
<test> <!--<login> <username>tyler</username> <password>testing</password> </login>--> <register> <account> <email>test@test.com</email> <first>tyler</first> <last>yeary</last> <phone>4562134567</phone> <password>123abc</password> <verify>123abc</verify> <type>Hotel</type> </account> <hotel> <brand>(Independent)</brand> <name>YourCLS</name> <address1>1563 omdfg its here</address1> <address2>wtf?</address2> <city>hello!</city> <state>GB</state> <zip>51321</zip> <location>North</location> <segment>upscale</segment> <fax>1234567890</fax> <identity>check</identity> </hotel> <check> <amount>586.21</amount> <number>12596654</number> </check> </register> </test>
Yes I know Login element is commented out. I've done that on purpose.
Code
//In my constructor:
class Register
{
String RegisterURL = "http://localhost:54288/User/Register";
String HotelInfo = "http://localhost:54288/User/RegisterAssociation";
String Email { get; set; }
String FirstName { get; set; }
String LastName { get; set; }
String Phone { get; set; }
String Pass1 { get; set; }
String Pass2 { get; set; }
String userStats { get; set; }
Boolean testResults = false;
List<String> LogData = new List<String>();
IWebDriver driver;
XmlNodeList XmlRegister;
public Register(IWebDriver webDriver, XmlNodeList node)
{
driver = webDriver;
XmlRegister = node;
try
{
XmlNodeList copyXmlRegister = XmlRegister;
foreach (XmlNode data in copyXmlRegister)
{
Email = data["email"].InnerText;
FirstName = data["first"].InnerText;
LastName = data["last"].InnerText;
Phone = data["phone"].InnerText;
Pass1 = data["password"].InnerText;
Pass2 = data["verify"].InnerText;
userStats = data["type"].InnerText;
}
Then later on (split second) I go to another method within the same class. Note the XmlNodeList is global within the class.
public void RegisterTest1(XmlNodeList allNodes)
{
driver.Navigate().GoToUrl(RegisterURL);
LogData.Add("Restarting Register page.");
this.MainData();
this.Wait(2);
try
{
foreach (XmlNode info in allNodes)
{
SelectElement HotelBrand = new SelectElement(driver.FindElement(By.Name("Hotel.BrandName")));
//This is line 134
HotelBrand.SelectByText(info["brand"].InnerText);
//HotelBrand.SelectByText("(Independent)");
IWebElement HotelName = driver.FindElement(By.Name("Hotel.HotelName"));
HotelName.SendKeys(info["name"].InnerText);
IWebElement Address1 = driver.FindElement(By.Name("Hotel.Address1"));
Address1.SendKeys(info["address1"].InnerText);
IWebElement Address2 = driver.FindElement(By.Name("Hotel.Address2"));
Address2.SendKeys(info["address2"].InnerText);
IWebElement is a different thing. please ignore them.
However, I keep getting an error like this:
Registration Test did not successfully complete. Exception thrown : System.NullReferenceException: Object reference not set to an instance of an object. at SeleniumTest.Register.RegisterTest1(XmlNodeList allNodes) in C:\Users\tylery\Documents\Visual Studio 2010\Projects\SeleniumTest\SeleniumTest\Register.cs:line 134
This post has been edited by Twister1002: 29 May 2012 - 01:32 PM

New Topic/Question
Reply



MultiQuote






|