///<summary> /// This method Clicks on the NRF links and validates the URl opened in the new browser /// <example>ValidatePopupsofNFR(MyBrowser, "xPath", "Ladbrokes LBR", "https://www.gibraltar.gov.gi/remotegambling"); public void ValidatePopupsofNFR(ISelenium browser, string xPath, string newWindowTitle, string expURL) { try { browser.Click(xPath); HGframeworkCommonObj.PageSync(browser); HGframeworkCommonObj.WaitUntilElementPresent(browser, LoginLogoutControls.alertContainer, "5000"); Thread.Sleep(1000); Assert.IsTrue(browser.IsElementPresent(LoginLogoutControls.alertContainer), "Alert container was not displayed on tapping the '" + xPath + "' link"); Assert.IsTrue(browser.IsTextPresent("You are about to navigate away from the site and any selections you have in the betslip may be lost"), "Warning message[1] is not displayed in the Alert container"); Assert.IsTrue(browser.IsTextPresent("Do you want to navigate away?"), "Warning message[2] is not displayed in the Alert container"); browser.Click(LoginLogoutControls.CloseButtonInAlertContainer); HGframeworkCommonObj.PageSync(browser); Assert.IsFalse(browser.IsVisible(LoginLogoutControls.alertContainer), "Alert container failed to close on tapping the Cancel button"); browser.Click(xPath); HGframeworkCommonObj.WaitUntilElementPresent(browser, LoginLogoutControls.alertContainer, "5000"); Thread.Sleep(1000); Assert.IsTrue(browser.IsElementPresent(LoginLogoutControls.alertContainer), "Alert container was not displayed on tapping the '" + xPath + "' link"); browser.Click(LoginLogoutControls.ContinueButtonInAlertContainer); HGframeworkCommonObj.PageSync(browser); Thread.Sleep(2000); HGFcommonObj.SwitchWindow(browser, newWindowTitle); string actUrl = browser.GetLocation(); // url = driver.Url; browser.Close(); browser.SelectWindow("null"); Thread.Sleep(1000); if (actUrl.ToLower().Trim() != expURL.ToLower().Trim()) { Console.WriteLine("Mismatch in URL's. Actual '" + actUrl + "', Expected '" + expURL + "'."); } } catch (Exception ex) { Console.WriteLine("Function 'ValidatePopupsofNFR' - Failed"); Console.WriteLine(ex.Message); Fail(ex.Message); } }
public void SelectWindow(string windowID) { bool actRes = false; string errStr = ""; try { selenium.SelectWindow(windowID); actRes = true; } catch (System.Exception ex) { errStr = ex.ToString(); } res = new ResultClass() { Decp = "SelectWindow, " + windowID, Res = actRes ? "pass" : "fail", Tdev = " ms", Err = errStr, }; BaseListOfResItems.Add(res); }
}//end ClearTest ///<summary> ///Grab warrant data from http://www.hkex.com.hk/eng/dwrc/newissue/newlaunch.htm ///</summary> ///<returns> void </returns> private void WarrantDataCapture() { int start_position = startPosition; try { selenium1.OpenWindow("/eng/dwrc/newissue/newlaunch.htm", "WarrantListWindow"); selenium1.WaitForPopUp("WarrantListWindow", "30000"); selenium1.SelectWindow("WarrantListWindow"); //Get English Content //while (selenium1.IsElementPresent("//table[@id='bodytable']/tbody/tr/td/table/tbody[1]/tr[" + start_position + "]/td[1]")) while (start_position <= endPosition && selenium1.IsElementPresent("//table[@id='bodytable']/tbody/tr/td/table/tbody[1]/tr[" + start_position + "]/td[1]")) { String launchDateStr = selenium1.GetText("//table[@id='bodytable']/tbody/tr/td/table/tbody[1]/tr[" + start_position + "]/td[11]"); DateTime tempLaunchDateDT = DateTime.ParseExact(launchDateStr, "dd-MM-yyyy", null); DateTime temp = coreObj.DateCalculate(scheduleDate, tempLaunchDateDT, holidayCount); if (temp.Date == scheduleDate.Date) { HKRicTemplate hkRic = new HKRicTemplate(); hkRic.launchDateDT = DateTime.ParseExact(launchDateStr, "dd-MM-yyyy", null); hkRic.ricCodeStr = selenium1.GetText("//table[@id='bodytable']/tbody/tr/td/table/tbody[1]/tr[" + start_position + "]/td[2]"); hkRic.ricNameStr = selenium1.GetText("//table[@id='bodytable']/tbody/tr/td/table/tbody[1]/tr[" + start_position + "]/td[3]"); hkRic.issuerIDStr = selenium1.GetText("//table[@id='bodytable']/tbody/tr/td/table/tbody[1]/tr[" + start_position + "]/td[4]"); hkRic.underlyingStr = selenium1.GetText("//table[@id='bodytable']/tbody/tr/td/table/tbody[1]/tr[" + start_position + "]/td[5]"); hkRic.callPutStr = selenium1.GetText("//table[@id='bodytable']/tbody/tr/td/table/tbody[1]/tr[" + start_position + "]/td[6]"); hkRic.boardLotStr = selenium1.GetText("//table[@id='bodytable']/tbody/tr/td/table/tbody[1]/tr[" + start_position + "]/td[7]"); hkRic.strikeLevelStr = selenium1.GetText("//table[@id='bodytable']/tbody/tr/td/table/tbody[1]/tr[" + start_position + "]/td[8]"); hkRic.entitlementRatioStr = selenium1.GetText("//table[@id='bodytable']/tbody/tr/td/table/tbody[1]/tr[" + start_position + "]/td[9]"); hkRic.issueSizeStr = selenium1.GetText("//table[@id='bodytable']/tbody/tr/td/table/tbody[1]/tr[" + start_position + "]/td[10]"); hkRic.clearingCommDateDT = DateTime.ParseExact(selenium1.GetText("//table[@id='bodytable']/tbody/tr/td/table/tbody[1]/tr[" + start_position + "]/td[12]"), "dd-MM-yyyy", null); hkRic.listingDateDT = DateTime.ParseExact(selenium1.GetText("//table[@id='bodytable']/tbody/tr/td/table/tbody[1]/tr[" + start_position + "]/td[13]"), "dd-MM-yyyy", null); hkRic.maturityDateDT = DateTime.ParseExact(selenium1.GetText("//table[@id='bodytable']/tbody/tr/td/table/tbody[1]/tr[" + start_position + "]/td[14]"), "dd-MM-yyyy", null); //Get issue price String url = selenium1.GetAttribute("//table[@id='bodytable']/tbody/tr/td/table/tbody[1]/tr[" + start_position + "]/td[2]/a@href"); String id = url.Substring(url.IndexOf('=') + 1, 5); String summaryUrl = "http://www.hkex.com.hk/eng/dwrc/dwsummary.asp?id=" + id; selenium1.OpenWindow(summaryUrl, "WarrantSummaryWindow" + start_position); selenium1.WaitForPopUp("WarrantSummaryWindow" + start_position, "30000"); selenium1.SelectWindow("WarrantSummaryWindow" + start_position); //For Equity Get underlying name if (Char.IsDigit(hkRic.underlyingStr, 0)) { hkRic.underlyingNameForStockStr = selenium1.GetText("//table[@id='bodytable']/tbody/tr[3]/td[2]").Substring(8); } hkRic.issuePriceStr = selenium1.GetText("//table[@id='bodytable']/tbody/tr[11]/td[2]").Substring(4); selenium1.Close(); ricList.Add(hkRic); selenium1.SelectWindow("WarrantListWindow"); }//end if start_position++; }//end while ChineseNameCapture(start_position); //Get gearing and premium //search on page http://www.hkexnews.hk/listedco/listconews/advancedsearch/search_active_main.asp DataCaptureFromPDF(0); }//end try catch (SeleniumException ex) { String errLog = ex.ToString(); selenium1.Close(); selenium1.Stop(); CaptureRetry(start_position); } }//end WarrantDataCapture()
/// <summary> /// To switch control from one browser from another browser /// </summary> /// <param name="browserObj"></param> /// <param name="pageTitle"></param> public void SwitchWindow(ISelenium browserObj, string pageTitle) { try { Thread.Sleep(2000); string[] windowTitles = browserObj.GetAllWindowTitles(); for (int i = 0; i < windowTitles.Length; i++) { string strTemp = windowTitles[i].ToString(); if (strTemp.Contains(pageTitle)) { // browser.WaitForPopUp(windowTitles[i], "30000"); browserObj.SelectWindow(windowTitles[i]); Thread.Sleep(2000); break; } } } catch (Exception ex) { Console.WriteLine("Function 'SwitchWindow' - Failed"); Console.WriteLine(ex.Message); Fail(ex.Message); } }
///<summary> /// This method verifies the all the policies on Home page /// <example>VerifyPolicies(MyBrowser)</example> public void VerifyPolicies(ISelenium browser, string[] Policies, string[] URLs) { try { string url, xPath; for (int i = 0; i < Policies.Length; i++) { HGframeworkCommonObj.PageSync(browser); xPath = "//a[starts-with(@class, 'bxc tac sec-button small footer') and contains(text(), '" + Policies[i] + "')]"; Assert.IsTrue(browser.IsElementPresent(xPath), Policies[i] + " button not found"); browser.Click(xPath); HGframeworkCommonObj.PageSync(browser); HGframeworkCommonObj.WaitUntilElementPresent(browser, LoginLogoutControls.alertContainer, "5000"); Thread.Sleep(1000); Assert.IsTrue(browser.IsElementPresent(LoginLogoutControls.alertContainer), "Alert container was not displayed on tapping the '" + Policies[i] + "' link"); Assert.IsTrue(browser.IsTextPresent("You are about to navigate away from the site and any selections you have in the betslip may be lost"), "Warning message[1] is not displayed in the Alert container"); Assert.IsTrue(browser.IsTextPresent("Do you want to navigate away?"), "Warning message[2] is not displayed in the Alert container"); browser.Click(LoginLogoutControls.CloseButtonInAlertContainer); HGframeworkCommonObj.PageSync(browser); Assert.IsFalse(browser.IsVisible(LoginLogoutControls.alertContainer), "Alert container failed to close on tapping the Cancel button"); browser.Click(xPath); HGframeworkCommonObj.WaitUntilElementPresent(browser, LoginLogoutControls.alertContainer, "5000"); Thread.Sleep(1000); Assert.IsTrue(browser.IsElementPresent(LoginLogoutControls.alertContainer), "Alert container was not displayed on tapping the '" + Policies[i] + "' link"); browser.Click(LoginLogoutControls.ContinueButtonInAlertContainer); HGframeworkCommonObj.PageSync(browser); Thread.Sleep(2000); //Title is different for Desktop policy if (Policies[i] == "Desktop") { HGFcommonObj.SwitchWindow(browser, "Ladbrokes Mobile"); } else { HGFcommonObj.SwitchWindow(browser, "LBR Customer KB"); } url = browser.GetLocation(); // url = driver.Url; browser.Close(); browser.SelectWindow("null"); Thread.Sleep(1000); if (url.ToLower().Trim() == URLs[i].ToLower().Trim()) { Console.WriteLine("'" + Policies[i] + "' validated successfully"); } else { Console.WriteLine("Failed to validate the '" + Policies[i] + "'"); Fail("Mismatch in Actual and Expected URLs"); } } } catch (Exception ex) { Console.WriteLine("Function 'VerifyPolicies' - Failed"); Console.WriteLine(ex.Message); Fail(ex.Message); } }