Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

C# return IWebElement (selenium) causes NullReferenceException

I am new to C# and working with methods. My attempt was to create a seperate method for logging the user in. The Code looks something like

public IWebDriver bot;


void DataGrabber(object sender, RoutedEventArgs e)
{
    string user = "...";
    string pass = "...";

    UserLogin(user, pass);

    bot.Navigate().GoToUrl("https://example.com/data"); //NullReferenceException gets raised here
}

static IWebDriver UserLogin(string user, string pass)
{
    IWebDriver bot = new ChromeDriver();
    
    bot.Navigate().GoToUrl("https://example.com/loginform");
    // Login Stuff....
    return bot;

}

how do I properly define bot, so that the DataGrabber() method knows what it is?

I removed the public IWebDriver bot; definition in the beginning but that just results in the bot not being recognized as a variable at all ("The name "bot" is not available in the current context").

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

I also attempted to move the UserLogin() method before the DataGrabber() method, but this did not help (bot still not recognized within DataGrabber() function).

I am certain that this is an easy thing to answer, however searching online did not return anything useful

>Solution :

You return (the local variable) bot from UserLogin, but you never assign it to the class-level field. In other words: the bot in UserLogin is different from the bot in DataGrabber.

One solution:

in DataGrabber, change

UserLogin(user, pass);

to

bot = UserLogin(user, pass);

For further details about that exception, see What is a NullReferenceException, and how do I fix it?

Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading