ExecuteAutomation

POM in Selenium C#

Page Object Model (POM) is best known for modeling the UI objects of page within test codes was discussed a lot more detail as article as well as in video in our blog as shown below In this article we will discuss how to work with Page Object Model in Selenium with C# also we will discuss about some of the minor changes in Selenium with C# and Java

Minor Changes in Selenium C#

JAVA C#
POM of Java works even without specifying the @FindBy attribute, since by default Java POM picks the WebElements by their ID or Name specified as the name of the property in POM class In C# POM the option is not available and it throws NOSUCHELEMENTEXCEPTION
POM in Java first identifies the element with ID and if it fails, then it try to identify the control using its Name C# it identifies element only with ID but not with Name
  Here is the complete video of the above discussion Here is the snippet of code from the above video EAPageObject
class EAPageObject
    {
        public EAPageObject()
        {
            PageFactory.InitElements(PropertiesCollection.driver, this);
        }


        [FindsBy(How = How.Id, Using = "TitleId")]
        public IWebElement ddlTitleID { get; set; }

        [FindsBy(How = How.Name, Using = "Initial")]
        public IWebElement txtInitial { get; set; }


        [FindsBy(How = How.Name, Using = "FirstName")]
        public IWebElement txtFirstName { get; set; }

        [FindsBy(How = How.Name, Using = "Save")]
        public IWebElement btnSave { get; set; }
}
Thanks for watching the video and reading the post!! Please leave your comments and let me know if there is anything need to be improved in the post!!! Thanks, Karthik KK