public void Comparedatarow(IWebDriver driver, Datarow datarow, DataTable dt)
 {
     _gereneralLibrary = new GeneralLibrary();
     var table =
         _gereneralLibrary.GetExcelData(@"C:\\Input Data\ModrophenialiveProducts.xlsx", "Products").Tables
             [0];
     for (var i = 1; i < (table.Rows.Count - 1); i++)
     {
         var actual = table.Rows[i]["Product Price"].ToString();
         var str2 = table.Rows[i]["Product Title"].ToString();
         var str3 = table.Rows[i]["Product Detail"].ToString();
         var expected = table.Rows[i]["Item Number"].ToString();
         var str5 = table.Rows[i]["Variants"].ToString();
         var str6 = dt.Rows[i]["Price"].ToString();
         var str7 = dt.Rows[i]["Title"].ToString();
         var str8 = dt.Rows[i]["Detail"].ToString();
         var str9 = dt.Rows[i]["Item Number"].ToString();
         var str10 = dt.Rows[i]["Variants"].ToString();
         datarow.Newrow(str7 + " Price", str6, actual, str6 == actual ? "PASS" : "FAIL", driver);
         datarow.Newrow(str7 + " Title", str7, str2, str7.ToUpper() == str2 ? "PASS" : "FAIL", driver);
         datarow.Newrow(str7 + " Detail", str8, str3, str8 == str3 ? "PASS" : "FAIL", driver);
         datarow.Newrow(str7 + " ItemNumber", expected, str9, expected == str9 ? "PASS" : "FAIL", driver);
         datarow.Newrow(str7 + " Variants", str5, str10,
             str5.TrimStart(new char[0]) == str10.TrimStart(new char[0]) ? "PASS" : "FAIL", driver);
     }
 }
        public void HompageLinks(Datarow datarow, IWebDriver driver)
        {
            var excelData = new GeneralLibrary().GetExcelData(@"C:\\Input Data\Object Repository.xls",
                                                                  "Modrophenia");
            driver.FindElement(By.CssSelector("img")).Click();

            decimal count = driver.FindElements(By.XPath("//html/body/div/div[2]/div/ul/li")).Count;
            var num2 = 0;
            for (var i = 1; i <= count; i++)
            {
                var table = excelData.Tables[0];
                var actual = table.Rows[num2]["HomePageLinks"].ToString();
                driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(10.0));
                driver.FindElement(By.XPath("//html/body/div/div[2]/div/ul/li[" + i + "]/div/div/a/h2"));
                driver.FindElement(By.XPath("//html/body/div/div[2]/div/ul/li[" + i + "]/div/div/a/h2")).Click();

                var expected = driver.Title;
                datarow.Newrow("Title", expected, actual, expected == actual ? "PASS" : "FAIL", driver);
                num2++;
                driver.Navigate().Back();
            }
        }
        public void MoPay(IWebDriver driver)
        {
            _generalLibrary = new GeneralLibrary();
            var excelData = _generalLibrary.GetExcelData(@"C:\\Input Data\CardDetails.xls", "CardDetails");
            var set2 = _generalLibrary.GetExcelData(@"C:\\Input Data\CardDetails.xls", "Account");
            _datarow.Col();
            var table = excelData.Tables[0];
            var table2 = set2.Tables[0];
            var count = table2.Rows.Count;
            try
            {
                for (var i = 0; i < count; i++)
                {
                    var locator = table2.Rows[i]["Account"].ToString();
                    var str2 = table2.Rows[i]["Type"].ToString();
                    var str3 = table2.Rows[i]["E-mail"].ToString();
                    var str4 = table2.Rows[i]["FormData"].ToString();
                    var str5 = table2.Rows[i]["FormValue"].ToString();
                    var str6 = table2.Rows[i]["CookieData"].ToString();
                    var str7 = table2.Rows[i]["CookieValue"].ToString();
                    driver.Navigate().GoToUrl("http://devpaytest.mobankdev.com/");
                    driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(15.0));
                    driver.FindElement(By.XPath("//div[@id='ReferenceControl']/div/input"));
                    driver.FindElement(By.XPath(locator)).Click();
                    driver.FindElement(By.Id(locator)).Click();
                    driver.FindElement(By.Id(str2)).Click();
                    driver.FindElement(By.XPath("//div[@id='ReferenceControl']/div/input"))
                        .GetAttribute("Reference");
                    driver.FindElement(By.XPath("//div[@id='TotalAmountControl']/div/input")).GetAttribute("Amt");
                    driver.FindElement(By.XPath("//div[@id='CurrencyCodeControl']/div/select")).GetAttribute("Cur");
                    var input = table.Rows[0]["FirstName"].ToString();
                    var str12 = table.Rows[0]["LastName"].ToString();
                    Assert.AreEqual("The MoShop Sale",
                                    driver.FindElement(By.XPath("//div[@id='DescriptionControl']/div/textarea")).Text);
                    var screenshot = new Screenshot();
                    driver.FindElement(By.XPath("//div[@id='FirstNameControl']/div/input")).Clear();
                    driver.FindElement(By.XPath("//div[@id='FirstNameControl']/div/input")).SendKeys(input);
                    driver.FindElement(By.XPath("//div[@id='LastNameControl']/div/input")).Clear();
                    driver.FindElement(By.XPath("//div[@id='LastNameControl']/div/input")).SendKeys(str12);
                    driver.FindElement(By.XPath("//div[@id='EmailControl']/div/input")).Clear();
                    driver.FindElement(By.XPath("//div[@id='EmailControl']/div/input")).SendKeys(str3);
                    driver.FindElement(By.CssSelector("button")).Click();
                    driver.FindElement(By.Name("FormData[1].Key")).SendKeys(str4);
                    driver.FindElement(By.Name("FormData[1].Value")).SendKeys(str5);
                    driver.FindElement(By.CssSelector("#CookieData > button")).Click();
                    driver.FindElement(By.Name("CookieData[1].Key")).SendKeys(str6);
                    driver.FindElement(By.Name("CookieData[1].Value")).SendKeys(str7);
                    driver.FindElement(By.CssSelector("input[type=\"submit\"]")).Click();
                    try
                    {
                    }
                    catch (Exception exception)
                    {
                        Console.Write(exception);
                    }
                    var num3 = table.Rows.Count;
                    for (var j = 0; j < num3; j++)
                    {
                        var str13 = table.Rows[j]["Card Number"].ToString();
                        var str14 = table.Rows[j]["Security Code"].ToString();
                        var expected = table.Rows[j]["CardType"].ToString();
                        var str16 = table.Rows[j]["Name on Card"].ToString();
                        var optionLocator = table.Rows[j]["ExpiryMonth"].ToString();
                        var str18 = table.Rows[j]["Expiry Year"].ToString();
                        var str19 = table.Rows[j]["Phone Number"].ToString();
                        var str20 = table.Rows[j]["Address"].ToString();
                        var str21 = table.Rows[j]["City"].ToString();
                        var str22 = table.Rows[j]["Post Code"].ToString();
                        var str23 = table.Rows[j]["County"].ToString();
                        var str24 = table.Rows[j]["Country"].ToString();
                        driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(60.0));
                        driver.FindElement(By.XPath("//div[@id='Card.NameControl']/input"));
                        Assert.AreEqual("Secure Payment Page", driver.Title);
                        driver.FindElement(By.XPath("//*[@id='Card_Number']")).SendKeys(str13);
                        driver.FindElement(By.Id("//*[@id='Card_SecurityCode']")).SendKeys(str14);
                        new SelectElement(driver.FindElement(By.Id("Card_Type"))).SelectByText("Visa Debit");
                        new SelectElement(driver.FindElement(By.Id("Card_ExpiryDate_Month"))).SelectByText(optionLocator);
                        new SelectElement(driver.FindElement(By.Id("Card_ExpiryDate_Year"))).SelectByText(str18);
                        driver.FindElement(By.XPath("//div[@id='Card.NameControl']/input")).SendKeys(str16);
                        switch (str2)
                        {
                            case "id=actionPay":
                                driver.FindElement(By.Id("BillingContact_Phone_Number")).SendKeys(str19);
                                driver.FindElement(By.Id("BillingContact_Address_Line1")).SendKeys(str20);
                                driver.FindElement(By.XPath("//div[@id='BillingContact.Address.Line2Control']/input"))
                                      .SendKeys("s");
                                driver.FindElement(By.Id("BillingContact_Address_Postcode")).SendKeys(str22);
                                driver.FindElement(By.XPath("//div[@id='BillingContact.Address.TownControl']/input"))
                                      .SendKeys(str21);
                                driver.FindElement(By.Id("BillingContact_Address_County")).SendKeys(str23);
                                new SelectElement(
                                    driver.FindElement(
                                        By.XPath("//div[@id='BillingContact.Address.CountryControl']/div/div/select")))
                                    .SelectByText(str24);

                                break;

                            case "id=actionToken":
                                driver.FindElement(By.Id("Contact_Phone_Number")).SendKeys(str19);
                                driver.FindElement(By.Id("Contact_Address_Line1")).SendKeys(str20);
                                driver.FindElement(By.XPath("//div[@id='Contact.Address.Line2Control']/input"))
                                      .SendKeys("s");
                                driver.FindElement(By.Id("Contact_Address_Postcode")).SendKeys(str22);
                                driver.FindElement(By.XPath("//div[@id='Contact.Address.TownControl']/input"))
                                      .SendKeys(str21);
                                driver.FindElement(By.Id("Contact_Address_County")).SendKeys(str23);
                                new SelectElement(
                                    driver.FindElement(
                                        By.XPath("//div[@id='Contact.Address.CountryControl']/div/div/select")))
                                    .SelectByText(str24);
                                break;
                        }
                        driver.FindElement(By.Name("PostAction[Complete]")).Click();

                        Thread.Sleep(0x1388);
                        if (Regex.IsMatch(str13, "^[0-9'']"))
                        {
                            _datarow.Newrow("Card Number", str13, str13, "PASS", driver);
                        }
                        else if (driver.PageSource.Contains("Number required") ||
                                 driver.PageSource.Contains("Number invalid"))
                        {
                            _datarow.Newrow("Card Number", str13, "Number Invalid", "PASS", driver);
                        }
                        else
                        {
                            _datarow.Newrow("Card Number", str13, "No Error Message Displayed", "FAIL", driver);
                            screenshot.Screenshotfailed(driver);
                        }
                        _datarow.Newrow("Card Type", expected, expected, "PASS", driver);
                        var regex = new Regex("^[0-9]{3}$");
                        if (regex.IsMatch(str14))
                        {
                            _datarow.Newrow("Security Code", str14, "Valid 3 Digits", "PASS", driver);
                        }
                        else if (driver.PageSource.Contains("Security code required") ||
                                 driver.PageSource.Contains("Security code invalid"))
                        {
                            _datarow.Newrow("Security Code", str14, "Security code required", "PASS", driver
                                );
                        }
                        else
                        {
                            _datarow.Newrow("Security Code", str14, "No Error Message Displayed", "FAIL", driver
                                );
                            screenshot.Screenshotfailed(driver);
                        }
                        if (Regex.IsMatch(str16, "^[a-zA-Z'']"))
                        {
                            _datarow.Newrow("Name on Card", str16, str16, "PASS", driver);
                        }
                        else if (driver.PageSource.Contains("Name required"))
                        {
                            _datarow.Newrow("Name on Card", str16, "Name Required", "PASS", driver);
                        }
                        else
                        {
                            _datarow.Newrow("Name on Card", str16, "No Error Message Displayed", "PASS", driver);
                            screenshot.Screenshotfailed(driver);
                        }
                        if (Regex.IsMatch(input, "^[a-zA-Z'']"))
                        {
                            _datarow.Newrow("First Name", input, input, "PASS", driver);
                        }
                        else if (driver.PageSource.Contains("The First Name field is required."))
                        {
                            _datarow.Newrow("First Name", input, "The First Name field is required.", "PASS", driver
                                );
                        }
                        else
                        {
                            _datarow.Newrow("First Name", input, "No Error Message Displayed", "FAIL", driver);
                            screenshot.Screenshotfailed(driver);
                        }
                        if (Regex.IsMatch(str12, "^[a-zA-Z'']"))
                        {
                            _datarow.Newrow("Last Name", str12, str12, "PASS", driver);
                        }
                        else if (driver.PageSource.Contains("The Last Name field is required."))
                        {
                            _datarow.Newrow("Last Name", str12, "The Last Name field is required.", "PASS", driver
                                );
                        }
                        else
                        {
                            _datarow.Newrow("Last Name", str12, "No Error message Displayed", "FAIL", driver);
                            screenshot.Screenshotfailed(driver);
                        }
                        if (Regex.IsMatch(str20, "^[a-zA-Z0-9'']"))
                        {
                            _datarow.Newrow("Address", str20, str20, "PASS", driver);
                        }
                        else if (driver.PageSource.Contains("The Address field is required"))
                        {
                            _datarow.Newrow("Address", str20, "The Address field is required", "PASS", driver);
                        }
                        else
                        {
                            _datarow.Newrow("Address", str20, "No Error message Displayed", "FAIL", driver);
                            screenshot.Screenshotfailed(driver);
                        }
                        if (Regex.IsMatch(str22, "^[a-zA-Z0-9'']"))
                        {
                            _datarow.Newrow("Post Code", str22, str22, "PASS", driver);
                        }
                        else if (driver.PageSource.Contains("The Postcode field is required"))
                        {
                            _datarow.Newrow("Post Code", str22, "The Postcode field is required.", "PASS", driver
                                );
                        }
                        else
                        {
                            _datarow.Newrow("Post Code", str22, "No Error Message Displayed", "FAIL", driver);
                            screenshot.Screenshotfailed(driver);
                        }
                        if (Regex.IsMatch(str24, "^[a-zA-Z'']"))
                        {
                            _datarow.Newrow("Country", str24, str24, "PASS", driver);
                        }
                        else if (driver.PageSource.Contains("The Country field is required."))
                        {
                            _datarow.Newrow("Country", str24, "The Country field is required.", "PASS", driver);
                        }
                        else
                        {
                            _datarow.Newrow("Country", str24, "No Error Message", "FAIL", driver);
                            screenshot.Screenshotfailed(driver);
                        }
                        var title = driver.Title;
                        if (title == "Secure Payment Page") continue;
                        if (title == "Redirect to External")
                        {
                            Dsecure(driver);
                            break;
                        }
                        if (driver.PageSource.Contains("Checkout Accepted"))
                        {
                            Normaltransaction(driver);
                            break;
                        }
                        if (!driver.PageSource.Contains("Checkout Declined") &&
                            !driver.PageSource.Contains("Checkout Error")) continue;
                        _datarow.Newrow("Checkout", "Checkout Declined", "Checkout Declined", "PASS", driver
                            );
                        driver.FindElement(By.LinkText("start again")).Click();
                        break;
                    }
                }
            }
            catch (Exception exception2)
            {
                Console.Write(exception2);
                var actual = exception2.ToString();
                var screenshot2 = new Screenshot();
                _datarow.Newrow("Checkout", "Server Error", actual, "FAIL", driver);
                screenshot2.Screenshotfailed(driver);
            }
            finally
            {
                new Screenshot().Screenshotnotifications(driver);
                _datarow.Excelsave("MoPayReport", driver, "*****@*****.**");
                driver.Quit();
            }
        }
        public void Paymenttypes(IWebDriver driver, Datarow datarow)
        {
            _genaralLibrary = new GeneralLibrary();
            var table =
                _genaralLibrary.GetExcelData(@"C:\\Input Data\CardDetails.xls", "AccountCreation").Tables[0];
            var count = table.Rows.Count;
            for (var i = 0; i < count; i++)
            {
                string attribute;
                string str6;
                string str8;
                string str9;
                string str10;
                string str11;
                decimal xpathCount;
                int num4;
                var str = table.Rows[i]["Provider"].ToString();
                var str2 = table.Rows[0]["ProviderIdentifier"].ToString();
                var str3 = table.Rows[0]["ProviderUserName"].ToString();
                switch (str)
                {
                    case "WorldVision":
                        new SelectElement(driver.FindElement(By.Id("PayProvider_Id"))).SelectByText("WorldVision");
                        break;

                    case "Secure Trading (offline)":
                        {
                            new SelectElement(driver.FindElement(By.Id("PayProvider_Id"))).SelectByText(
                                "Secure Trading (offline)");
                            Thread.Sleep(0xbb8);
                            driver.FindElement(By.Id("Credentials_TypeModel_SiteReference")).Clear();
                            driver.FindElement(By.Id("Credentials_TypeModel_SiteReference"))
                                  .SendKeys("test_mobankgroup45556");
                            driver.FindElement(By.Id("Credentials_TypeModel_UserName")).Clear();
                            driver.FindElement(By.Id("Credentials_TypeModel_UserName"))
                                  .SendKeys("*****@*****.**");
                            driver.FindElement(By.Id("Credentials_TypeModel_Password")).Clear();
                            driver.FindElement(By.Id("Credentials_TypeModel_Password")).SendKeys("wj3JWWFX");
                            driver.FindElement(By.CssSelector("input.button")).Click();

                            attribute =
                                driver.FindElement(By.Id("Credentials_TypeModel_SiteReference")).GetAttribute("value");
                            str6 = driver.FindElement(By.Id("Credentials_TypeModel_UserName")).GetAttribute("value");
                            var expected =
                                driver.FindElement(By.Id("Credentials_TypeModel_Password")).GetAttribute("value");
                            if (driver.PageSource.Contains("An unexpected error has occured, please try again"))
                            {
                                datarow.Newrow("Capturing Error Message",
                                               "An unexpected error has occured, please try again",
                                               "An unexpected error has occured, please try again", "PASS", driver
                                    );
                            }
                            str8 = GetValue(driver, By.Id("CardTypes_0____selector"));
                            str9 = GetValue(driver, By.Id("CardTypes_1____selector"));
                            if (str8 == "true")
                            {
                                driver.FindElement(By.Id("CardTypes_0____selector")).Click();
                            }
                            if (str9 == "true")
                            {
                                driver.FindElement(By.Id("CardTypes_1____selector")).Click();
                            }

                            str10 = GetValue(driver, By.Id("CardTypes_0____selector"));
                            str11 = GetValue(driver, By.Id("CardTypes_1____selector"));
                            if ((str10 == "false") && (str11 == "false"))
                            {
                                driver.FindElement(By.CssSelector("input.button")).Click();

                                if (driver.PageSource.Contains("An unexpected error has occured, please try again"))
                                {
                                    datarow.Newrow("Capturing Error Message",
                                                   "An unexpected error has occured, please try again",
                                                   "An unexpected error has occured, please try again", "FAIL", driver
                                        );
                                }
                            }
                            driver.FindElement(By.Id("CardTypes_0____selector")).Click();
                            driver.FindElement(By.CssSelector("input.button")).Click();

                            if (attribute == "test_mobankgroup45556")
                            {
                                datarow.Newrow("PayProviderUserName", "mobank", "mobank", "PASS", driver);
                            }
                            else
                            {
                                datarow.Newrow("PayProviderUserName", "mobank", "mobank", "FAIL", driver);
                                _screenshot.Screenshotfailed(driver);
                            }
                            if (str6 == "*****@*****.**")
                            {
                                datarow.Newrow("PayProviderIdentifier", "mobank", "mobank", "PASS", driver);
                            }
                            else
                            {
                                datarow.Newrow("PayProviderIdentifier", "mobank", "mobank", "FAIL", driver);
                                _screenshot.Screenshotfailed(driver);
                            }
                            if (expected == "wj3JWWFX")
                            {
                                datarow.Newrow("Password", expected, "wj3JWWFX", "PASS", driver);
                            }
                            else
                            {
                                datarow.Newrow("Password", expected, "wj3JWWFX", "FAIL", driver);
                                _screenshot.Screenshotfailed(driver);
                            }
                            break;
                        }
                    case "Sage Pay (non-live)":
                        new SelectElement(driver.FindElement(By.Id("PayProvider_Id"))).SelectByText(
                            "Sage Pay (non-live)");
                        Thread.Sleep(0xbb8);
                        driver.FindElement(By.CssSelector("input.button")).Click();

                        if (driver.PageSource.Contains("An unexpected error has occured, please try again"))
                        {
                            datarow.Newrow("Capturing Error Message",
                                           "An unexpected error has occured, please try again",
                                           "An unexpected error has occured, please try again", "PASS", driver);
                        }
                        str8 = GetValue(driver, By.Id("CardTypes_0____selector"));
                        str9 = GetValue(driver, By.Id("CardTypes_1____selector"));
                        if (str8 == "true")
                        {
                            driver.FindElement(By.Id("CardTypes_0____selector")).Click();
                        }
                        if (str9 == "true")
                        {
                            driver.FindElement(By.Id("CardTypes_1____selector")).Click();
                        }
                        str10 = GetValue(driver, By.Id("CardTypes_0____selector"));
                        str11 = GetValue(driver, By.Id("CardTypes_1____selector"));
                        if ((str10 == "false") && (str11 == "false"))
                        {
                            driver.FindElement(By.CssSelector("input.button")).Click();

                            if (driver.PageSource.Contains("An unexpected error has occured, please try again"))
                            {
                                datarow.Newrow("Capturing Error Message",
                                               "An unexpected error has occured, please try again",
                                               "An unexpected error has occured, please try again", "FAIL", driver
                                    );
                            }
                        }
                        driver.FindElement(By.Id("CardTypes_0____selecto")).Click();
                        driver.FindElement(By.CssSelector("input.button")).Click();

                        break;

                    case "RealEx Test (MTC)":
                        new SelectElement(driver.FindElement(By.Id("PayProvider_Id"))).SelectByText("RealEx Test (MTC)");
                        Thread.Sleep(0xbb8);
                        driver.FindElement(By.Id("Credentials_TypeModel_MerchantId")).Clear();
                        driver.FindElement(By.Id("Credentials_TypeModel_MerchantId")).SendKeys("mobank");
                        driver.FindElement(By.Id("Credentials_TypeModel_Password")).Clear();
                        driver.FindElement(By.Id("Credentials_TypeModel_Password")).SendKeys("secret");
                        driver.FindElement(By.CssSelector("input.button")).Click();

                        if (driver.PageSource.Contains("An unexpected error has occured, please try again"))
                        {
                            datarow.Newrow("Capturing Error Message",
                                           "An unexpected error has occured, please try again",
                                           "An unexpected error has occured, please try again", "PASS", driver);
                        }
                        xpathCount = GetXpathCount(driver, "//div[@id='CardTypesControl']/div/div/ul/li");
                        num4 = 0;
                        while (num4 < xpathCount)
                        {
                            if (GetValue(driver, By.Id("CardTypes_" + num4 + "____selector")) == "true")
                            {
                                driver.FindElement(By.Id("CardTypes_" + num4 + "____selector")).Click();
                            }
                            num4++;
                        }
                        if (GetValue(driver, By.Id("CardTypes_0____selector")) == "false")
                        {
                            driver.FindElement(By.CssSelector("input.button")).Click();

                            if (driver.PageSource.Contains("An unexpected error has occured, please try again"))
                            {
                                datarow.Newrow("Capturing Error Message",
                                               "An unexpected error has occured, please try again",
                                               "An unexpected error has occured, please try again", "FAIL", driver
                                    );
                            }
                        }
                        attribute = driver.FindElement(By.Id("Credentials_TypeModel_MerchantId")).GetAttribute("value");
                        str6 = driver.FindElement(By.Id("Credentials_TypeModel_Password")).GetAttribute("value");
                        if (attribute == "mobank")
                        {
                            datarow.Newrow("PayProviderUserName", "mobank", "mobank", "PASS", driver);
                        }
                        else
                        {
                            datarow.Newrow("PayProviderUserName", "mobank", "mobank", "FAIL", driver);
                            _screenshot.Screenshotfailed(driver);
                        }
                        if (str6 == "secret")
                        {
                            datarow.Newrow("PayProviderPassword", str6, "secret", "PASS", driver);
                        }
                        else
                        {
                            datarow.Newrow("PayProviderPassword", str6, "secret", "FAIL", driver);
                            _screenshot.Screenshotfailed(driver);
                        }
                        break;
                }
                driver.FindElement(By.Id("CardTypes_0____selector")).Click();
                driver.FindElement(By.CssSelector("input.button")).Click();

                if (str == "Mobank Test Provider")
                {
                    new SelectElement(driver.FindElement(By.Id("PayProvider_Id"))).SelectByText("PayPal Provider");
                }
                if (str != "WorldPay Business/Corporate (offline)") continue;
                new SelectElement(driver.FindElement(By.Id("PayProvider_Id"))).SelectByText(
                    "WorldPay Business/Corporate (offline)");
                Thread.Sleep(0xbb8);
                if (IsElementPresent(driver, By.Name("Credentials_TypeModel_MerchantCode")))
                {
                    driver.FindElement(By.Id("Credentials_TypeModel_MerchantCode")).Clear();
                    driver.FindElement(By.Id("Credentials_TypeModel_MerchantCode")).SendKeys(str2);
                    driver.FindElement(By.Id("Credentials_TypeModel_XmlUserName")).Clear();
                    driver.FindElement(By.Id("Credentials_TypeModel_XmlUserName")).SendKeys(str3);
                    driver.FindElement(By.Id("Credentials_TypeModel_XmlPassword")).Clear();
                    driver.FindElement(By.Id("Credentials_TypeModel_XmlPassword")).SendKeys(str3);
                    driver.FindElement(By.CssSelector("input.button")).Click();

                    if (driver.PageSource.Contains("An unexpected error has occured, please try again"))
                    {
                        datarow.Newrow("Capturing Error Message",
                            "An unexpected error has occured, please try again",
                            "An unexpected error has occured, please try again", "PASS", driver);
                    }
                    xpathCount = GetXpathCount(driver, "//div[@id='CardTypesControl']/div/div/ul/li");
                    for (num4 = 0; num4 < xpathCount; num4++)
                    {
                        if (GetValue(driver, By.Id("CardTypes_" + num4 + "____selector")) == "true")
                        {
                            driver.FindElement(By.Id("CardTypes_" + num4 + "____selector")).Click();
                        }
                    }
                    if (GetValue(driver, By.Id("CardTypes_0____selector")) == "false" + "")
                    {
                        driver.FindElement(By.CssSelector("input.button")).Click();

                        if (driver.PageSource.Contains("An unexpected error has occured, please try again"))
                        {
                            datarow.Newrow("Capturing Error Message",
                                "An unexpected error has occured, please try again",
                                "An unexpected error has occured, please try again", "FAIL", driver
                                );
                        }
                    }
                    attribute = driver.FindElement(By.Id("Credentials_TypeModel_MerchantCode"))
                        .GetAttribute("value");
                    str6 = driver.FindElement(By.Id("Credentials_TypeModel_XmlUserName")).GetAttribute("value");
                    if (attribute == str3)
                    {
                        datarow.Newrow("PayProviderUserName", "mobank", "mobank", "PASS", driver);
                    }
                    else
                    {
                        datarow.Newrow("PayProviderUserName", "mobank", "mobank", "FAIL", driver);
                        _screenshot.Screenshotfailed(driver);
                    }
                    if (str6 == str2)
                    {
                        datarow.Newrow("PayProviderIdentifier", "mobank", "mobank", "PASS", driver);
                    }
                    else
                    {
                        datarow.Newrow("PayProviderIdentifier", "mobank", "mobank", "FAIL", driver);
                        _screenshot.Screenshotfailed(driver);
                    }
                }
                driver.FindElement(By.Id("CardTypes_0____selector")).Click();
                driver.FindElement(By.CssSelector("input.button")).Click();
            }
        }
        public void Userdata(Datarow datarow, IWebDriver driver)
        {
            try
            {
                var library = new GeneralLibrary();
                new Screenshot();
                var table = library.GetExcelData(@"C:\\Input Data\Billing Details.xls", "Login").Tables[0];
                driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(10.0));
                driver.FindElement(
                    By.XPath("//body[@id='page-checkout-process']/div/div[2]/div/form/fieldset/div[2]/div/button"));
                var count = table.Rows.Count;
                for (var i = 0; i < count; i++)
                {
                    if (table.Rows.Count <= 0) continue;
                    var expected = table.Rows[i]["FirstName"].ToString();
                    var str3 = table.Rows[i]["Last Name"].ToString();
                    var str4 = table.Rows[i]["Country"].ToString();
                    var str5 = table.Rows[i]["Address"].ToString();
                    var str6 = table.Rows[i]["City"].ToString();
                    var str7 = table.Rows[i]["County"].ToString();
                    var str8 = table.Rows[i]["PostCode"].ToString();
                    var str9 = table.Rows[i]["Email"].ToString();
                    var str10 = table.Rows[i]["Telephone Number"].ToString();
                    driver.FindElement(
                        By.XPath("//body[@id='page-checkout-process']/div/div[2]/div/form/section/div/input[2]"))
                        .Clear();
                    driver.FindElement(
                        By.XPath("//body[@id='page-checkout-process']/div/div[2]/div/form/section/div/input[2]"))
                        .SendKeys(expected.TrimStart(new char[0]));
                    driver.FindElement(
                        By.XPath("//body[@id='page-checkout-process']/div/div[2]/div/form/section/div[2]/input[2]"))
                        .Clear();
                    driver.FindElement(
                        By.XPath("//body[@id='page-checkout-process']/div/div[2]/div/form/section/div[2]/input[2]"))
                        .SendKeys(str3);
                    driver.FindElement(
                        By.XPath("//body[@id='page-checkout-process']/div/div[2]/div/form/section/div[3]/input[2]"))
                        .Clear();
                    driver.FindElement(
                        By.XPath("//body[@id='page-checkout-process']/div/div[2]/div/form/section/div[3]/input[2]"))
                        .SendKeys(str8);
                    driver.FindElement(
                        By.XPath("//body[@id='page-checkout-process']/div/div[2]/div/form/section/div[4]/input[2]"))
                        .Clear();
                    driver.FindElement(
                        By.XPath("//body[@id='page-checkout-process']/div/div[2]/div/form/section/div[4]/input[2]"))
                        .SendKeys(str5);
                    driver.FindElement(
                        By.XPath("//body[@id='page-checkout-process']/div/div[2]/div/form/section/div[5]/input[2]"))
                        .Clear();
                    driver.FindElement(
                        By.XPath("//body[@id='page-checkout-process']/div/div[2]/div/form/section/div[5]/input[2]"))
                        .SendKeys(str6);
                    driver.FindElement(
                        By.XPath("//body[@id='page-checkout-process']/div/div[2]/div/form/section/div[6]/input[2]"))
                        .Clear();
                    driver.FindElement(
                        By.XPath("//body[@id='page-checkout-process']/div/div[2]/div/form/section/div[6]/input[2]"))
                        .SendKeys(str7);
                    new SelectElement(driver.FindElement(By.Id("FormData_6__Value"))).SelectByText(str4);
                    driver.FindElement(
                        By.XPath("//body[@id='page-checkout-process']/div/div[2]/div/form/section/div[9]/input[2]"))
                        .Clear();
                    driver.FindElement(
                        By.XPath("//body[@id='page-checkout-process']/div/div[2]/div/form/section/div[9]/input[2]"))
                        .SendKeys(str10);
                    driver.FindElement(By.Id("FormData_9__Value")).Clear();
                    driver.FindElement(By.Id("FormData_9__Value")).SendKeys(str9);
                    var executor = (IJavaScriptExecutor) driver;
                    executor.ExecuteScript("window.scrollBy(0,100)", new object[0]);
                    executor.ExecuteScript("window.scrollBy(0,100)", new object[0]);
                    driver.FindElement(
                        By.XPath(
                            "//body[@id='page-checkout-process']/div/div[2]/div/form/section/div[11]/fieldset/div[2]/div/label/span/span[2]"))
                        .Click();
                    driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(10.0));
                    driver.FindElement(
                        By.XPath(
                            "//body[@id='page-checkout-process']/div/div[2]/div/form/fieldset/div[2]/div/button"));
                    driver.FindElement(
                        By.XPath(
                            "//body[@id='page-checkout-process']/div/div[2]/div/form/fieldset/div[2]/div/button"))
                        .Click();

                    if (driver.Title != "Checkout - Address - QA - The Tickle Company")
                    {
                        break;
                    }
                    var attribute =
                        driver.FindElement(
                            By.XPath("//body[@id='page-checkout-process']/div/div[2]/div/form/section/div/input[2]"))
                            .GetAttribute("value");
                    var input =
                        driver.FindElement(
                            By.XPath(
                                "//body[@id='page-checkout-process']/div/div[2]/div/form/section/div[2]/input[2]"))
                            .GetAttribute("value");
                    var str15 =
                        driver.FindElement(
                            By.XPath(
                                "//body[@id='page-checkout-process']/div/div[2]/div/form/section/div[4]/input[2]"))
                            .GetAttribute("value");
                    var str16 =
                        driver.FindElement(
                            By.XPath(
                                "//body[@id='page-checkout-process']/div/div[2]/div/form/section/div[3]/input[2]"))
                            .GetAttribute("value");
                    var str17 =
                        driver.FindElement(
                            By.XPath(
                                "//body[@id='page-checkout-process']/div/div[2]/div/form/section/div[5]/input[2]"))
                            .GetAttribute("value");
                    driver.FindElement(
                        By.XPath(
                            "//body[@id='page-checkout-process']/div/div[2]/div/form/section/div[6]/input[2]"))
                        .GetAttribute("value");
                    driver.FindElement(
                        By.XPath(
                            "//body[@id='page-checkout-process']/div/div[2]/div/form/section/div[9]/input[2]"))
                        .GetAttribute("value");
                    var selectedValue = driver.FindElement(By.Id("FormData_6__Value")).GetAttribute("Value");
                    var str21 = driver.FindElement(By.Id("FormData_9__Value")).GetAttribute("Value");
                    datarow.Newrow("FirstName",
                        Regex.IsMatch(attribute, "^[a-zA-Z'']") ? expected : "FirstName-Not in Expected Format",
                        attribute, "PASS", driver);
                    datarow.Newrow("Last Name",
                        Regex.IsMatch(input, "^[a-zA-Z'']") ? str3 : "LastName-Not in Expected Format", input,
                        "PASS", driver);
                    datarow.Newrow("Address",
                        Regex.IsMatch(str15, "^[a-zA-Z0-9'']") ? str5 : "Address-Not in Expected Format", str15,
                        "PASS", driver);
                    datarow.Newrow("Post Code",
                        Regex.IsMatch(str16, "^[a-zA-Z0-9'']") ? str8 : "PostCode-Not in Expected Format", str16,
                        "PASS", driver);
                    datarow.Newrow("City/Town",
                        Regex.IsMatch(str17, "^[a-zA-Z'']") ? str6 : "City-Not in Expected Format", str17, "PASS",
                        driver);
                    datarow.Newrow("Country",
                        Regex.IsMatch(selectedValue, "^[a-zA-Z'']") ? str4 : "Country-Not in Expected Format",
                        selectedValue, "PASS", driver);
                    datarow.Newrow("EMAIL", Regex.IsMatch(str21,
                        "^(?(\")(\"[^\"]+?\"@)|(([0-9a-z]((\\.(?!\\.))|[-!#\\$%&'\\*\\+/=\\?\\^`\\{\\}\\|~\\w])*)(?<=[0-9a-z])@))(?(\\[)(\\[(\\d{1,3}\\.){3}\\d{1,3}\\])|(([0-9a-z][-\\w]*[0-9a-z]*\\.)+[a-z0-9]{2,17}))$")
                        ? str9
                        : "Email-Not in Expected Format", str21, "PASS", driver);
                }
                datarow.Newrow("Basket Value", "(1)", "(1)",
                    driver.FindElement(By.Id("BasketInfo")).Text == "(1)" ? "PASS" : "FAIL", driver);
                var executor2 = (IJavaScriptExecutor) driver;
                executor2.ExecuteScript("window.scrollBy(0,100)", new object[0]);
                Thread.Sleep(3000);
                driver.FindElement(By.Id("FormData_2__Value")).Click();
                Thread.Sleep(3000);
                executor2.ExecuteScript("window.scrollBy(0,200)", new object[0]);
                Thread.Sleep(3000);
                driver.FindElement(By.XPath("//html/body/div/div[2]/div/form/fieldset/div[2]/div/button")).Click();

                Thread.Sleep(3000);
                var text = driver.FindElement(By.CssSelector("div.ui-content.ui-body-c > p")).Text;
                if (text == "TestFirstname,TestLastName, 0123456789, Test Address1, TestCity, TestCounty, TestPostcode")
                {
                    datarow.Newrow("Details in Process summary page",
                                   "TestFirstname TestLastName, 0123456789, Test Address1, TestCity, TestCounty, TestPostcode",
                                   text, "PASS", driver);
                }
                else
                {
                    datarow.Newrow("Details in Process summary page",
                                   "TestFirstname,TestLastName, 0123456789, Test Address1, TestCity, TestCounty, TestPostcode",
                                   text, "FAIL", driver);
                }
                executor2.ExecuteScript("window.scrollBy(0,200)", new object[0]);
                Thread.Sleep(3000);
                driver.FindElement(By.XPath("//html/body/div/div[2]/div[2]/div[2]/a/span/span")).Click();
            }
            catch (Exception exception)
            {
                var actual = exception.ToString();
                datarow.Newrow("Exception", "Not Expected", actual, "FAIL", driver);
            }
        }
        public void MoPayTPS(IWebDriver driver, Datarow datarow)
        {
            _generalLibrary = new GeneralLibrary();
            var dss = _generalLibrary.GetExcelData(@"C:\Selenium\Input Data\CardDetails.xls", "CardDetails");

            var personaldata = dss.Tables[0];
            var screenshot1 = new Screenshot();
            try
            {
                var totalamount = driver.FindElement(By.XPath("//div[@id='total-amount']/dl/dd")).Text;
                datarow.Newrow("Currency Validation", "₹", totalamount, totalamount.Contains("₹") ? "PASS" : "FAIL",
                    driver);
            }
            catch (Exception ex)
            {
                var e = ex.ToString();
                datarow.Newrow("Exception", "Exception Not Expected", e, "FAIL", driver);
            }
            var j = 0;
            var n = personaldata.Rows.Count;

            for (var icount = 0; icount < n; icount++)
            {
                try
                {
                    #region Read Excel

                    var FirstName = personaldata.Rows[icount]["FirstName"].ToString();
                    var LastName = personaldata.Rows[icount]["LastName"].ToString();
                    var CardNumber = personaldata.Rows[icount]["Card Number"].ToString();
                    var SecurityCode = personaldata.Rows[icount]["Security Code"].ToString();
                    var CardType = personaldata.Rows[icount]["CardType"].ToString();
                    var NameonCard = personaldata.Rows[icount]["Name on Card"].ToString();
                    var Expirymonth = personaldata.Rows[icount]["ExpiryMonth"].ToString();
                    var Expiryyear = personaldata.Rows[icount]["Expiry Year"].ToString();
                    var Email = personaldata.Rows[icount]["E-mail"].ToString();
                    var PhoneNumber = personaldata.Rows[icount]["Phone Number"].ToString();
                    var Address = personaldata.Rows[icount]["Address"].ToString();
                    var City = personaldata.Rows[icount]["City"].ToString();
                    var PostCode = personaldata.Rows[icount]["Post Code"].ToString();
                    var County = personaldata.Rows[icount]["County"].ToString();
                    var Country = personaldata.Rows[icount]["Country"].ToString();

                    #endregion

                    Selectanoption(driver, By.Id("Card_Type"), CardType);
                    // new SelectElement(driver.FindElement(By.Id("Card_Type"))).SelectByText(CardType);
                    driver.FindElement(By.Id("Card_Number")).Clear();
                    driver.FindElement(By.Id("Card_Number")).SendKeys(CardNumber);
                    driver.FindElement(By.Id("Card_SecurityCode")).Clear();
                    driver.FindElement(By.Id("Card_SecurityCode")).SendKeys(SecurityCode);
                    driver.FindElement(By.Id("Card_Name")).Clear();
                    driver.FindElement(By.Id("Card_Name")).SendKeys(NameonCard);
                    Selectanoption(driver, By.Id("Card_ExpiryDate_Month"), Expirymonth);
                    // new SelectElement(driver.FindElement(By.Id("Card_ExpiryDate_Month"))).SelectByText(Expirymonth);
                    Selectanoption(driver, By.Id("Card_ExpiryDate_Year"), Expiryyear);
                    new SelectElement(driver.FindElement(By.Id("Card_ExpiryDate_Year"))).SelectByText(Expiryyear);

                    if (j < 1)
                    {
                        driver.FindElement(By.Id("change-address")).Click();

                        j++;
                    }
                    driver.FindElement(By.Id("BillingContact_FirstName")).Clear();
                    driver.FindElement(By.Id("BillingContact_FirstName")).SendKeys(FirstName);
                    driver.FindElement(By.Id("BillingContact_LastName")).Clear();
                    driver.FindElement(By.Id("BillingContact_LastName")).SendKeys(LastName);
                    driver.FindElement(By.Id("BillingContact_Email")).Clear();
                    driver.FindElement(By.Id("BillingContact_Email")).SendKeys(Email);
                    driver.FindElement(By.Id("BillingContact_Phone_Number")).Clear();
                    driver.FindElement(By.Id("BillingContact_Phone_Number")).SendKeys(PhoneNumber);
                    driver.FindElement(By.Id("BillingContact_Address_Line1")).Clear();
                    driver.FindElement(By.Id("BillingContact_Address_Line1")).SendKeys(Address);
                    driver.FindElement(By.Id("BillingContact_Address_Line2")).Clear();
                    driver.FindElement(By.Id("BillingContact_Address_Line2")).SendKeys("Address2");
                    driver.FindElement(By.Id("BillingContact_Address_Postcode")).Clear();
                    driver.FindElement(By.Id("BillingContact_Address_Postcode")).SendKeys(PostCode);
                    driver.FindElement(By.Id("BillingContact_Address_Town")).Clear();
                    driver.FindElement(By.Id("BillingContact_Address_Town")).SendKeys(City);
                    driver.FindElement(By.Id("BillingContact_Address_County")).Clear();
                    driver.FindElement(By.Id("BillingContact_Address_County")).SendKeys(County);
                    if (Country.Length == 0)
                    {
                        var con = driver.FindElement(By.Id("BillingContact_Address_Country"));
                        IList<IWebElement> contry = con.FindElements(By.TagName("option"));

                        foreach (var cou in contry)
                        {
                            new SelectElement(driver.FindElement(By.Id("BillingContact_Address_Country"))).SelectByText(
                                cou.Text);
                            if (cou.Text == "")
                            {
                                break;
                            }
                        }
                    }

                    if (Country.Length > 0)

                    {
                        //IWebElement con = driver.FindElement(By.Id("BillingContact_Address_Country"));
                        //IList<IWebElement> countries = con.FindElements(By.TagName("option"));

                        //foreach (IWebElement country in countries)
                        //{
                        new SelectElement(driver.FindElement(By.Id("BillingContact_Address_Country"))).SelectByText(
                            "United Kingdom");
                        //}
                    }
                    driver.FindElement(By.Name("PostAction[Complete]")).Click();

                    Thread.Sleep(3000);

                    #region Validation

                    if (Regex.IsMatch(CardNumber, "^[0-9'']"))
                    {
                        datarow.Newrow("Card Number", CardNumber, CardNumber, "PASS", driver);
                    }
                    else if (driver.PageSource.Contains("Number required") ||
                             driver.PageSource.Contains("Number invalid"))
                    {
                        datarow.Newrow("Card Number", CardNumber, "Number Invalid", "PASS", driver);
                    }
                    else
                    {
                        datarow.Newrow("Card Number", CardNumber, "No Error Message Displayed", "FAIL", driver);
                        screenshot1.Screenshotfailed(driver);
                    }

                    if (CardType.Length == 0)
                    {
                        if (driver.PageSource.Contains("Type required"))
                        {
                            datarow.Newrow("Card Type", CardType, "Type Required", "PASS", driver);
                        }
                        else
                        {
                            datarow.Newrow("Card Type", CardType, CardType, "FAIL", driver);

                            screenshot1.Screenshotfailed(driver);
                        }
                    }

                    else
                    {
                        datarow.Newrow("Card Type", "Visa Debit", "Visa Debit", "PASS", driver);
                    }

                    var reg = new Regex("^[0-9]{3}$");
                    if (reg.IsMatch(SecurityCode))
                    {
                        datarow.Newrow("Security Code", SecurityCode, "Valid 3 Digits", "PASS", driver);
                    }
                    else if (driver.PageSource.Contains("Security code required") ||
                             driver.PageSource.Contains("Security code invalid"))
                    {
                        datarow.Newrow("Security Code", SecurityCode, "Security code required", "PASS", driver
                            );
                    }
                    else
                    {
                        datarow.Newrow("Security Code", SecurityCode, "No Error Message Displayed", "FAIL", driver
                            );

                        screenshot1.Screenshotfailed(driver);
                    }

                    if (Regex.IsMatch(NameonCard, "^[a-zA-Z'']"))
                    {
                        datarow.Newrow("Name on Card", NameonCard, NameonCard, "PASS", driver);
                    }
                    else if (driver.PageSource.Contains("Name required"))
                    {
                        datarow.Newrow("Name on Card", NameonCard, "Name Required", "PASS", driver);
                    }
                    else
                    {
                        datarow.Newrow("Name on Card", NameonCard, "No Error Message Displayed", "PASS", driver
                            );

                        screenshot1.Screenshotfailed(driver);
                    }
                    if (Regex.IsMatch(FirstName, "^[a-zA-Z'']"))
                    {
                        datarow.Newrow("First Name", FirstName, FirstName, "PASS", driver);
                    }

                    else if (driver.PageSource.Contains("The First Name field is required."))
                    {
                        datarow.Newrow("First Name", FirstName, "The First Name field is required.", "PASS", driver
                            );
                    }
                    else
                    {
                        datarow.Newrow("First Name", FirstName, "No Error Message Displayed", "FAIL", driver);

                        screenshot1.Screenshotfailed(driver);
                    }

                    if (Regex.IsMatch(LastName, "^[a-zA-Z'']"))
                    {
                        datarow.Newrow("Last Name", LastName, LastName, "PASS", driver);
                    }
                    else if (driver.PageSource.Contains("The Last Name field is required."))
                    {
                        datarow.Newrow("Last Name", LastName, "The Last Name field is required.", "PASS", driver
                            );
                    }
                    else
                    {
                        datarow.Newrow("Last Name", LastName, "No Error message Displayed", "FAIL", driver);

                        screenshot1.Screenshotfailed(driver);
                    }

                    if (Regex.IsMatch(Address, "^[a-zA-Z0-9'']"))
                    {
                        datarow.Newrow("Address", Address, Address, "PASS", driver);
                    }
                    else if (driver.PageSource.Contains("The Address field is required"))
                    {
                        datarow.Newrow("Address", Address, "The Address field is required", "PASS", driver);
                    }
                    else
                    {
                        datarow.Newrow("Address", Address, "No Error message Displayed", "FAIL", driver);

                        screenshot1.Screenshotfailed(driver);
                    }

                    if (Regex.IsMatch(PostCode, "^[a-zA-Z0-9'']"))
                    {
                        datarow.Newrow("Post Code", PostCode, PostCode, "PASS", driver);
                    }
                    else if (driver.PageSource.Contains("The Postcode field is required"))
                    {
                        datarow.Newrow("Post Code", PostCode, "The Postcode field is required.", "PASS", driver
                            );
                    }
                    else
                    {
                        datarow.Newrow("Post Code", PostCode, "No Error Message Displayed", "FAIL", driver);

                        screenshot1.Screenshotfailed(driver);
                    }

                    if (Regex.IsMatch(Country, "^[a-zA-Z'']"))
                    {
                        datarow.Newrow("Country", Country, Country, "PASS", driver);
                    }
                    else if (driver.PageSource.Contains("The Country field is required."))
                    {
                        datarow.Newrow("Country", Country, "The Country field is required.", "PASS", driver);
                    }
                    else
                    {
                        datarow.Newrow("Country", Country, "No Error Message", "FAIL", driver);
                        screenshot1.Screenshotfailed(driver);
                    }

                    #endregion

                    var title = driver.Title;
                    if (title == "Secure Payment Page")
                    {
                    }

                    var url = driver.Url;
                    var title1 = driver.Title;
                    if (url.Contains("State=Accepted") || title1.Contains("Payment Accepted"))
                    {
                        datarow.Newrow("Transaction", url, "State=Accepted", "PASS", driver);
                        break;
                    }

                    if (url.Contains("State=NotAccepted"))
                    {
                        datarow.Newrow("Transaction", url, "Transaction Declined", "FAIL", driver);
                        break;
                    }

                    if (!driver.PageSource.Contains("Checkout Declined") && !driver.PageSource.Contains("Error") &&
                        !driver.PageSource.Contains("Not Found")) continue;
                    datarow.Newrow("Checkout", "Checkout Declined", "Checkout Declined", "PASS", driver);
                    break;
                }

                catch (Exception e)
                {
                    Console.Write(e);
                    var ex = e.ToString();
                    var scree = new Screenshot();
                    datarow.Newrow("Exception", "Exceptio not Expected", ex, "FAIL", driver);
                    scree.Screenshotfailed(driver);
                }
            }
        }
        public void MoPay(IWebDriver driver, Datarow datarow)
        {
            _generalLibrary = new GeneralLibrary();
            var table =
                _generalLibrary.GetExcelData(@"C:\\Input Data\CardDetails.xls", "CardDetails").Tables[0];
            var screenshot = new Screenshot();
            try
            {
                var actual = driver.FindElement(By.XPath("//div[@id='total-amount']/dl/dd")).Text;
                datarow.Newrow("Currency Validation", "\x00a3", actual, actual.Contains("\x00a3") ? "PASS" : "FAIL",
                    driver);
            }
            catch (Exception exception)
            {
                var str2 = exception.ToString();
                datarow.Newrow("Exception", "Exception Not Expected", str2, "FAIL", driver);
            }
            var num = 0;
            var count = table.Rows.Count;
            for (var i = 0; i < count; i++)
            {
                try
                {
                    var input = table.Rows[i]["FirstName"].ToString();
                    var str4 = table.Rows[i]["LastName"].ToString();
                    var str5 = table.Rows[i]["Card Number"].ToString();
                    var str6 = table.Rows[i]["Security Code"].ToString();
                    var str8 = table.Rows[i]["Name on Card"].ToString();
                    var text = table.Rows[i]["ExpiryMonth"].ToString();
                    var str10 = table.Rows[i]["Expiry Year"].ToString();
                    var str11 = table.Rows[i]["E-mail"].ToString();
                    var str12 = table.Rows[i]["Phone Number"].ToString();
                    var str13 = table.Rows[i]["Address"].ToString();
                    var str14 = table.Rows[i]["City"].ToString();
                    var str15 = table.Rows[i]["Post Code"].ToString();
                    var str16 = table.Rows[i]["County"].ToString();
                    var str17 = table.Rows[i]["Country"].ToString();
                    new SelectElement(driver.FindElement(By.Id("Card_Type"))).SelectByText("Visa Debit");
                    driver.FindElement(By.Id("Card_Number")).Clear();
                    driver.FindElement(By.Id("Card_Number")).SendKeys(str5);
                    driver.FindElement(By.Id("Card_SecurityCode")).Clear();
                    driver.FindElement(By.Id("Card_SecurityCode")).SendKeys(str6);
                    driver.FindElement(By.Id("Card_Name")).Clear();
                    driver.FindElement(By.Id("Card_Name")).SendKeys(str8);
                    new SelectElement(driver.FindElement(By.Id("Card_ExpiryDate_Month"))).SelectByText(text);
                    new SelectElement(driver.FindElement(By.Id("Card_ExpiryDate_Year"))).SelectByText(str10);
                    if (num < 1)
                    {
                        driver.FindElement(By.Id("change-address")).Click();

                        num++;
                    }
                    driver.FindElement(By.Id("BillingContact_FirstName")).Clear();
                    driver.FindElement(By.Id("BillingContact_FirstName")).SendKeys(input);
                    driver.FindElement(By.Id("BillingContact_LastName")).Clear();
                    driver.FindElement(By.Id("BillingContact_LastName")).SendKeys(str4);
                    driver.FindElement(By.Id("BillingContact_Email")).Clear();
                    driver.FindElement(By.Id("BillingContact_Email")).SendKeys(str11);
                    driver.FindElement(By.Id("BillingContact_Phone_Number")).Clear();
                    driver.FindElement(By.Id("BillingContact_Phone_Number")).SendKeys(str12);
                    driver.FindElement(By.Id("BillingContact_Address_Line1")).Clear();
                    driver.FindElement(By.Id("BillingContact_Address_Line1")).SendKeys(str13);
                    driver.FindElement(By.Id("BillingContact_Address_Line2")).Clear();
                    driver.FindElement(By.Id("BillingContact_Address_Line2")).SendKeys("Address2");
                    driver.FindElement(By.Id("BillingContact_Address_Postcode")).Clear();
                    driver.FindElement(By.Id("BillingContact_Address_Postcode")).SendKeys(str15);
                    driver.FindElement(By.Id("BillingContact_Address_Town")).Clear();
                    driver.FindElement(By.Id("BillingContact_Address_Town")).SendKeys(str14);
                    driver.FindElement(By.Id("BillingContact_Address_County")).Clear();
                    driver.FindElement(By.Id("BillingContact_Address_County")).SendKeys(str16);
                    if (str17.Length == 0)
                    {
                        var elem = driver.FindElement(By.Id("BillingContact_Address_Country"));
                        IList<IWebElement> options = elem.FindElements(By.TagName("option"));
                        foreach (var str18 in options)
                        {
                            new SelectElement(driver.FindElement(By.Id("BillingContact_Address_Country"))).SelectByText(
                                str18.Text);
                            if (str18.Text == "")
                            {
                                break;
                            }
                        }
                    }
                    if (str17.Length > 0)
                    {
                        var elem = driver.FindElement(By.Id("BillingContact_Address_Country"));
                        IList<IWebElement> options = elem.FindElements(By.TagName("option"));

                        foreach (var str19 in options)
                        {
                            new SelectElement(driver.FindElement(By.Id("BillingContact_Address_Country"))).SelectByText(
                                str19.Text);
                            if (str19.Text == "United Kingdom")
                            {
                                break;
                            }
                        }
                    }
                    driver.FindElement(By.Name("PostAction[Complete]")).Click();

                    Thread.Sleep(0xbb8);
                    if (Regex.IsMatch(str5, "^[0-9'']"))
                    {
                        datarow.Newrow("Card Number", str5, str5, "PASS", driver);
                    }
                    else if (driver.PageSource.Contains("Number required") ||
                             driver.PageSource.Contains("Number invalid"))
                    {
                        datarow.Newrow("Card Number", str5, "Number Invalid", "PASS", driver);
                    }
                    else
                    {
                        datarow.Newrow("Card Number", str5, "No Error Message Displayed", "FAIL", driver);
                        screenshot.Screenshotfailed(driver);
                    }
                    datarow.Newrow("Card Type", "Visa Debit", "Visa Debit", "PASS", driver);
                    var regex = new Regex("^[0-9]{3}$");
                    if (regex.IsMatch(str6))
                    {
                        datarow.Newrow("Security Code", str6, "Valid 3 Digits", "PASS", driver);
                    }
                    else if (driver.PageSource.Contains("Security code required") ||
                             driver.PageSource.Contains("Security code invalid"))
                    {
                        datarow.Newrow("Security Code", str6, "Security code required", "PASS", driver);
                    }
                    else
                    {
                        datarow.Newrow("Security Code", str6, "No Error Message Displayed", "FAIL", driver);
                        screenshot.Screenshotfailed(driver);
                    }
                    if (Regex.IsMatch(str8, "^[a-zA-Z'']"))
                    {
                        datarow.Newrow("Name on Card", str8, str8, "PASS", driver);
                    }
                    else if (driver.PageSource.Contains("Name required"))
                    {
                        datarow.Newrow("Name on Card", str8, "Name Required", "PASS", driver);
                    }
                    else
                    {
                        datarow.Newrow("Name on Card", str8, "No Error Message Displayed", "PASS", driver);
                        screenshot.Screenshotfailed(driver);
                    }
                    if (Regex.IsMatch(input, "^[a-zA-Z'']"))
                    {
                        datarow.Newrow("First Name", input, input, "PASS", driver);
                    }
                    else if (driver.PageSource.Contains("The First Name field is required."))
                    {
                        datarow.Newrow("First Name", input, "The First Name field is required.", "PASS", driver
                            );
                    }
                    else
                    {
                        datarow.Newrow("First Name", input, "No Error Message Displayed", "FAIL", driver);
                        screenshot.Screenshotfailed(driver);
                    }
                    if (Regex.IsMatch(str4, "^[a-zA-Z'']"))
                    {
                        datarow.Newrow("Last Name", str4, str4, "PASS", driver);
                    }
                    else if (driver.PageSource.Contains("The Last Name field is required."))
                    {
                        datarow.Newrow("Last Name", str4, "The Last Name field is required.", "PASS", driver);
                    }
                    else
                    {
                        datarow.Newrow("Last Name", str4, "No Error message Displayed", "FAIL", driver);
                        screenshot.Screenshotfailed(driver);
                    }
                    if (Regex.IsMatch(str13, "^[a-zA-Z0-9'']"))
                    {
                        datarow.Newrow("Address", str13, str13, "PASS", driver);
                    }
                    else if (driver.PageSource.Contains("The Address field is required"))
                    {
                        datarow.Newrow("Address", str13, "The Address field is required", "PASS", driver);
                    }
                    else
                    {
                        datarow.Newrow("Address", str13, "No Error message Displayed", "FAIL", driver);
                        screenshot.Screenshotfailed(driver);
                    }
                    if (Regex.IsMatch(str15, "^[a-zA-Z0-9'']"))
                    {
                        datarow.Newrow("Post Code", str15, str15, "PASS", driver);
                    }
                    else if (driver.PageSource.Contains("The Postcode field is required"))
                    {
                        datarow.Newrow("Post Code", str15, "The Postcode field is required.", "PASS", driver);
                    }
                    else
                    {
                        datarow.Newrow("Post Code", str15, "No Error Message Displayed", "FAIL", driver);
                        screenshot.Screenshotfailed(driver);
                    }
                    if (Regex.IsMatch(str17, "^[a-zA-Z'']"))
                    {
                        datarow.Newrow("Country", str17, str17, "PASS", driver);
                    }
                    else if (driver.PageSource.Contains("The Country field is required."))
                    {
                        datarow.Newrow("Country", str17, "The Country field is required.", "PASS", driver);
                    }
                    else
                    {
                        datarow.Newrow("Country", str17, "No Error Message", "FAIL", driver);
                        screenshot.Screenshotfailed(driver);
                    }
                    if (driver.Title == "Secure Payment Page")
                    {
                    }
                    var location = driver.Url;
                    var str22 = driver.Title;
                    if (location.Contains("State=Accepted") || str22.Contains("Payment Accepted"))
                    {
                        datarow.Newrow("Transaction", location, "State=Accepted", "PASS", driver);
                        break;
                    }
                    if (location.Contains("State=NotAccepted"))
                    {
                        datarow.Newrow("Transaction", location, "Transaction Declined", "FAIL", driver);
                        break;
                    }
                    if ((!driver.PageSource.Contains("Checkout Declined") &&
                         !driver.PageSource.Contains("Checkout Error")) && !driver.PageSource.Contains("Not Found"))
                        continue;
                    datarow.Newrow("Checkout", "Checkout Declined", "Checkout Declined", "PASS", driver);
                    break;
                }
                catch (Exception exception2)
                {
                    Console.Write(exception2);
                    var str23 = exception2.ToString();
                    var screenshot2 = new Screenshot();
                    datarow.Newrow("Exception", "Exceptio not Expected", str23, "FAIL", driver);
                    screenshot2.Screenshotfailed(driver);
                }
            }
        }
        /*
        private Screenshot _screenshot = new Screenshot();
        */
        public void Create(IWebDriver driver)
        {
            var datarow = new Datarow();
            _genaralLibrary = new GeneralLibrary();
            var excelData = _genaralLibrary.GetExcelData(@"C:\\Input Data\CardDetails.xls", "AccountCreation");
            datarow.Col();
            var table = excelData.Tables[0];
            try
            {
                var count = table.Rows.Count;
                for (var i = 0; i <= count; i++)
                {
                    var expected = table.Rows[i]["AccountName"].ToString();
                    var text = table.Rows[i]["Provider"].ToString();
                    var str3 = table.Rows[i]["ReturnURI"].ToString();
                    if (driver.Title == "Log On : mopowered.co.uk")
                    {
                        driver.FindElement(
                            By.CssSelector(
                                "html body div#Top.page div#Content div.mainContent div#Main div#LogOnSection.section div.box form#LogOnForm.form div div#EmailControl.control div.input input#Email"))
                              .SendKeys("*****@*****.**");
                        driver.FindElement(
                            By.CssSelector(
                                "html body div#Top.page div#Content div.mainContent div#Main div#LogOnSection.section div.box form#LogOnForm.form div div#PasswordControl.control div.input input#Password"))
                              .SendKeys("Apple12345");
                        driver.FindElement(By.Id("LogOn_Action_LogOn")).Click();
                    }
                    driver.FindElement(By.XPath("//div[@id='IndexMenu']/ul/li/ul/li/a")).Click();

                    driver.FindElement(By.LinkText("Create")).Click();
                    driver.FindElement(By.Id("Name")).Clear();
                    driver.FindElement(By.Id("Name")).SendKeys(expected);
                    driver.FindElement(By.CssSelector("#IndexMenu > ul > li.selected > ul > li > a")).Click();

                    if (driver.PageSource.Contains("Test Client Account"))
                    {
                        driver.FindElement(By.LinkText("Test Client Account")).Click();
                        datarow.Newrow("Test Client Tab", "Test Client Tab", "Test Client Account", "PASS", driver
                            );
                    }
                    new SelectElement(driver.FindElement(By.Id("Provider_Id"))).SelectByText(text);
                    driver.FindElement(By.CssSelector("input.button")).Click();
                    Thread.Sleep(0x1388);
                    var attribute = driver.FindElement(By.Id("Name")).GetAttribute("Value");
                    var actual = driver.FindElement(By.Id("Provider_Id")).GetAttribute("Value");
                    datarow.Newrow("Account Name", expected, attribute, expected == attribute ? "PASS" : "FAIL", driver);
                    datarow.Newrow("Provider", text, actual, text == actual ? "PASS" : "FAIL", driver);
                    var str8 = driver.Title;
                    datarow.Newrow("Details Tab", "Details : mopowered.co.uk", str8,
                        str8 == "Details : mopowered.co.uk" ? "PASS" : "FAIL", driver);
                    driver.FindElement(By.Id("PayProviderCheckOutReturnUri")).Clear();
                    driver.FindElement(By.Id("PayProviderCheckOutReturnUri")).SendKeys(str3);
                    driver.FindElement(By.CssSelector("input.button")).Click();
                    Thread.Sleep(0x1388);
                    driver.FindElement(By.LinkText("Payment Provider")).Click();

                    new Paymentprovider().Provider(driver, datarow);
                    new Notificationtab().Notifications(driver, datarow);
                }
            }
            catch (Exception exception)
            {
                var str9 = exception.ToString();
                datarow.Newrow("Exception", "Not Expected", str9, "FAIL", driver);
                datarow.Excelsave("MoPay Account Creation", driver, "*****@*****.**");
            }
            finally
            {
                datarow.Excelsave("MoPay Account Creation", driver, "*****@*****.**");
            }
        }
        public void Notifications(IWebDriver driver, Datarow datarow)
        {
            string str10;
            _genaralLibrary = new GeneralLibrary();
            var table =
                _genaralLibrary.GetExcelData(@"C:\\Input Data\CardDetails.xls", "AccountCreation").Tables[0];
            var expected = table.Rows[0]["PayNotificationsCallBack"].ToString();
            var str2 = table.Rows[0]["TokenNotificationscallback"].ToString();
            var str3 = table.Rows[0]["SuccesfullTransactions"].ToString();
            var str4 = table.Rows[0]["DailyEmail"].ToString();
            var str5 = table.Rows[0]["WeeklyEmail"].ToString();
            var attribute = driver.FindElement(By.Id("SendSuccessfulTransactionReports")).GetAttribute("value");
            if (attribute == "true")
            {
                datarow.Newrow("Successful Transaction Option", "on", attribute, "PASS", driver);
                driver.FindElement(By.Id("SuccessfulTransactionReportEmail")).Clear();
                driver.FindElement(By.Id("SuccessfulTransactionReportEmail")).SendKeys(str3);
            }
            else
            {
                driver.FindElement(By.Id("SendSuccessfulTransactionReports")).Click();
                driver.FindElement(By.CssSelector("input.button")).Click();

                if (driver.FindElement(By.Id("SendSuccessfulTransactionReports")).GetAttribute("value") == "true")
                {
                    datarow.Newrow("Successful Transaction Option", "on", attribute, "PASS", driver);
                    driver.FindElement(By.Id("SuccessfulTransactionReportEmail")).Clear();
                    driver.FindElement(By.Id("SuccessfulTransactionReportEmail")).SendKeys(str3);
                }
                else
                {
                    datarow.Newrow("Successful Transaction Option", "on", attribute, "FAIL", driver);
                    _screenshot.Screenshotfailed(driver);
                }
            }
            var actual = driver.FindElement(By.Id("SendDailyReports")).GetAttribute("value");
            if (actual == "true")
            {
                datarow.Newrow("Daily Email", "on", actual, "PASS", driver);
                driver.FindElement(By.Id("DailyReportEmail")).Clear();
                driver.FindElement(By.Id("DailyReportEmail")).SendKeys(str4);
            }
            else
            {
                datarow.Newrow("Daily Email", "off", actual, "PASS", driver);
                driver.FindElement(By.Id("SendDailyReports")).Click();
                driver.FindElement(By.CssSelector("input.button")).Click();

                str10 = driver.FindElement(By.Id("SendDailyReports")).GetAttribute("value");
                datarow.Newrow("Daily Email", "ON", str10, str10 == "true" ? "PASS" : "FAIL", driver);
            }
            if (driver.FindElement(By.Id("SendWeeklyReports")).GetAttribute("value") == "true")
            {
                datarow.Newrow("Weekly Email", "on", actual, "PASS", driver);
                driver.FindElement(By.Id("WeeklyReportEmail")).Clear();
                driver.FindElement(By.Id("WeeklyReportEmail")).SendKeys(str5);
            }
            else
            {
                datarow.Newrow("Weekly Email", "off", actual, "PASS", driver);
                driver.FindElement(By.Id("SendWeeklyReports")).Click();
                driver.FindElement(By.CssSelector("input.button")).Click();

                str10 = driver.FindElement(By.Id("SendWeeklyReports")).GetAttribute("value");
                datarow.Newrow("Weekly Email", "ON", str10, str10 == "true" ? "PASS" : "FAIL", driver);
            }
            if (driver.FindElement(By.Id("SendMonthlyReports")).GetAttribute("value") == "true")
            {
                datarow.Newrow("Weekly Email", "on", actual, "PASS", driver);
                driver.FindElement(By.Id("MonthlyReportEmail")).Clear();
                driver.FindElement(By.Id("MonthlyReportEmail")).SendKeys(str5);
            }
            else
            {
                datarow.Newrow("Monthly Email", "off", actual, "PASS", driver);
                driver.FindElement(By.Id("SendMonthlyReports")).Click();
                driver.FindElement(By.CssSelector("input.button")).Click();

                str10 = driver.FindElement(By.Id("SendMonthlyReports")).GetAttribute("value");
                datarow.Newrow("Monthly Email", "ON", str10, str10 == "true" ? "PASS" : "FAIL", driver);
            }
            new SelectElement(driver.FindElement(By.Id("Notifications_1__Event"))).SelectByText("Pay");
            driver.FindElement(By.Id("Notifications_0__Url")).Clear();
            driver.FindElement(By.Id("Notifications_0__Url")).SendKeys(expected);
            new SelectElement(driver.FindElement(By.Id("Notifications_0__Event"))).SelectByText("Token");
            driver.FindElement(By.CssSelector("input.button")).Click();

            driver.FindElement(By.Id("Notifications_1__Url")).Clear();
            driver.FindElement(By.Id("Notifications_1__Url")).SendKeys(str2);
            driver.FindElement(By.CssSelector("input.button")).Click();

            var str13 = driver.FindElement(By.Id("Notifications_1__Url")).GetAttribute("Value");
            var str14 = driver.FindElement(By.Id("Notifications_2__Url")).GetAttribute("Value");
            datarow.Newrow("Pay Call Back URL", expected, str13, str13 == expected ? "PASS" : "FAIL", driver);
            datarow.Newrow("Token Call Back URL", str2, str14, str2 == str14 ? "PASS" : "FAIL", driver);
        }
        public void Provider(IWebDriver driver, Datarow datarow)
        {
            _genaralLibrary = new GeneralLibrary();
            var table =
                _genaralLibrary.GetExcelData(@"C:\\Input Data\CardDetails.xls", "AccountCreation").Tables[0];
            var text = table.Rows[0]["Provider"].ToString();
            var str5 = table.Rows[0]["Implementation"].ToString();
            new SelectElement(driver.FindElement(By.Id("PayProvider_Id"))).SelectByText(text);
            var attribute = driver.FindElement(By.Id("PayProvider_Id")).GetAttribute("Value");
            datarow.Newrow("Provider", text, attribute, text == attribute ? "PASS" : "FAIL", driver);
            new Paymentprovidertypes().Paymenttypes(driver, datarow);
            driver.FindElement(By.LinkText("…")).Click();

            new SelectElement(driver.FindElement(By.Id("Implementation"))).SelectByText(str5);
            var actual = driver.FindElement(By.Id("Allow3DSecure")).GetAttribute("value");
            if (actual == "false")
            {
                datarow.Newrow("3Dsecure", "OFF", actual, "PASS", driver);
                if (IsElementPresent(driver, By.Id("Allow3DSecure")))
                {
                    driver.FindElement(By.Id("Allow3DSecure")).Click();
                    driver.FindElement(By.CssSelector("input.button")).Click();
                }
            }
            if (driver.FindElement(By.Id("Allow3DSecure")).GetAttribute("value") == "true")
            {
                datarow.Newrow("3Dsecure", "ON", actual, "PASS", driver);
            }
            else
            {
                datarow.Newrow("3Dsecure", "OFF", actual, "FAIL", driver);
                _screenshot.Screenshotfailed(driver);
            }
            driver.FindElement(By.CssSelector("input.button")).Click();

            var expected = driver.FindElement(By.Id("Implementation")).GetAttribute("Value");
            datarow.Newrow("Implementation", expected, str5, expected == str5 ? "PASS" : "FAIL", driver);
            driver.FindElement(
                By.XPath(("//html/body/div/div[2]/div/div/div/form/div[5]/div/div/table/tbody/tr/th[2]/a"))).Click();

            var str11 = driver.FindElement(By.Id("Name")).GetAttribute("value");
            if (str11 == "Visa Debit")
            {
                datarow.Newrow("Card Type -Visa Debit", "Visa Debit", str11, "PASS", driver);
                new VisaDebit().Visadebit(driver, datarow);
            }
            driver.Navigate().Back();

            driver.FindElement(By.XPath("//div[@id='CardTypesControl']/div/table/tbody/tr[2]/th[2]/a")).Click();

            if (driver.FindElement(By.Id("Name")).GetAttribute("value") == "Mastercard")
            {
                datarow.Newrow("Card Type -Mastercard", "Mastercard", str11, "PASS", driver);
                new Mastercard().Mastercardm(driver, datarow);
            }
            //MouseOver("//html/body/div/div/div/div[2]/ul/li/a");
            driver.Navigate().Back();
            Thread.Sleep(0x1388);
            driver.Navigate().Back();
            Thread.Sleep(0x2710);
            driver.Navigate().Back();
            driver.FindElement(By.LinkText("Payment Provider")).Click();
            Thread.Sleep(0x1388);
            if (IsElementPresent(driver, By.Id("CardTypes_0____selector")))
            {
                var str13 = driver.FindElement(By.Id("CardTypes_0____selector")).GetAttribute("value");
                if (str13 == "false")
                {
                    datarow.Newrow("Card1", "off", str13, "PASS", driver);
                    driver.FindElement(By.Id("CardTypes_0____selector")).Click();
                }
            }
            if (IsElementPresent(driver, By.Id("CardTypes_1____selector")))
            {
                var str14 = driver.FindElement(By.Id("CardTypes_1____selector")).GetAttribute("value");
                if (str14 == "false")
                {
                    datarow.Newrow("Card2", "off", str14, "PASS", driver);
                    driver.FindElement(By.Id("CardTypes_1____selector")).Click();
                }
            }
            if (IsElementPresent(driver, By.Id("CardTypes_2____selector")))
            {
                var str15 = driver.FindElement(By.Id("CardTypes_2____selector")).GetAttribute("value");
                if (str15 == "true")
                {
                    datarow.Newrow("Card3", "on", str15, "PASS", driver);
                    driver.FindElement(By.Id("CardTypes_2____selector")).Click();
                }
            }
            if (IsElementPresent(driver, By.Id("CardTypes_3____selector")))
            {
                var str16 = driver.FindElement(By.Id("CardTypes_3____selector")).GetAttribute("value");
                if (str16 == "true")
                {
                    datarow.Newrow("Card4", "on", str16, "PASS", driver);
                    driver.FindElement(By.Id("CardTypes_3____selector")).Click();
                }
            }
            driver.FindElement(By.CssSelector("input.button")).Click();

            if (IsElementPresent(driver, By.Id("CardTypes_0____selector")))
            {
                var str17 = driver.FindElement(By.Id("CardTypes_0____selector")).GetAttribute("value");
                if (str17 == "false")
                {
                    datarow.Newrow("Card1", "off", str17, "FAIL", driver);
                    _screenshot.Screenshotfailed(driver);
                }
                else
                {
                    datarow.Newrow("Card1", "on", str17, "PASS", driver);
                }
            }
            if (IsElementPresent(driver, By.Id("CardTypes_1____selector")))
            {
                var str18 = driver.FindElement(By.Id("CardTypes_1____selector")).GetAttribute("value");
                if (str18 == "false")
                {
                    datarow.Newrow("Card2", "off", str18, "FAIL", driver);
                    _screenshot.Screenshotfailed(driver);
                }
                else
                {
                    datarow.Newrow("Card2", "on", str18, "PASS", driver);
                }
            }
            if (!IsElementPresent(driver, By.Id("CardTypes_2____selector"))) return;
            var str19 = driver.FindElement(By.Id("CardTypes_2____selector")).GetAttribute("value");
            if (str19 == "true")
            {
                datarow.Newrow("Card3", "on", str19, "FAIL", driver);
                _screenshot.Screenshotfailed(driver);
            }
            else
            {
                datarow.Newrow("Card3", "off", str19, "PASS", driver);
            }
        }
        public void modrophenialiveproducts(IWebDriver driver)
        {
            try
            {
                _generalLibrary = new GeneralLibrary();
                var dt = new DataTable();
                var fileName = "ModrophenialiveProducts";
                var workbook = _generalLibrary.CreateAndOpenExcelFile(@"C:\\Input Data", ref fileName, "Products",
                                                                          ".xlsx", false, false);
                var ws = (Worksheet) workbook.Sheets[1];
                new Datarow();
                dt.Columns.Add("Product Price");
                dt.Columns.Add("Product Title");
                dt.Columns.Add("Product Detail");
                dt.Columns.Add("Item Number");
                dt.Columns.Add("Variants");
                driver.Navigate().GoToUrl("http://www.modrophenia.com/");
                driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(10.0));
                driver.FindElement(By.XPath("//div[@id='sidebarBox']/ul[2]/li[2]/a"));
                driver.FindElement(By.LinkText("New Arrivals")).Click();

                Loop(driver, dt);
                driver.FindElement(By.LinkText("Sale Items")).Click();

                Loop(driver, dt);
                _generalLibrary.ConsolidatedXmlExportToExcel(dt, ws, true, false, false);
                _generalLibrary.SaveAndCloseExcel(workbook);
            }
            catch (Exception exception)
            {
                Console.Write(exception);
            }
            finally
            {
                foreach (var process in Process.GetProcessesByName("EXCEL").Where(process => process.MainModule.ModuleName.ToUpper().Equals("EXCEL.EXE")))
                {
                    process.Kill();
                    break;
                }
            }
        }