public void Dsecure(IWebDriver driver) { if (IsElementPresent(driver, By.TagName("iframe"))) { var frameElement = driver.FindElement(By.TagName("iframe")); driver.SwitchTo().Frame(frameElement); driver.FindElement(By.CssSelector("input[type=\"submit\"]")).Click(); Thread.Sleep(0x1388); driver.SwitchTo().Alert().Accept(); var location = driver.Url; if (location.Contains("3DSecureState=Success")) { _datarow.Newrow("3D secure", location, "3DSecureState=Success", "PASS", driver); driver.FindElement(By.LinkText("start again")).Click(); } else if (location.Contains("State=Declined")) { _datarow.Newrow("3D secure", location, "3D secure Declined", "FAIL", driver); driver.FindElement(By.LinkText("start again")).Click(); } } else { var actual = driver.Url; _datarow.Newrow("Checkout", "Server Error", actual, "FAIL", driver); new Screenshot().Screenshotfailed(driver); driver.Navigate().GoToUrl("http://devpaytest.mobankdev.com/"); } }
/** * Selects the only <code>_blank</code> window. A window open with * <code>target='_blank'</code> will have a <code>window.name = null</code>. * <p/> * <p>This method assumes that there will only be one single * <code>_blank</code> window and selects the first one with no name. * Therefore if for any reasons there are multiple windows with * <code>window.name = null</code> the first found one will be selected. * <p/> * <p>If none of the windows have <code>window.name = null</code> the last * selected one will be re-selected and a {@link SeleniumException} will * be thrown. * * @throws NoSuchWindowException if no window with * <code>window.name = null</code> is found. */ public void SelectBlankWindow(IWebDriver driver) { string current = driver.GetWindowHandle(); // Find the first window without a "name" attribute ReadOnlyCollection<string> handles = driver.GetWindowHandles(); foreach (string handle in handles) { // the original window will never be a _blank window, so don't even look at it // this is also important to skip, because the original/root window won't have // a name either, so if we didn't know better we might think it's a _blank popup! if (handle == originalWindowHandle) { continue; } driver.SwitchTo().Window(handle); string value = ((IJavaScriptExecutor)driver).ExecuteScript("return window.name;").ToString(); if (string.IsNullOrEmpty(value)) { // We found it! return; } } // We couldn't find it driver.SwitchTo().Window(current); throw new SeleniumException("Unable to select window _blank"); }
public void WhereIsMyCheese(string url) { try { _driver = Browser.GetFirefoxDriver(); _driver.Navigate().GoToUrl(url); _driver.FindElement(By.Id("windowOpener")).Click(); _driver.SwitchTo().Window("windowName"); _driver.FindElement(By.Id("CheesyButton")).Click(); _driver.SwitchTo().Alert().Accept(); } catch (System.Exception ex) { Console.WriteLine("An exception occured: " + ex.Message); Debug.WriteLine("An exception occured: " + ex.Message); } finally { _driver.Quit(); } }
public void ChromeTest() { driver = new ChromeDriver(); driver.Navigate().GoToUrl(""); Func<string, IWebDriver> selectChildFrame = (x) => driver.SwitchTo().Frame(driver.FindElement(By.XPath(x))); Action<string> click = (string x) => driver.FindElement(By.XPath(x)).Click(); Action<string> fElement = (string x) => driver.FindElement(By.XPath(x)); driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(3)); //Step into Main Frame selectChildFrame.Invoke("//frame[contains(@name, 'mainWindow')]"); //Click into parts tab click.Invoke("//td[contains(@id, 'Tab1')]"); //step into search part frame and search for a part containing '2008' selectChildFrame.Invoke("//iframe[contains(@name, 'iframeSearchPart')]"); click.Invoke("//input[contains(@name, 'partName')]"); driver.FindElement(By.XPath("//input[contains(@name, 'partName')]")).SendKeys("2008"); click.Invoke("//input[contains(@value, 'Search')]"); //step into iframePTSrchResults and click part of 777D12008 selectChildFrame.Invoke("//iframe[contains(@id, 'iframePTSrchResults')]"); selectChildFrame.Invoke("//frame[contains(@name, 'PartSearchResults')]"); click.Invoke("//td[contains(text(), '777D12008')]"); driver.SwitchTo().ParentFrame(); selectChildFrame.Invoke("//frame[contains(@name, 'PartSearchDetails')]"); click.Invoke("//span[contains(text(), '11A-544B004 (2009)-->Label Map MTD Gold')]"); //view super session and add to pick list driver.SwitchTo().DefaultContent(); selectChildFrame.Invoke("//frame[contains(@name, 'mainWindow')]"); selectChildFrame.Invoke("//iframe[contains(@id, 'iframeSearchModel')]"); selectChildFrame.Invoke("//iframe[contains(@id, 'iframeMDSrchResults')]"); selectChildFrame.Invoke("//frame[contains(@name, 'ModelSearchDetails')]"); selectChildFrame.Invoke("//frame[contains(@name, 'IPL1361227DATA')]"); driver.FindElement(By.XPath("//tr[contains(@id, '777S30145')]")).FindElement(By.XPath("//tr/td/a")).Click(); driver.FindElement(By.XPath("//tr[contains(@id, '777S30145')]")).FindElement(By.XPath("//a[contains(@href, 'addToPicklist')]")).Click(); //navigate to model driver.SwitchTo().DefaultContent(); selectChildFrame.Invoke("//frame[contains(@name, 'mainWindow')]"); click.Invoke("//td[contains(@id, 'Tab0')]"); //search a model of 2007 in MTD2014 selectChildFrame.Invoke("//iframe[contains(@id, 'iframeSearchModel')]"); driver.FindElement(By.XPath("//td[contains(@class, 'oemDropDownContainer')]")).FindElement(By.XPath("//td/select")).Click(); driver.FindElement(By.XPath("//option[contains(@value, '5010')]")).Click(); click.Invoke("//input[contains(@name, 'modelName')]"); driver.FindElement(By.XPath("//input[contains(@name, 'modelName')]")).SendKeys("2007"); click.Invoke("//input[contains(@value, 'Search')]"); }
public static bool WaitForPageToLoad(IWebDriver driver, int timeOutInSeconds) { string state = string.Empty; try { WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(timeOutInSeconds)); //Checks every 500 ms whether predicate returns true if returns exit otherwise keep trying till it returns ture wait.Until(d => { try { state = ((IJavaScriptExecutor)driver).ExecuteScript(@"return document.readyState").ToString(); } catch (InvalidOperationException) { //Ignore } catch (NoSuchWindowException) { //when popup is closed, switch to last windows driver.SwitchTo().Window(driver.WindowHandles.Last()); } //In IE7 there are chances we may get state as loaded instead of complete return (state.Equals("complete", StringComparison.InvariantCultureIgnoreCase) || state.Equals("loaded", StringComparison.InvariantCultureIgnoreCase)); }); } catch (TimeoutException) { //sometimes Page remains in Interactive mode and never becomes Complete, then we can still try to access the controls if (!state.Equals("interactive", StringComparison.InvariantCultureIgnoreCase)) throw; } catch (NullReferenceException) { //sometimes Page remains in Interactive mode and never becomes Complete, then we can still try to access the controls if (!state.Equals("interactive", StringComparison.InvariantCultureIgnoreCase)) throw; } catch (WebDriverException) { if (driver.WindowHandles.Count == 1) { driver.SwitchTo().Window(driver.WindowHandles[0]); } state = ((IJavaScriptExecutor)driver).ExecuteScript(@"return document.readyState").ToString(); if ( !(state.Equals("complete", StringComparison.InvariantCultureIgnoreCase) || state.Equals("loaded", StringComparison.InvariantCultureIgnoreCase))) throw; } return true; }
private static void CheckboxTest(IWebDriver driver) { driver.Url = "http://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_checkbox_get"; IWebElement rightFrame = driver.FindElement(By.Id("iframeResult")); driver.SwitchTo().Frame(rightFrame); var checkbox = driver.FindElement(By.Id("myCheck")); if (!checkbox.Selected) checkbox.Click(); driver.SwitchTo().DefaultContent(); }
public TenancySearchPage(IWebDriver driver) : base(driver, TenancySearchPage.FRAME) { WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(30)); wait.Until((d) => { return d.Title.Contains(pageTitle); }); //Switch to main frame when it is visible driver.SwitchTo().DefaultContent(); wait = new WebDriverWait(driver, TimeSpan.FromSeconds(waitsec)); IWebElement f1 = wait.Until(ExpectedConditions.ElementIsVisible(By.Id(FRAME))); driver.SwitchTo().Frame(f1); }
public static bool HasFocus(this IWebElement element, IWebDriver driver) { if (element.GetType() == typeof (RemoteWebElement)) { return driver.SwitchTo().ActiveElement().Equals(element); } if (element.GetType() == typeof (WebElement)) { WebElement wElement = element as WebElement; return wElement != null && driver.SwitchTo().ActiveElement().Equals(wElement.InnerElement); } return false; }
/// <summary> /// Handles the command. /// </summary> /// <param name="driver">The driver used to execute the command.</param> /// <param name="locator">The first parameter to the command.</param> /// <param name="value">The second parameter to the command.</param> /// <returns>The result of the command.</returns> protected override object HandleSeleneseCommand(IWebDriver driver, string locator, string value) { string current = driver.CurrentWindowHandle; List<string> attributes = new List<string>(); foreach (string handle in driver.WindowHandles) { driver.SwitchTo().Window(handle); attributes.Add(driver.Title); } driver.SwitchTo().Window(current); return attributes.ToArray(); }
public static void DeleteFirstUser(IWebDriver driver) { Login.AsHost(driver); driver.Navigate().GoToUrl(UserAccountsPage); driver.WaitClick(AccountManagerDeleteButton); driver.SwitchTo().Alert().Accept(); driver.SwitchTo().DefaultContent(); driver.WaitClick(AccountManagerRemoveButton); driver.SwitchTo().Alert().Accept(); driver.SwitchTo().DefaultContent(); }
public static void RefreshPage(IWebDriver driver, string frame, string childFrame = null) { //Switch to main frame when it is visible driver.SwitchTo().DefaultContent(); WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(waitsec)); IWebElement f1 = wait.Until(ExpectedConditions.ElementIsVisible(By.Id(frame))); if (childFrame != null) { driver.SwitchTo().Frame(f1); driver.SwitchTo().Frame(childFrame); } else { driver.SwitchTo().Frame(f1); } }
private void AcceptAlert(IWebDriver browser) { var alertText = ""; int loop = 2; IAlert alert = null; while (alertText.Equals("") && loop > 0) { if (alert == null) { try { alert = browser.SwitchTo().Alert(); } catch { System.Threading.Thread.Sleep(50); } } else { try { alert.Accept(); alertText = alert.Text; } catch (Exception ex) { if (ex.Message.Equals("No alert is present")) alertText = "Already Accepted"; else System.Threading.Thread.Sleep(50); } } loop--; } }
public void Dsecure(IWebDriver driver) { var frameElement = driver.FindElement(By.TagName("iframe")); driver.SwitchTo().Frame(frameElement); driver.FindElement(By.CssSelector("input[type=\"submit\"]")).Click(); Thread.Sleep(0x1388); Thread.Sleep(0x1f40); var location = driver.Url; if (location.Contains("3DSecureState=Success")) { _datarow.Newrow("3D secure", location, "3DSecureState=Success", "PASS", driver); if (IsElementPresent(driver, By.LinkText("start again"))) { driver.FindElement(By.LinkText("start again")).Click(); } else { driver.Navigate().GoToUrl("http://devpaytest.mobankdev.com/"); } } else { _datarow.Newrow("3D secure", location, "3D secure Declined", "FAIL", driver); if (IsElementPresent(driver, By.LinkText("start again"))) { driver.FindElement(By.LinkText("start again")).Click(); } else { driver.Navigate().GoToUrl("http://devpaytest.mobankdev.com/"); } } }
public void Socialmediashare(IWebDriver driver, Datarow datarow) { driver.FindElement(By.XPath("//div[@id='social-media-sharing']/a[1]/img")).Click(); driver.FindElement(By.XPath("//div[@id='social-media-sharing']/a[2]/img")).Click(); driver.FindElement(By.XPath("//div[@id='social-media-sharing']/a[3]/img")).Click(); var str = driver.WindowHandles.GetEnumerator(); var parentwindow = driver.CurrentWindowHandle; while (str.MoveNext()) { var window = Convert.ToString(str.Current); driver.SwitchTo().Window(window); var url = driver.Url; datarow.Newrow("Social Share URL", "", url, "PASS"); } driver.SwitchTo().Window(parentwindow); }
/// <summary> /// Handles the command. /// </summary> /// <param name="driver">The driver used to execute the command.</param> /// <param name="locator">The first parameter to the command.</param> /// <param name="value">The second parameter to the command.</param> /// <returns>The result of the command.</returns> protected override object HandleSeleneseCommand(IWebDriver driver, string locator, string value) { string current = driver.CurrentWindowHandle; List<string> attributes = new List<string>(); foreach (string handle in driver.WindowHandles) { driver.SwitchTo().Window(handle); string attributeValue = (string)((IJavaScriptExecutor)driver).ExecuteScript("return '' + window[arguments[0]];", value); attributes.Add(attributeValue); } driver.SwitchTo().Window(current); return attributes.ToArray(); }
public CredentialElement(IWebDriver driver, IWebElement labelElement) { Match match = NatwestDriver.PasswordRegex.Match(labelElement.Text); labelElement.Click(); _element = driver.SwitchTo().ActiveElement(); IsPin = "number".Equals(match.Groups[2].Captures[0].Value); _credentialCharIndex = Int32.Parse(match.Groups[1].Captures[0].Value) - 1; }
/// <summary> /// Selects a window. /// </summary> /// <param name="driver">The <see cref="IWebDriver"/> used in selecting the windows.</param> /// <param name="windowId">The window ID to select.</param> public void SelectWindow(IWebDriver driver, string windowId) { if (windowId == "null") { driver.SwitchTo().Window(this.originalWindowHandle); } else if (windowId == "_blank") { this.SelectBlankWindow(driver); } else { if (windowId.StartsWith("title=", StringComparison.Ordinal)) { SelectWindowWithTitle(driver, windowId.Substring("title=".Length)); return; } if (windowId.StartsWith("name=", StringComparison.Ordinal)) { windowId = windowId.Substring("name=".Length); } try { driver.SwitchTo().Window(windowId); } catch (NoSuchWindowException) { SelectWindowWithTitle(driver, windowId); } } if (this.lastFrame.ContainsKey(driver.CurrentWindowHandle)) { // If the frame has gone, fall back try { this.SelectFrame(driver, this.lastFrame[driver.CurrentWindowHandle]); } catch (SeleniumException) { this.lastFrame.Remove(driver.CurrentWindowHandle); } } }
private void HandleElement(IWebElement el, IWebDriver browser, string[] parameters) { var keystroke = KeywordUtility.ReadParameterValue(_variables, parameters[2]); el.SendKeys(keystroke); //switch to default content browser.SwitchTo().DefaultContent(); }
private static void AjaxTest(IWebDriver driver) { driver.Url = "http://www.w3schools.com/xml/tryit.asp?filename=tryajax_first"; IWebElement rightFrame = driver.FindElement(By.Id("iframeResult")); driver.SwitchTo().Frame(rightFrame); IWebElement demo = driver.FindElement(By.Id("demo")); Debug.WriteLine("Before:"); Debug.WriteLine(demo.Text); IWebElement changeContentButton = demo.FindElement(By.TagName("button")); changeContentButton.Click(); demo = driver.FindElement(By.Id("demo")); var ajaxResult = demo.FindElement(By.TagName("p")); Debug.WriteLine("After:"); Debug.WriteLine(demo.Text); driver.SwitchTo().DefaultContent(); }
public void SetUp() { driver = new ChromeDriver(); driver.Manage().Window.Maximize(); driver.Navigate().GoToUrl(HighchartsPage.PageUrl); driver.SwitchTo().Frame(driver.FindElement(By.XPath(HighchartsPage.IframeXPath))); }
public static void closeWindows(IWebDriver driver, string[] titles) { try { System.Collections.ObjectModel.ReadOnlyCollection<string> windowHandles = driver.WindowHandles; foreach (String window in windowHandles) { Console.WriteLine(driver.Title.ToString()); try { driver.SwitchTo().Window(window); } catch { Console.WriteLine("Hang Up"); break; } try { bool found = false; foreach (string title in titles) { if (driver.Title.Contains(title)) { found = true; break; } } if (!found) { driver.SwitchTo().Window(window); driver.Close(); } } catch { } } } catch { } }
public override void SpecifyForBrowser(IWebDriver browser) { ignoreIfInternetExplorer("For some reason Internet Explorer won't open a new window from this test."); given("a webpage that opens another window", delegate() { var server = beforeAll(() => new StaticServer() { {"first.html", "<html>original window here<a href='/second.html' target='_blank'>hi</a></html>"}, {"second.html", "<html>new window here</html>"} }.Start()); beforeAll(() => server.Start()); arrange(() => browser.Navigate().GoToUrl(server.UrlFor("first.html"))); var existingWindows = arrange(() => new WhichWindowContext(browser)); when("the new window link is clicked", delegate() { arrange(() => browser.FindElement(By.TagName("a")).Click()); arrange(delegate() { browser.SwitchTo().Window(existingWindows.GetNewWindowName()); expect(() => browser.ContainsText("new window here")); }); then("the new window can be switch to", delegate() { }); then("the original window can be switched back to", delegate() { browser.SwitchTo().Window(existingWindows.GetOriginalWindowName()); expect(() => browser.ContainsText("original window here")); }); }); }); }
/// <summary> /// Finds all matching elements, searching child iframes if no matches were found. Only returns results from the first finder that returns results. Does not throw exceptions; an empty enumeration is returned if any errors occur. /// </summary> /// <param name="this">The finders.</param> /// <param name="webDriver">The web driver, representing the top-level context of this search.</param> /// <param name="context">The context of the search. All results should be within this context.</param> /// <param name="searchText">The search string used to match the elements.</param> public static IReadOnlyCollection<IWebElement> TryFind(this IReadOnlyCollection<IFind> @this, IWebDriver webDriver, ISearchContext context, string searchText) { // First, return all the normal matches. webDriver.SwitchTo().DefaultContent(); var result = @this.TryFind(context, searchText); if (result.Count != 0) return result; // If more results are required, then search the iframes. foreach (var iframe in context.FindElements(By.TagName("iframe"))) { webDriver.SwitchTo().Frame(iframe); var html = webDriver.FindElement(By.TagName("html")); result = @this.TryFind(webDriver, html, searchText); if (result.Count != 0) return result; } return result; }
public static void SwitchHandleToNewWindow(IWebDriver driver, string windowTitle) { ReadOnlyCollection<string> handles = driver.WindowHandles; foreach (string handle in handles) { driver.SwitchTo().Window(handle); if (driver.Title.Contains(windowTitle)) { return; } } }
private bool WaitForNoConnectionAndDismiss(IWebDriver d) { try { d.SwitchTo().Alert().Dismiss(); return true; } catch (NoAlertPresentException) { return false; } }
// alert 클릭 public string ClickAlert(out string alertText) { try { alertText = Driver.SwitchTo().Alert().Text; Driver?.SwitchTo()?.Alert()?.Accept(); return(string.Empty); } catch (Exception e) { alertText = string.Empty; return(e.Message); } }
public static IAlert AlertIsPresent(IWebDriver drv) { try { // Attempt to switch to an alert return drv.SwitchTo().Alert(); } catch (OpenQA.Selenium.NoAlertPresentException) { // We ignore this execption, as it means there is no alert present...yet. return null; } // Other exceptions will be ignored and up the stack }
//快捷通道购买经验 public static void buyExp(string userName, string num, IWebDriver driver) { driver.FindElement(By.Id("quickNav_2")).Click(); driver.FindElement(By.CssSelector("div#quickCon_2.quickCon>p>input.inp1")).SendKeys(num); driver.FindElement(By.CssSelector("div#quickCon_2.quickCon>p>input.inp2")).SendKeys(userName); driver.FindElement(By.CssSelector("div#quickCon_2.quickCon>p>input.inp2.indexDq")).Click(); Thread.Sleep(500); driver.FindElement(By.LinkText("特别体验区")).Click(); Thread.Sleep(500); driver.FindElement(By.CssSelector("div#quickCon_2.quickCon>a.qdBtn2")).Click(); Thread.Sleep(500); SwitchToFrame(driver, "//iframe[contains(@class,'fancybox-iframe')]"); driver.FindElement(By.Id("bt1")).Click(); driver.SwitchTo().DefaultContent(); driver.FindElement(By.CssSelector("a.fancybox-item.fancybox-close")).Click(); }
/// <summary> /// Switch WebDriver context to frame wrapped by given element /// </summary> /// <param name="webDriver">Target WebDriver</param> /// <param name="frameElement">Frame which will became active</param> public FrameContextOverride(IWebDriver webDriver, IWebElement frameElement) { if (webDriver == null) { throw new ArgumentNullException("webDriver"); } if (frameElement == null) { throw new ArgumentNullException("frameElement"); } _wrappedDriver = webDriver; webDriver.SwitchTo().Frame(frameElement); }
public void TestMethod1() { //write actual test driver = new FirefoxDriver(); driver.Navigate().GoToUrl(""); Func<string, IWebDriver> selectChildFrame = (x) => driver.SwitchTo().Frame(driver.FindElement(By.XPath(x))); Action<string> click = (string x) => driver.FindElement(By.XPath(x)).Click(); Action<string> fElement = (string x) => driver.FindElement(By.XPath(x)); driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(3)); //Step into Main Frame selectChildFrame.Invoke("//frame[contains(@name, 'mainWindow')]"); selectChildFrame.Invoke("//frame/frame"); selectChildFrame.Invoke("//div[contains(@id, 'tab_sheets_container']/iframe[contains(@id, 'iframeSearchPart']"); }
public void SetupTest() { driver = new FirefoxDriver(); baseURL = "http://www.trirand.net/"; verificationErrors = new StringBuilder(); this.GlobaWait = new WebDriverWait(this.driver, TimeSpan.FromSeconds(20)); driver.Navigate().GoToUrl(baseURL + "/demoaspnet.aspx"); driver.FindElement(By.LinkText("Hierarchy")).Click(); string subGrid2Locator = "Sub Grid (2 nested levels)"; GlobaWait.Until(d => d.FindElements(By.LinkText(subGrid2Locator)).Any()); driver.FindElement(By.LinkText(subGrid2Locator)).Click(); string demoFrameLocator = "demoFrame"; GlobaWait.Until(d => d.FindElements(By.Id(demoFrameLocator)).Any()); driver.SwitchTo().Frame(demoFrameLocator); }
public void SwitchToWindow() { WebDriver.WindowHandles.Count.Should().Be(2); WebDriver.SwitchTo().Window(WebDriver.WindowHandles[1]); }
public string FTP_STLouis(string houseno, string sname, string sttype, string parcelNumber, string searchType, string orderNumber, string ownername, string directParcel) { GlobalClass.global_orderNo = orderNumber; HttpContext.Current.Session["orderNo"] = orderNumber; GlobalClass.global_parcelNo = parcelNumber; IWebElement iframeElement1; var driverService = PhantomJSDriverService.CreateDefaultService(); driverService.HideCommandPromptWindow = true; using (driver = new PhantomJSDriver()) { string StartTime = "", AssessmentTime = "", TaxTime = "", CitytaxTime = "", LastEndTime = ""; string locator_no = "-", owner_name = "-", taxing_address = "-", city_name = "-", subdivison_name = "-", legal_description = "-", year_built = "-"; string locator_num = "-", prop_location = "-", tax_authority = "St. Louis County Government,41 South Central, Clayton, Missouri 63105", dele_status = "-"; try { StartTime = DateTime.Now.ToString("HH:mm:ss"); if (searchType == "titleflex") { string address = houseno + " " + sname; gc.TitleFlexSearch(orderNumber, parcelNumber, "", address, "SC", "Charleston"); if (HttpContext.Current.Session["TitleFlex_Search"] != null && HttpContext.Current.Session["TitleFlex_Search"].ToString() == "Yes") { driver.Quit(); return("MultiParcel"); } else if (HttpContext.Current.Session["titleparcel"].ToString() == "") { HttpContext.Current.Session["Nodata_WilliamsonTX"] = "Yes"; driver.Quit(); return("No Data Found"); } parcelNumber = HttpContext.Current.Session["titleparcel"].ToString(); searchType = "parcel"; } if (searchType == "address") { driver.Navigate().GoToUrl("http://revenue.stlouisco.com/IAS/"); //find ifram using xpath IWebElement iframeElement = driver.FindElement(By.XPath("/html/frameset/frameset/frame[1]")); //now use the switch command driver.SwitchTo().Frame(iframeElement); Thread.Sleep(3000); driver.FindElement(By.XPath("/html/body/form/table/tbody/tr[2]/td[1]/div[3]/span/label")).Click(); Thread.Sleep(3000); driver.FindElement(By.XPath("//*[@id='tboxAddrNum']")).SendKeys(houseno); driver.FindElement(By.XPath("//*[@id='tboxStreet']")).SendKeys(sname); driver.FindElement(By.XPath("//*[@id='butFind']")).SendKeys(Keys.Enter); gc.CreatePdf_WOP(orderNumber, "Address Search", driver, "MO", "Saint Louis"); //multi parecl driver.SwitchTo().DefaultContent(); iframeElement1 = driver.FindElement(By.XPath("/html/frameset/frameset/frame[2]")); driver.SwitchTo().Frame(iframeElement1); Thread.Sleep(3000); string count = driver.FindElement(By.XPath("//*[@id='labelTotalRows']")).Text.Trim(); if (count != "1 Record Found") { Multi_Parcel_Search(orderNumber); driver.Quit(); return("MultiParcel"); } try { //No Data Found string nodata = driver.FindElement(By.XPath("//*[@id='panelData']")).Text; if (nodata.Contains("No records were found")) { HttpContext.Current.Session["Nodata_StLouis"] = "Yes"; driver.Quit(); return("No Data Found"); } } catch { } } else if (searchType == "parcel") { driver.Navigate().GoToUrl("http://revenue.stlouisco.com/IAS/"); //find ifram using xpath IWebElement iframeElement = driver.FindElement(By.XPath("/html/frameset/frameset/frame[1]")); //now use the switch command driver.SwitchTo().Frame(iframeElement); Thread.Sleep(3000); driver.FindElement(By.XPath("//*[@id='tboxLocatorNum']")).SendKeys(parcelNumber); driver.FindElement(By.XPath("//*[@id='butFind']")).SendKeys(Keys.Enter); gc.CreatePdf(orderNumber, parcelNumber, "Parcel search", driver, "MO", "Saint Louis"); driver.SwitchTo().DefaultContent(); iframeElement1 = driver.FindElement(By.XPath("/html/frameset/frameset/frame[2]")); driver.SwitchTo().Frame(iframeElement1); try { //No Data Found string nodata = driver.FindElement(By.XPath("//*[@id='panelData']")).Text; if (nodata.Contains("No records were found")) { HttpContext.Current.Session["Nodata_StLouis"] = "Yes"; driver.Quit(); return("No Data Found"); } } catch { } } else if (searchType == "ownername") { driver.Navigate().GoToUrl("http://revenue.stlouisco.com/IAS/"); //find ifram using xpath IWebElement iframeElement = driver.FindElement(By.Name("SearchInput")); //now use the switch command driver.SwitchTo().Frame(iframeElement); Thread.Sleep(3000); driver.FindElement(By.Id("rbutName")).Click(); Thread.Sleep(3000); string firstname = "", lastname = ""; if (ownername.Contains(" ")) { string[] name = ownername.Split(' '); firstname = name[0]; lastname = name[1]; driver.FindElement(By.XPath("//*[@id='tboxLastName']")).SendKeys(firstname); driver.FindElement(By.XPath("//*[@id='tboxFirstName']")).SendKeys(lastname); driver.FindElement(By.XPath("//*[@id='butFind']")).SendKeys(Keys.Enter); } else { driver.FindElement(By.XPath("//*[@id='tboxLastName']")).SendKeys(ownername); driver.FindElement(By.XPath("//*[@id='butFind']")).SendKeys(Keys.Enter); } gc.CreatePdf_WOP(orderNumber, "Owner Search", driver, "MO", "Saint Louis"); driver.SwitchTo().DefaultContent(); iframeElement1 = driver.FindElement(By.XPath("/html/frameset/frameset/frame[2]")); driver.SwitchTo().Frame(iframeElement1); Thread.Sleep(3000); try { string count = driver.FindElement(By.XPath("//*[@id='labelTotalRows']")).Text.Trim(); string getcount = WebDriverTest.Before(count, "Record Found").Trim(); int igetcount = Convert.ToInt16(getcount); if (igetcount <= 10) { if (count != "1 Record Found") { Multi_Parcel_Search(orderNumber); driver.Quit(); return("MultiParcel"); } } else { HttpContext.Current.Session["multiparcel_StLouis_count"] = "Maximum"; return("Maximum"); } } catch { } try { string count = driver.FindElement(By.XPath("//*[@id='labelTotalRows']")).Text.Trim(); string getcount = WebDriverTest.Before(count, "Records Found").Trim(); int igetcount = Convert.ToInt16(getcount); if (igetcount <= 10) { if (count != "1 Records Found") { Multi_Parcel_Search(orderNumber); driver.Quit(); return("MultiParcel"); } } else { HttpContext.Current.Session["multiparcel_StLouis_count"] = "Maximum"; return("Maximum"); } } catch { } try { //No Data Found string nodata = driver.FindElement(By.XPath("//*[@id='panelData']")).Text; if (nodata.Contains("No records were found")) { HttpContext.Current.Session["Nodata_StLouis"] = "Yes"; driver.Quit(); return("No Data Found"); } } catch { } } //Thread.Sleep(3000); //driver.SwitchTo().DefaultContent(); //iframeElement1 = driver.FindElement(By.XPath("/html/frameset/frameset/frame[2]")); //driver.SwitchTo().Frame(iframeElement1); driver.FindElement(By.XPath("/html/body/form/div[3]/center/table/tbody/tr[3]/td/table/tbody/tr[2]/td[3]/img")).Click(); driver.SwitchTo().DefaultContent(); Thread.Sleep(1000); //owner ship and legal information // Property Details Table. IWebElement iframeElement2 = driver.FindElement(By.XPath("/html/frameset/frame")); driver.SwitchTo().Frame(iframeElement2); Thread.Sleep(3000); //assessment details locator_no = driver.FindElement(By.XPath("//*[@id='ctl00_MainContent_OwnLeg_labLocatorNum']")).Text; int k = 0, j = 0; IWebElement TBAssessment = driver.FindElement(By.XPath("/html/body/table/tbody/tr[2]/td/table/tbody/tr[3]/td/form/table/tbody/tr/td[2]/div[3]/div[4]/div[2]/div[1]/div[2]/table/tbody")); IList <IWebElement> TRAssessment = TBAssessment.FindElements(By.TagName("tr")); IList <IWebElement> TDAssessment; foreach (IWebElement row1 in TRAssessment) { TDAssessment = row1.FindElements(By.TagName("td")); if (TDAssessment.Count != 0 && !row1.Text.Contains("Appraised Values") && !row1.Text.Contains("Year")) { try { //click expnad the year IList <IWebElement> expand = TBAssessment.FindElements(By.XPath("//tr[contains(@id,'trAsmt')]/td[1]/img")); foreach (IWebElement exe in expand) { if (j > 0 && j < 3) { IJavaScriptExecutor js = driver as IJavaScriptExecutor; js.ExecuteScript("arguments[0].click();", exe); Thread.Sleep(1000); } j++; } } catch { } //store the values IList <IWebElement> residential_values = TBAssessment.FindElements(By.XPath("//tr[contains(@id,'trAsmt')]")); foreach (IWebElement rv in residential_values) { try { if (k > 0 && k < 4) { //insert details TDAssessment = rv.FindElements(By.TagName("td")); string assessment_details = TDAssessment[1].Text.Trim() + "~" + TDAssessment[3].Text.Trim() + "~" + TDAssessment[4].Text.Trim() + "~" + TDAssessment[5].Text.Trim() + "~" + TDAssessment[7].Text.Trim() + "~" + TDAssessment[8].Text.Trim() + "~" + TDAssessment[9].Text.Trim(); gc.insert_date(orderNumber, locator_no, 23, assessment_details, 1, DateTime.Now); } k++; } catch (Exception e) { } } gc.CreatePdf(orderNumber, locator_no, "Assessment Details", driver, "MO", "Saint Louis"); } } // Property Details Table. owner_name = driver.FindElement(By.XPath("//*[@id='ctl00_MainContent_OwnLeg_labOwnerName']")).Text; taxing_address = driver.FindElement(By.XPath("//*[@id='ctl00_MainContent_OwnLeg_labTaxAddr']")).Text; city_name = driver.FindElement(By.XPath("//*[@id='ctl00_MainContent_OwnLeg_labCityName']")).Text; subdivison_name = driver.FindElement(By.XPath("//*[@id='ctl00_MainContent_OwnLeg_labSubdivisionName']")).Text; legal_description = driver.FindElement(By.XPath("//*[@id='ctl00_MainContent_OwnLeg_labLegalDesc']")).Text; driver.FindElement(By.ClassName("RevDeptContentLink")).SendKeys(Keys.Enter); Thread.Sleep(3000); gc.CreatePdf(orderNumber, locator_no, "PropertyDetails", driver, "MO", "Saint Louis"); Thread.Sleep(2000); try { year_built = driver.FindElement(By.XPath("//*[@id='ctl00_MainContent_DwellingDataRes_labYearBuilt']")).Text; } catch { } string property_details = owner_name + "~" + taxing_address + "~" + city_name + "~" + subdivison_name + "~" + legal_description + "~" + year_built; if (property_details.Contains("\r\n")) { property_details = property_details.Replace("\r\n", ""); gc.insert_date(orderNumber, locator_no, 22, property_details, 1, DateTime.Now); //db.ExecuteQuery("insert into data_value_master (Order_no,parcel_no,Data_Field_Text_Id,Data_Field_value,Is_Table) values ('" + orderNumber + "','" + multirowTD[0].Text.Trim() + "',19 ,'" + multi + "',1)"); } AssessmentTime = DateTime.Now.ToString("HH:mm:ss"); Thread.Sleep(2000); //Tax amount due driver.FindElement(By.XPath("//*[@id='ctl00_LeftMargin_MarginLinks_aTaxDue']")).SendKeys(Keys.Enter); Thread.Sleep(3000); //need to add tax authority try { IWebElement TBTaxDue = driver.FindElement(By.XPath("/html/body/table/tbody/tr[2]/td/table/tbody/tr[3]/td/form/table/tbody/tr/td[2]/div[5]/div[2]/div[1]/table/tbody/tr[2]/td/table/tbody")); IList <IWebElement> TRTaxDue = TBTaxDue.FindElements(By.TagName("tr")); IList <IWebElement> TDTaxDue; int i = 0; int count = TRTaxDue.Count; //if condition used for display two tables foreach (IWebElement row1 in TRTaxDue) { if (!row1.Text.Contains("Locator Number") && !row1.Text.Contains("Tax Year")) { TDTaxDue = row1.FindElements(By.TagName("td")); int TDcount = TDTaxDue.Count(); if (TDcount == 8) { //insert details string Tax_details = TDTaxDue[0].Text.Trim() + "~" + TDTaxDue[1].Text.Trim() + "~" + TDTaxDue[2].Text.Trim() + "~" + TDTaxDue[3].Text.Trim() + "~" + TDTaxDue[4].Text.Trim() + "~" + TDTaxDue[5].Text.Trim() + "~" + TDTaxDue[6].Text.Trim() + "~" + TDTaxDue[7].Text.Trim() + "~" + "-" + "~" + "-"; gc.insert_date(orderNumber, locator_no, 24, Tax_details, 1, DateTime.Now); } if (TDcount == 6 || TDcount == 2) { if (i < count - 3) { //insert details string Tax_details = TDTaxDue[0].Text.Trim() + "~" + TDTaxDue[1].Text.Trim() + "~" + TDTaxDue[2].Text.Trim() + "~" + TDTaxDue[3].Text.Trim() + "~" + "-" + "~" + "-" + "~" + "-" + "~" + "-" + "~" + TDTaxDue[4].Text.Trim() + "~" + TDTaxDue[5].Text.Trim(); gc.insert_date(orderNumber, locator_no, 24, Tax_details, 1, DateTime.Now); } if (i == count - 3) { //insert details string Tax_details = TDTaxDue[0].Text.Trim() + "~" + "-" + "~" + "-" + "~" + "-" + "~" + "-" + "~" + "-" + "~" + "-" + "~" + "-" + "~" + "-" + "~" + TDTaxDue[1].Text.Trim(); gc.insert_date(orderNumber, locator_no, 24, Tax_details, 1, DateTime.Now); } i++; } } } gc.CreatePdf(orderNumber, locator_no, "tax Details", driver, "MO", "Saint Louis"); } catch (Exception e) { } driver.Navigate().Back(); Thread.Sleep(3000); //Tax History driver.SwitchTo().DefaultContent(); Thread.Sleep(3000); IWebElement iframeElement21 = driver.FindElement(By.XPath("/html/frameset/frame")); driver.SwitchTo().Frame(iframeElement21); Thread.Sleep(3000); driver.FindElement(By.Id("ctl00_LeftMargin_MarginLinks_aTaxHistory")).SendKeys(Keys.Enter); Thread.Sleep(3000); locator_num = driver.FindElement(By.XPath("//*[@id='ctl00_MainContent_RealEstateHistoryData1_labelLocatorNum']")).Text; owner_name = driver.FindElement(By.XPath("//*[@id='ctl00_MainContent_RealEstateHistoryData1_labelOwner']")).Text; prop_location = driver.FindElement(By.XPath("//*[@id='ctl00_MainContent_RealEstateHistoryData1_labelLocation']")).Text; IWebElement TBTax_History = driver.FindElement(By.XPath("//*[@id='ctl00_MainContent_RealEstateHistoryData1_tableTaxHistory']/tbody")); IList <IWebElement> TRTax_History = TBTax_History.FindElements(By.TagName("tr")); IList <IWebElement> TDTax_History; int a = 0; foreach (IWebElement row1 in TRTax_History) { if (!row1.Text.Contains("Tax Year")) { if (a < 3) { TDTax_History = row1.FindElements(By.TagName("td")); //insert details string TaxHistory_details = owner_name + "~" + prop_location + "~" + TDTax_History[0].Text.Trim() + "~" + TDTax_History[2].Text.Trim() + "~" + TDTax_History[3].Text.Trim() + "~" + TDTax_History[4].Text.Trim() + "~" + TDTax_History[5].Text.Trim() + "~" + TDTax_History[6].Text.Trim() + "~" + TDTax_History[7].Text.Trim() + "~" + tax_authority + "~" + "-"; gc.insert_date(orderNumber, locator_num, 25, TaxHistory_details, 1, DateTime.Now); } a++; } } gc.CreatePdf(orderNumber, locator_no, "Tax_History", driver, "MO", "Saint Louis"); TaxTime = DateTime.Now.ToString("HH:mm:ss"); LastEndTime = DateTime.Now.ToString("HH:mm:ss"); gc.insert_TakenTime(orderNumber, "MO", "Saint Louis", StartTime, AssessmentTime, TaxTime, CitytaxTime, LastEndTime); driver.Quit(); gc.mergpdf(orderNumber, "MO", "Saint Louis"); return("Data Inserted Successfully"); } catch (Exception ex) { driver.Quit(); GlobalClass.LogError(ex, orderNumber); throw ex; } } }
public void switchTo(By selector) { driver.SwitchTo().Frame(driver.FindElement(selector)); }
public static IWebDriver LastWindow(this IWebDriver driver) => driver.SwitchTo().Window(driver.WindowHandles.Last());
/// <summary> /// Instructs the driver to send future commands to a different frame or window. /// </summary> /// <returns> /// An <see cref="ITargetLocator"/> object which can be used to select a frame or window. /// </returns> public ITargetLocator SwitchTo() { return(_driver.SwitchTo()); }
public string FTP_Cowlitz(string streetno, string direction, string streetname, string streettype, string parcelNumber, string ownername, string searchType, string orderNumber, string directParcel, string unitnumber) { GlobalClass.global_orderNo = orderNumber; HttpContext.Current.Session["orderNo"] = orderNumber; GlobalClass.global_parcelNo = parcelNumber; List <string> mcheck = new List <string>(); string StartTime = "", AssessmentTime = "", TaxTime = "", CitytaxTime = "", LastEndTime = ""; //driver = new c(); //driver = new PhantomJSDriver(); //var option = new ChromeOptions(); //option.AddArgument("No-Sandbox"); var driverService = PhantomJSDriverService.CreateDefaultService(); driverService.HideCommandPromptWindow = true; // using (driver = new ChromeDriver()) using (driver = new PhantomJSDriver()) { try { StartTime = DateTime.Now.ToString("HH:mm:ss"); driver.Navigate().GoToUrl("http://www.cowlitzinfo.net/applications/cowlitzassessorparcelsearch/Default.aspx"); Thread.Sleep(3000); if (searchType == "titleflex") { string address = ""; if (direction != "") { address = streetno + " " + streetname + " " + direction; } else { address = streetno + " " + streetname; } gc.TitleFlexSearch(orderNumber, parcelNumber, ownername, address.Trim(), "WA", "Cowlitz"); if ((HttpContext.Current.Session["TitleFlex_Search"] != null && HttpContext.Current.Session["TitleFlex_Search"].ToString() == "Yes")) { driver.Quit(); return("MultiParcel"); } else if (HttpContext.Current.Session["titleparcel"].ToString() == "") { HttpContext.Current.Session["Cowlitz_Zero"] = "Zero"; driver.Quit(); return("No Data Found"); } parcelNumber = HttpContext.Current.Session["titleparcel"].ToString().Replace("-", ""); searchType = "parcel"; } if (searchType == "address") { driver.FindElement(By.XPath("//*[@id='address_input_street_number']")).Click(); driver.FindElement(By.XPath("//*[@id='address_input_street_number']")).SendKeys(streetno); driver.FindElement(By.XPath("//*[@id='address_input_street_name']")).Click(); driver.FindElement(By.XPath("//*[@id='address_input_street_name']")).SendKeys(streetname); try { driver.FindElement(By.XPath("//*[@id='address_input_street_direction']")).SendKeys(direction); } catch { } gc.CreatePdf_WOP(orderNumber, "Address Search", driver, "WA", "Cowlitz"); driver.FindElement(By.Id("submit_input")).SendKeys(Keys.Enter); Thread.Sleep(12000); gc.CreatePdf_WOP(orderNumber, "Address Search Result", driver, "WA", "Cowlitz"); ChkMultiParcel = driver.FindElement(By.XPath("//*[@id='search-filter']/figure")).Text.Replace("\r\n", ""); if (ChkMultiParcel == "Search Results:1Sort By ") { driver.FindElement(By.XPath("//*[@id='properties_section']/div/a/div/div/div[2]/div/div[2]")).Click(); Thread.Sleep(10000); } else { try { int AddressmaxCheck = 0; IWebElement add_search = driver.FindElement(By.XPath("//*[@id='properties_section']/div")); IList <IWebElement> TRadd_search = add_search.FindElements(By.TagName("div")); IList <IWebElement> TDadd_search; foreach (IWebElement row in TRadd_search) { if (AddressmaxCheck <= 25) { string addrerss1 = row.GetAttribute("class"); if (addrerss1 == "info") { TDadd_search = row.FindElements(By.TagName("div")); if (TDadd_search.Count != 0) { parcelno = TDadd_search[0].Text; Pro_Id1 = TDadd_search[1].Text; Pro_Id1 = WebDriverTest.After(Pro_Id1, "Prop ID: "); } TDadd_search = row.FindElements(By.TagName("h3")); if (TDadd_search.Count != 0) { fulladdress = TDadd_search[0].Text; } multi_details = Pro_Id1 + "~" + fulladdress; gc.insert_date(orderNumber, parcelno, 815, multi_details, 1, DateTime.Now); } AddressmaxCheck++; } } if (TRadd_search.Count < 27) { gc.CreatePdf_WOP(orderNumber, "Multi Address search result", driver, "WA", "Cowlitz"); HttpContext.Current.Session["multiparcel_CowlitzWA"] = "Yes"; driver.Quit(); return("MultiParcel"); } if (TRadd_search.Count >= 27) { HttpContext.Current.Session["multiParcel_CowlitzWA_Multicount"] = "Maximum"; driver.Quit(); return("Maximum"); } } catch { } } try { string Nodata = driver.FindElement(By.XPath("//*[@id='search-filter']/figure/h3")).Text; if (Nodata.Contains("Search Results:")) { HttpContext.Current.Session["Cowlitz_Zero"] = "Zero"; driver.Quit(); return("No Data Found"); } } catch { } //IWebElement add_search = driver.FindElement(By.XPath("//*[@id='ctl00_cphParcelSearch_gvSearchResults']/tbody")); //IList<IWebElement> TRadd_search = add_search.FindElements(By.TagName("tr")); //IList<IWebElement> TDadd_search; //foreach (IWebElement row in TRadd_search) //{ // TDadd_search = row.FindElements(By.TagName("td")); // if (TRadd_search.Count > 2 && TDadd_search.Count != 0) // { // string straccount_no = TDadd_search[1].Text; // string parcel_no = TDadd_search[9].Text; // string Address_Details = TDadd_search[2].Text + " " + TDadd_search[3].Text + " " + TDadd_search[4].Text + " " + TDadd_search[5].Text + " " + TDadd_search[6].Text + " " + TDadd_search[7].Text; // gc.insert_date(orderNumber, parcel_no, 815, straccount_no + "~" + Address_Details, 1, DateTime.Now); // } // if (TRadd_search.Count == 2) // { // driver.FindElement(By.XPath("//*[@id='ctl00_cphParcelSearch_gvSearchResults']/tbody/tr[2]/td[1]/a")).SendKeys(Keys.Enter); // Thread.Sleep(5000); // break; // } //} //if (TRadd_search.Count < 27 && TRadd_search.Count > 2) //{ // gc.CreatePdf_WOP(orderNumber, "Multi Address search result", driver, "WA", "Cowlitz"); // HttpContext.Current.Session["multiparcel_CowlitzWA"] = "Yes"; // driver.Quit(); // return "MultiParcel"; //} //if (TRadd_search.Count >= 27 && TRadd_search.Count > 2) //{ // HttpContext.Current.Session["multiParcel_CowlitzWA_Multicount"] = "Maximum"; // driver.Quit(); // return "Maximum"; //} } if (searchType == "parcel") { driver.FindElement(By.Id("radSearchType_1")).Click(); Thread.Sleep(2000); driver.FindElement(By.XPath("//*[@id='parcel_input']")).Click(); driver.FindElement(By.XPath("//*[@id='parcel_input']")).SendKeys(parcelNumber); gc.CreatePdf(orderNumber, parcelNumber, "Parcel search", driver, "WA", "Cowlitz"); driver.FindElement(By.XPath("//*[@id='submit_input']")).SendKeys(Keys.Enter); gc.CreatePdf(orderNumber, parcelNumber, "Parcel search result", driver, "WA", "Cowlitz"); Thread.Sleep(2000); driver.FindElement(By.XPath("//*[@id='properties_section']/div/div/div/div[1]/a")).SendKeys(Keys.Enter); Thread.Sleep(12000); try { string Nodata = driver.FindElement(By.XPath("//*[@id='search-filter']/figure/h3")).Text; if (Nodata.Contains("Search Results:")) { HttpContext.Current.Session["Cowlitz_Zero"] = "Zero"; driver.Quit(); return("No Data Found"); } } catch { } } try { // Property Details Parcel_Id = driver.FindElement(By.XPath("//*[@id='general_property_info']/dl/dd[1]")).Text; Pro_Id = driver.FindElement(By.XPath("//*[@id='general_property_info']/dl/dd[2]")).Text; Jurisdiction = driver.FindElement(By.XPath("//*[@id='general_property_info']/dl/dd[3]")).Text; Acres = driver.FindElement(By.XPath("//*[@id='general_property_info']/dl/dd[4]")).Text; Township = driver.FindElement(By.XPath("//*[@id='general_property_info']/dl/dd[7]")).Text; Pro_Use = driver.FindElement(By.XPath("//*[@id='general_property_info']/dl/dd[8]")).Text; Neighberhood = driver.FindElement(By.XPath("//*[@id='general_property_info']/dl/dd[9]")).Text; Tax_Code = driver.FindElement(By.XPath("//*[@id='general_property_info']/dl/dd[10]")).Text; Exemptions = driver.FindElement(By.XPath("//*[@id='general_property_info']/dl/dd[11]")).Text; Leavy_Rate = driver.FindElement(By.XPath("//*[@id='general_property_info']/dl/dt[12]")).Text; Leavy_Rate = WebDriverTest.Between(Leavy_Rate, "Rate = ", ")"); Primary_Owner = driver.FindElement(By.XPath("//*[@id='owner_info']/dl/dd[1]")).Text; Address1 = driver.FindElement(By.XPath("//*[@id='owner_info']/dl/dd[2]")).Text; Address2 = driver.FindElement(By.XPath("//*[@id='owner_info']/dl/dd[3]")).Text; Address = Address1 + " " + Address2; Year_Built = driver.FindElement(By.XPath("//*[@id='property_detail_info']/dl/dd[1]")).Text; gc.CreatePdf(orderNumber, parcelNumber, "Property Details", driver, "WA", "Cowlitz"); propertydetails = Primary_Owner + "~" + Address + "~" + Pro_Id + "~" + Jurisdiction + "~" + Acres + "~" + Township + "~" + Pro_Use + "~" + Neighberhood + "~" + Tax_Code + "~" + Exemptions + "~" + Leavy_Rate + "~" + Year_Built; gc.insert_date(orderNumber, Parcel_Id, 763, propertydetails, 1, DateTime.Now); //Assessment Details IWebElement AssessmentTB = driver.FindElement(By.XPath("//*[@id='assess_value_table']/table/tbody")); IList <IWebElement> AssessmentTR = AssessmentTB.FindElements(By.TagName("tr")); IList <IWebElement> AssessmentTD; foreach (IWebElement Assessment in AssessmentTR) { AssessmentTD = Assessment.FindElements(By.TagName("td")); if (AssessmentTD.Count != 0) { Asse_Year = AssessmentTD[0].Text; TaxPay_year = AssessmentTD[1].Text; Land_Value = AssessmentTD[2].Text; Impr_Value = AssessmentTD[3].Text; Totl_AsseValue = AssessmentTD[4].Text; Notice_Value = AssessmentTD[5].Text; Assessment_details = Asse_Year + "~" + TaxPay_year + "~" + Land_Value + "~" + Impr_Value + "~" + Totl_AsseValue + "~" + Notice_Value; gc.insert_date(orderNumber, Parcel_Id, 765, Assessment_details, 1, DateTime.Now); } } gc.CreatePdf(orderNumber, parcelNumber, "Assessment Details", driver, "WA", "Cowlitz"); //Tax Payment Details IWebElement TaxPaymentTB = driver.FindElement(By.XPath("//*[@id='tax_value_table']/table/tbody")); IList <IWebElement> TaxPaymentTR = TaxPaymentTB.FindElements(By.TagName("tr")); IList <IWebElement> TaxPaymentTD; foreach (IWebElement TaxPayment in TaxPaymentTR) { TaxPaymentTD = TaxPayment.FindElements(By.TagName("td")); if (TaxPaymentTD.Count != 0) { Tax_Year = TaxPaymentTD[0].Text; Stmt_Id = TaxPaymentTD[1].Text; Taxes = TaxPaymentTD[2].Text; Assesments = TaxPaymentTD[3].Text; Totl_Charges = TaxPaymentTD[4].Text; Totl_Paid = TaxPaymentTD[5].Text; Totl_Due = TaxPaymentTD[6].Text; TaxPayment_details = Tax_Year + "~" + Stmt_Id + "~" + Taxes + "~" + Assesments + "~" + Totl_Charges + "~" + Totl_Paid + "~" + Totl_Due; gc.insert_date(orderNumber, Parcel_Id, 773, TaxPayment_details, 1, DateTime.Now); } } //Pdf download IWebElement Receipttable = driver.FindElement(By.XPath("//*[@id='tax_value_table']/table/tbody")); IList <IWebElement> ReceipttableRow = Receipttable.FindElements(By.TagName("tr")); int rowcount = ReceipttableRow.Count; for (int p = 1; p <= rowcount; p++) { if (p < 4) { string Parent_Window1 = driver.CurrentWindowHandle; driver.FindElement(By.XPath("//*[@id='tax_value_table']/table/tbody/tr[" + p + "]/td[10]/a")).Click(); Thread.Sleep(10000); System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; driver.SwitchTo().Window(driver.WindowHandles.Last()); Thread.Sleep(4000); try { var chromeOptions = new ChromeOptions(); var downloadDirectory = ConfigurationManager.AppSettings["AutoPdf"]; chromeOptions.AddUserProfilePreference("download.default_directory", downloadDirectory); chromeOptions.AddUserProfilePreference("download.prompt_for_download", false); chromeOptions.AddUserProfilePreference("disable-popup-blocking", true); chromeOptions.AddUserProfilePreference("plugins.always_open_pdf_externally", true); var chDriver = new ChromeDriver(chromeOptions); Array.ForEach(Directory.GetFiles(@downloadDirectory), File.Delete); chDriver.Navigate().GoToUrl(driver.Url); Thread.Sleep(8000); //PopUp try { chDriver.SwitchTo().Alert().Accept(); Thread.Sleep(1000); } catch { } IWebElement ISpan12 = chDriver.FindElement(By.Id("PdfDialog_PdfDownloadLink")); IJavaScriptExecutor js12 = chDriver as IJavaScriptExecutor; js12.ExecuteScript("arguments[0].click();", ISpan12); Thread.Sleep(5000); chDriver.FindElement(By.Id("PdfDialog_download")).Click(); Thread.Sleep(20000); string fileName1 = latestfilename(); Thread.Sleep(2000); gc.AutoDownloadFile(orderNumber, Parcel_Id, "Cowlitz", "WA", fileName1); chDriver.Quit(); } catch { } driver.SwitchTo().Window(Parent_Window1); Thread.Sleep(2000); } } //Tax Authority driver.FindElement(By.XPath("//*[@id='top']/nav/ul/li[2]/a")).Click(); Thread.Sleep(2000); //driver.SwitchTo().Window(driver.WindowHandles.Last()); //Thread.Sleep(2000); Tax_Authority = driver.FindElement(By.XPath("//*[@id='address']")).Text; Tax_Authority = WebDriverTest.Between(Tax_Authority, "Address", "Option 1").Replace("\r\n", ""); Taxauthority_Details = Tax_Authority; gc.insert_date(orderNumber, Parcel_Id, 780, Taxauthority_Details, 1, DateTime.Now); } catch { } //IWebElement parcel_id = driver.FindElement(By.Id("ctl00_cphParcelSearch_txtParcel")); //string Parcel_Id = parcel_id.GetAttribute("value"); //gc.CreatePdf(orderNumber, Parcel_Id, "Property Details", driver, "WA", "Cowlitz"); //IWebElement account_no = driver.FindElement(By.XPath("//*[@id='ctl00_cphParcelSearch_lnkAccount']")); //string Account_No = account_no.Text; //IWebElement jurisdiction = driver.FindElement(By.XPath("//*[@id='ctl00_cphParcelSearch_txtJurisdiction']")); //string Jurisdiction = jurisdiction.GetAttribute("value"); //IWebElement owner_name = driver.FindElement(By.XPath("//*[@id='ctl00_cphParcelSearch_txtOwner']")); //string Owner_Name = owner_name.GetAttribute("value"); //IWebElement mailing_address1 = driver.FindElement(By.XPath("//*[@id='ctl00_cphParcelSearch_txtAddress1']")); //string Mailing_Address1 = mailing_address1.GetAttribute("value"); //IWebElement mailing_address2 = driver.FindElement(By.XPath("//*[@id='ctl00_cphParcelSearch_txtAddress2']")); //string Mailing_Address2 = mailing_address2.GetAttribute("value"); //IWebElement tax_district = driver.FindElement(By.XPath("//*[@id='ctl00_cphParcelSearch_lnkTaxDistrict']")); //string Tax_District = tax_district.Text; //IWebElement neighbor_hood = driver.FindElement(By.XPath("//*[@id='ctl00_cphParcelSearch_txtNeighborhood']")); //string Neighbor_Hood = neighbor_hood.GetAttribute("value"); //IWebElement levy_rate = driver.FindElement(By.XPath("//*[@id='ctl00_cphParcelSearch_txtLevyRate']")); //string Levy_Rate = levy_rate.GetAttribute("value"); //IWebElement legal_desc = driver.FindElement(By.XPath("//*[@id='ctl00_cphParcelSearch_txtLegalDescr']")); //string Legal_Desc = legal_desc.GetAttribute("value"); //IWebElement property_address = driver.FindElement(By.XPath("//*[@id='ctl00_cphParcelSearch_txtSitus']")); //string Property_Address = property_address.GetAttribute("value"); //string propertydetails = Account_No + "~" + Jurisdiction + "~" + Owner_Name + "~" + Mailing_Address1 + Mailing_Address2 + "~" + Legal_Desc + "~" + Property_Address + "~" + Tax_District + "~" + Neighbor_Hood + "~" + Levy_Rate; //gc.insert_date(orderNumber, Parcel_Id, 763, propertydetails, 1, DateTime.Now); // Assessment Details table //IWebElement tbmulti = driver.FindElement(By.XPath("//*[@id='ctl00_cphParcelSearch_tblAssessmentInformation']/tbody")); //IList<IWebElement> TRmulti = tbmulti.FindElements(By.TagName("tr")); //IList<IWebElement> TDmulti; //foreach (IWebElement row in TRmulti) //{ // TDmulti = row.FindElements(By.TagName("td")); // if (TDmulti.Count == 7 && !row.Text.Contains("Assessment\r\nYear")) // { // string multi1 = TDmulti[0].Text + "~" + TDmulti[1].Text + "~" + TDmulti[2].Text + "~" + TDmulti[3].Text + "~" + TDmulti[4].Text + "~" + TDmulti[5].Text; // gc.insert_date(orderNumber, Parcel_Id, 765, multi1, 1, DateTime.Now); // } //} // Payment History Table //string currenturl = ""; //driver.FindElement(By.XPath("//*[@id='ctl00_cphParcelSearch_lnkbtnTransactionHistoricalValues']")).SendKeys(Keys.Enter); //Thread.Sleep(5000); //gc.CreatePdf(orderNumber, Parcel_Id, "TaxPaymentHistory", driver, "WA", "Cowlitz"); //try //{ // currenturl = driver.CurrentWindowHandle; // driver.FindElement(By.XPath("//*[@id='ctl00_cphParcelSearch_tblTransactionValues']/tbody/tr[3]/td[9]/a")).SendKeys(Keys.Enter); // Thread.Sleep(5000); // driver.SwitchTo().Window(driver.WindowHandles.Last()); // IWebElement tbDelinq = driver.FindElement(By.XPath("//*[@id='ctl00_cphParcelSearch_tblTrxDetail']/tbody")); // IList<IWebElement> TRDelinq = tbDelinq.FindElements(By.TagName("tr")); // IList<IWebElement> TDDelinq; // foreach (IWebElement row in TRDelinq) // { // TDDelinq = row.FindElements(By.TagName("td")); // if (TDDelinq.Count == 5 && !row.Text.Contains("Assess\r\nYear") && !row.Text.Contains("Total Tax")) // { // string Delinq = TDDelinq[0].Text + "~" + TDDelinq[1].Text + "~" + TDDelinq[2].Text + "~" + TDDelinq[3].Text + "~" + TDDelinq[4].Text; // gc.insert_date(orderNumber, Parcel_Id, 817, Delinq, 1, DateTime.Now); // } // if (TDDelinq.Count == 5 && row.Text.Contains("Total Tax") && !row.Text.Contains("Assess\r\nYear")) // { // string Delinq = TDDelinq[3].Text + "~" + "~" + "~" + "~" + TDDelinq[4].Text; // gc.insert_date(orderNumber, Parcel_Id, 817, Delinq, 1, DateTime.Now); // } // } //} //catch (Exception ex) //{ //} //driver.SwitchTo().Window(currenturl); //List<string> TaxYearDetails = new List<string>(); //List<string> TaxBillDetails = new List<string>(); //IWebElement tbmulti1 = driver.FindElement(By.XPath("//*[@id='ctl00_cphParcelSearch_tblTransactionValues']/tbody")); //IList<IWebElement> TRmulti1 = tbmulti1.FindElements(By.TagName("tr")); //IList<IWebElement> TDmulti1; //foreach (IWebElement row in TRmulti1) //{ // TDmulti1 = row.FindElements(By.TagName("td")); // if ((TDmulti1.Count == 9 || TDmulti1.Count == 8) && !(row.Text.Contains("Assessment\r\nYear"))) // { // string multi2 = TDmulti1[0].Text + "~" + TDmulti1[1].Text + "~" + TDmulti1[2].Text + "~" + TDmulti1[3].Text + "~" + TDmulti1[4].Text + "~" + TDmulti1[5].Text + "~" + TDmulti1[6].Text; // gc.insert_date(orderNumber, Parcel_Id, 773, multi2, 1, DateTime.Now); // if (TDmulti1.Count != 0 && TaxYearDetails.Count < 3) // { // IWebElement IYear = TDmulti1[1].FindElement(By.TagName("a")); // string strYear = IYear.GetAttribute("href"); // TaxYearDetails.Add(strYear); // } // if (TDmulti1.Count != 0 && TaxBillDetails.Count < 3) // { // IWebElement ITaxBill = TDmulti1[7].FindElement(By.TagName("a")); // string strTaxBill = ITaxBill.GetAttribute("href"); // TaxBillDetails.Add(strTaxBill); // } // } //} //int k = 0, l = 0; //foreach (string yearURL in TaxYearDetails) //{ // driver.Navigate().GoToUrl(yearURL); // gc.CreatePdf(orderNumber, Parcel_Id, "Tax Detail" + k, driver, "WA", "Cowlitz"); // k++; // try // { // IWebElement tbmulti2 = driver.FindElement(By.XPath("//*[@id='ctl00_cphParcelSearch_tblTrxDetail']/tbody")); // IList<IWebElement> TRmulti2 = tbmulti2.FindElements(By.TagName("tr")); // IList<IWebElement> TDmulti2; // foreach (IWebElement Tax in TRmulti2) // { // TDmulti2 = Tax.FindElements(By.TagName("td")); // if ((TDmulti2.Count == 6) && !Tax.Text.Contains("Tax Detail") && !Tax.Text.Contains("Account")) // { // string taxing_authority = "Cowlitz County Treasurer 207 4th Ave. N.Kelso, WA 98626"; // string multi3 = TDmulti2[0].Text + "~" + TDmulti2[1].Text + "~" + TDmulti2[2].Text + "~" + TDmulti2[3].Text + "~" + TDmulti2[4].Text + "~" + TDmulti2[5].Text; // string multi4 = multi3 + "~" + taxing_authority; // gc.insert_date(orderNumber, Parcel_Id, 780, multi4, 1, DateTime.Now); // } // } // } // catch { } //} //int j = 0; //foreach (string billURL in TaxBillDetails) //{ // driver.Navigate().GoToUrl(billURL); // IWebElement Ibill = driver.FindElement(By.XPath("//*[@id='PageToolbar']")); // IList<IWebElement> TRmulti5 = Ibill.FindElements(By.TagName("a")); // IList<IWebElement> TDmulti5; // foreach (IWebElement Tax in TRmulti5) // { // TDmulti5 = Tax.FindElements(By.TagName("img")); // if (TDmulti5.Count != 0) // { // IWebElement itaxbill = TDmulti5[0]; // string strtaxbill = itaxbill.GetAttribute("id"); // if (strtaxbill.Contains("FullScreenButton")) // { // IJavaScriptExecutor js = driver as IJavaScriptExecutor; // js.ExecuteScript("arguments[0].click();", itaxbill); // Thread.Sleep(6000); // } // } // } // gc.CreatePdf(orderNumber, Parcel_Id, "TaxBill Download" + j, driver, "WA", "Cowlitz"); // try // { // //gc.downloadfile(billURL, orderNumber, Parcel_Id, "Paid Bill" + j, "WA", "Cowlitz"); // } // catch { } // j++; //} LastEndTime = DateTime.Now.ToString("HH:mm:ss"); gc.insert_TakenTime(orderNumber, "WA", "Cowlitz", StartTime, AssessmentTime, TaxTime, CitytaxTime, LastEndTime); driver.Quit(); gc.mergpdf(orderNumber, "WA", "Cowlitz"); return("Data Inserted Successfully"); } catch (Exception ex) { driver.Quit(); GlobalClass.LogError(ex, orderNumber); throw ex; } } }
public void VisitTicketLinksTab(TimeTask task) { var url = string.Format(ConfigurationManager.AppSettings["ResourcePage"], this.TicketId); //driver.Navigate().Refresh(); //driver.Manage().Timeouts().PageLoad = TimeSpan.FromSeconds(60); driver.Navigate().GoToUrl(url); //driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(20); //Console.WriteLine("source"); //Console.WriteLine(driver.PageSource); var wait = new WebDriverWait(driver, TimeSpan.FromSeconds(60)); wait.Until(d => d.FindElement(By.ClassName("TitleText")).GetAttribute("innerHTML").Contains(this.TicketId.ToString())); Console.WriteLine("working id {0}", driver.FindElement(By.ClassName("TitleText")).GetAttribute("innerHTML")); var labelHolders = driver.FindElements(By.ClassName("ValueLabelHolder")); string TMString = ""; string cycle = ""; //0 es Ticket Falla para ticket de fallas var ticketType = labelHolders[1].Text; Console.WriteLine("Ticket type {0}", ticketType); if (ticketType == "Falla") //falla { TMString = labelHolders[9].Text; } else //solicitud { TMString = labelHolders[10].Text; } Console.WriteLine("TM is {0}", TMString); driver.FindElement(By.LinkText("Enlaces")).Click(); //relationship dropdown index is 1 var spans = driver.FindElements(By.CssSelector("span.DropdownArrow")); //DropdownArrowElement var dropDown = driver.FindElements(By.CssSelector("span.DropdownArrow"))[1]; dropDown.Click(); DelayHelper.Delay(driver, 10); // mouseover dijit_MenuItem_23_text id y 6 down Actions action = new Actions(driver); action.MoveToElement(driver.FindElement(By.Id("dijit_MenuItem_4_text"))).Perform(); driver.SwitchTo().ActiveElement().SendKeys(Keys.Down); driver.SwitchTo().ActiveElement().SendKeys(Keys.Down); driver.SwitchTo().ActiveElement().SendKeys(Keys.Down); driver.SwitchTo().ActiveElement().SendKeys(Keys.Down); driver.SwitchTo().ActiveElement().SendKeys(Keys.Down); driver.SwitchTo().ActiveElement().SendKeys(Keys.Down); wait = new WebDriverWait(driver, TimeSpan.FromSeconds(30)); wait.Until(ExpectedConditions.ElementToBeClickable(driver.FindElement(By.Id("dijit_MenuItem_9_text")))); var addchildren = driver.FindElement(By.Id("dijit_MenuItem_9_text")); addchildren.Click(); DelayHelper.Delay(driver, 20); //#com_ibm_team_workitem_web_ui_internal_view_layout_NameValueLayout_0 > table > tbody > tr:nth-child(3) > td.com-ibm-team-workitem-namevalue-value-td > span > select var selections = driver.FindElements(By.ClassName("selectSelect")); Console.WriteLine("nro:{0}", selections.Count); Console.WriteLine("nro:{0}", selections[0].Text); var selector = selections[0]; var selectElement = new SelectElement(selector); wait.Until(d => d.FindElements(By.ClassName("selectSelect")).Count == 2); Console.WriteLine(driver.FindElements(By.ClassName("selectSelect"))[1].GetAttribute("innerHTML")); wait.Until(d => new SelectElement(d.FindElements(By.ClassName("selectSelect"))[1]).Options.Count == 13); Console.WriteLine("done waiting for 13 options"); Console.WriteLine("*****Selecting tarea option******"); Console.WriteLine(driver.FindElements(By.ClassName("selectSelect"))[1].GetAttribute("innerHTML")); var selectOptions = new SelectElement(driver.FindElements(By.ClassName("selectSelect"))[1]); selectOptions.SelectByText("Tarea"); var wait2 = new WebDriverWait(driver, TimeSpan.FromSeconds(20)); wait2.Until(d => d.FindElement(By.ClassName("createItemLink")).Text == "Create Linked Tarea..."); driver.FindElement(By.ClassName("createItemLink")).Click(); var taskPage = new TaskPage(driver, TMString, task); taskPage.CreateTask2(); taskPage.UpdateTask(); }
private void PreCheckCurrentWindowHandle() { string found = null; try { found = webDriver.WindowHandles.Where(x => x == webDriver.CurrentWindowHandle).FirstOrDefault(); } catch { } if (found == null) { webDriver.SwitchTo().Window(webDriver.WindowHandles.Last()); } }
static void Main() { // select by Name //string url1 = "http://testing.todvachev.com/selectors/name/"; //open page with driver to select by Name //driver.Navigate().GoToUrl(url1); //IWebElement element = driver.FindElement(By.Name("myName")); //or to select by ID //string url2 = "http://testing.todvachev.com/selectors/id/"; //string ID = "testImage"; //driver.Navigate().GoToUrl(url2); //IWebElement element = driver.FindElement(By.Id(ID)); //or select by class name //string url3 = "http://testing.todvachev.com/selectors/class-name/"; //string className = "testClass"; //here we have selected a paragraph with text //driver.Navigate().GoToUrl(url3); //IWebElement element = driver.FindElement(By.ClassName(className)); //Console.WriteLine(element.Text); /*or select by CSS Path or XPath; CSS works faster than XPath, IE has poor support for XPath * string url4 = "http://testing.todvachev.com/selectors/css-path"; * //string cssPath = "#post-108 > div > figure > img"; //shows Selenium the path of HTML code * //If cssPath is not correct, NoSuchElementException * string cssPath = "#post-108 > div > fig > img"; * string xPath = "//*[@id=\"post-108\"]/div/figure/img"; * IWebDriver driver = new ChromeDriver(); * driver.Navigate().GoToUrl(url4); * //IWebElement cssPathElement = driver.FindElement(By.CssSelector(cssPath)); * IWebElement cssPathElement; * IWebElement xPathElement = driver.FindElement(By.XPath(xPath)); * try * { * cssPathElement = driver.FindElement(By.CssSelector(cssPath)); * if (cssPathElement.Displayed) * { GreenMessage("I can see the CSS Path element"); } } * catch (NoSuchElementException) * { RedMessage("Something went wrong"); } */ /* if (element.Displayed) * if (cssPathElement.Displayed) * { * //System.Console.WriteLine("Yes I can see the element"); or you can create methods to print message in different colors. * GreenMessage("Yes I can see the element"); * } else { * //System.Console.WriteLine("Something went wrong"); * RedMessage("Something went wrong"); * } * if (xPathElement.Displayed) * { * GreenMessage("Yes I can see the element"); * } else { * //System.Console.WriteLine("Something went wrong"); * RedMessage("Something went wrong"); * } * Thread.Sleep(3000); // create a pause of 3 seconds */ /*string url5 = "http://testing.todvachev.com/special-elements/text-input-field/"; * driver.Navigate().GoToUrl(url5); * textBox = driver.FindElement(By.Name("username")); * textBox.SendKeys("Test text"); * Thread.Sleep(3000); * textBox.Clear(); * Thread.Sleep(3000); */ /*string url6 = "http://testing.todvachev.com/special-elements/check-button-test-3/"; * string option = "1"; * driver.Navigate().GoToUrl(url6); * // if you are selecting the first checkbox * //checkBox = driver.FindElement(By.CssSelector("#post-33 > div > p:nth-child(8) > input[type=\"checkbox\"]:nth-child(1)")); * // if you are selecting the second checkbox * //checkBox = driver.FindElement(By.CssSelector("#post-33 > div > p:nth-child(8) > input[type=\"checkbox\"]:nth-child(3)")); * //if you have more than one selector, create a string called option with a number 1 and then the below code * checkBox = driver.FindElement(By.CssSelector("#post-33 > div > p:nth-child(8) > input[type=\"checkbox\"]:nth-child(" + option + ")")); * * //to check if the checkmark is placed on the checkbox use the value "checked" in GetAttribute method in if..else statement * if (checkBox.GetAttribute("checked") == "true") * { * Console.WriteLine("Checkbox is checked!"); * } else { Console.WriteLine("Not Checked!"); } * //to get the values of the checkbox * Console.WriteLine(checkBox.GetAttribute("value")); //will get value of first checkbox * option = "3"; //then reinitialise checkBox * checkBox = driver.FindElement(By.CssSelector("#post-33 > div > p:nth-child(8) > input[type=\"checkbox\"]:nth-child(" + option + ")")); * Console.WriteLine(checkBox.GetAttribute("value")); //will get value of second checkbox */ /*to place a check mark on a checkbox, need to investigate more..... * option = "1"; * checkBox.Click(); * Thread.Sleep(3000);*/ /*string url7 = "http://testing.todvachev.com/special-elements/radio-button-test/"; * string[] option = {"1", "3", "5"}; * driver.Navigate().GoToUrl(url7); * // if you are selecting the first checkbox * //radioButton = driver.FindElement(By.CssSelector("#post-10 > div > form > p:nth-child(6) > input[type=\"radio\"]:nth-child(1)")); * // if you have more than one selector, create a string called option with a number 1 and then the below code * for (int i = 0; i < option.Length; i++) * { * radioButton = driver.FindElement(By.CssSelector("#post-10 > div > form > p:nth-child(6) > input[type=\"radio\"]:nth-child(1)")); * if (radioButton.GetAttribute("checked") == "true") * { * Console.WriteLine("The " + (i+1) + " Radiobutton is checked!"); * } else { * Console.WriteLine("Radiobutton Not Checked!"); * } }*/ /* string url8 = "http://testing.todvachev.com/special-elements/drop-down-menu-test/"; * // string dropDownMenuElements = "#post-6 > div > p:nth-child(6) > select > option:nth-child(1)"; // This is the first element. You can change the child(1) number to select the next element * string dropDownMenuElements = "#post-6 > div > p:nth-child(6) > select > option:nth-child(3)"; * driver.Navigate().GoToUrl(url8); * * dropDownMenu = driver.FindElement(By.Name("DropDownTest")); * // Console.WriteLine(dropDownMenu.GetAttribute("value")); // check the value of the current selection of the dropdown menu * Console.WriteLine("The selected value is: " + dropDownMenu.GetAttribute("value")); // * * elementFromDropDownMenu = driver.FindElement(By.CssSelector(dropDownMenuElements)); * Console.WriteLine("The Third option in dropdown menu is: " + elementFromDropDownMenu.GetAttribute("value")); * elementFromDropDownMenu.Click(); //select the value and make it the new value * Console.WriteLine("The selected value is: " + dropDownMenu.GetAttribute("value")); * * for (int i = 1; i <=4; i++) //check all elements in dropdown menu * { * dropDownMenuElements = "#post-6 > div > p:nth-child(6) > select > option:nth-child(" + i + ")"; * elementFromDropDownMenu = driver.FindElement(By.CssSelector(dropDownMenuElements)); * Console.WriteLine("The " + i + " Third option in dropdown menu is: " + elementFromDropDownMenu.GetAttribute("value")); * } * Thread.Sleep(3000); */ string url9 = "http://testing.todvachev.com/special-elements/alert-box/"; driver.Navigate().GoToUrl(url9); Console.WriteLine(alert.Text); //to display the text in the alert on the screen alert = driver.SwitchTo().Alert(); //initialise alert alert.Accept(); //to click OK to accept the alert image = driver.FindElement(By.CssSelector("#post-119 > div > figure > img")); //to view the instance after the alert was accepted, create an image and find it try { if (image.Displayed) { Console.WriteLine("I can see the image after the alert was accepted"); } } catch (NoSuchElementException) { Console.WriteLine("Something went wrong!"); } Thread.Sleep(3000); driver.Quit(); }
public void ContextMenutest() { IWebElement contextMenulink = driver.FindElement(By.LinkText("Context Menu")); contextMenulink.Click(); IWebElement contextMenu = driver.FindElement(By.XPath("//div[@id='hot-spot']")); actions = new Actions(driver); actions.ContextClick(contextMenu).Perform(); wait = new WebDriverWait(driver, TimeSpan.FromSeconds(30)); wait.Until(ExpectedConditions.AlertIsPresent()); IAlert alert = driver.SwitchTo().Alert(); try { Assert.IsTrue(alert != null); } catch (NoAlertPresentException) { } alert.Accept(); try { driver.SwitchTo().Alert(); } catch (NoAlertPresentException) { Assert.Pass("Alert is not present on the page"); } }
public void SwitchToActiveTab() { driver.SwitchTo().Window(driver.WindowHandles.Last()); }
public void verificarAlerta() { Thread.Sleep(2000); driver.SwitchTo().Alert().Accept(); }
static List <Company> GetData(IWebDriver driver, string Query) { List <Company> listCompany = new List <Company>(); driver.Navigate().GoToUrl("https://www.ytj.fi/"); driver.FindElement(By.XPath("//*[@id='search-term']")).SendKeys(Query); driver.FindElement(By.XPath("//*[@class='btn btn-lg'][text()='Etsi']")).Click(); try { IAlert alert = driver.SwitchTo().Alert(); alert.Accept(); } catch (NoAlertPresentException e) { //Console.WriteLine("Алерта нет. Все ок"); } WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10)); wait.Until(_driver => ((IJavaScriptExecutor)driver).ExecuteScript("return document.readyState").Equals("complete")); //Тут переходим на результат поиска и подучаем все ссылки //IReadOnlyCollection<IWebElement> listLink = driver.FindElements(By.XPath("//*[@id='search-result']/table/tbody/tr/td/a")); Dictionary <string, string> listOneTableValue = GetOneTableValue(driver); foreach (var itemLink in listOneTableValue) { Company company = new Company(); company.Name = itemLink.Value; driver.Navigate().GoToUrl(itemLink.Key); wait.Until(_driver => ((IJavaScriptExecutor)driver).ExecuteScript("return document.readyState").Equals("complete")); //С этой карточки собираем все данные и записываем в CSV //Получаем все таблицы, потом исходя из индекса будем сканировать их IReadOnlyCollection <IWebElement> listTableDom = driver.FindElements(By.XPath("//*[@id='detail-result']/table/tbody")); int countTable = 0; foreach (IWebElement table in listTableDom) { //Тут разбираем нужные таблицы на нужные значение if (countTable == 0) { company.Url = GetSite(table); company.Phone = GetPhone(table); } //В этой таблице берем данные из регистра if (countTable == 1) { company.DataRegistry = GetRegistryData(table); } countTable++; } listCompany.Add(company); } return(listCompany); }
public void ResetPasswordAttempts(string emailaddress, log4net.ILog log) { //instantiate new Adduserdetailspage USERS_link.Click(); try { Email_Address_Text.SendKeys(emailaddress); } catch (StaleElementReferenceException ex) { log.Info("Staleblock" + ex.ToString()); PageFactory.InitElements(driver, this); Email_Address_Text.SendKeys(emailaddress); } Search_link.Click(); try { SEARCH_RESULTS_links.Click(); } catch (Exception) { PageFactory.InitElements(driver, this); SEARCH_RESULTS_links.Click(); } //Check that it is visible (i.e. USer needs to have attempts reset) Assert.IsTrue(isElementPresent(Reset_password_attempts_link)); Reset_password_attempts_link.Click(); driver.SwitchTo().ActiveElement().SendKeys("test"); driver.SwitchTo().ActiveElement().SendKeys(Keys.Return); //Ensure that it has been clicked Assert.IsFalse(isElementPresent(Reset_password_attempts_link)); try { USERS_link.Click(); } catch (Exception) { PageFactory.InitElements(driver, this); USERS_link.Click(); } log.Info("User '" + emailaddress + "' password reset successfully."); /** * try * { * Assert.IsFalse(isElementPresent((SEARCH_RESULTS_links))); * * } * catch * { * * Thread.Sleep(1000); * usersPage = new LAFAdminManageusersPage(driver); * Assert.IsFalse(isElementPresent((SEARCH_RESULTS_links))); * * } * **/ }
public void SwitchToLastTab() { List <String> browserTabs = new List <string>(_driver.WindowHandles); _driver.SwitchTo().Window(browserTabs.Last()); }
public void SwitchToNewTab() { driver.SwitchTo().ActiveElement(); }
public void Validatate_ManagerFund_InvestmentsMonitor_Report() { try { QAReportsDriver = objbase.Initializedriver(); QAReportsDriver.Navigate().GoToUrl(ConfigurationSettings.AppSettings["QAT"]); QAReportsDriver.Manage().Window.Maximize(); objbase.WaitforPageload(); IWebElement elelnkreport = QAReportsDriver.FindElement(By.Id("btnReports")); IJavaScriptExecutor QAReportexecutor = (IJavaScriptExecutor)QAReportsDriver; QAReportexecutor.ExecuteScript("arguments[0].click();", elelnkreport); objbase.WaitforPageload(); IWebElement tableqareportsmenu = QAReportsDriver.FindElement(By.Id("reportsMenu")); objbase.WaitforPageload(); IWebElement lnkqareports = QAReportsDriver.FindElement(By.LinkText("Hermes QA Reports")); QAReportexecutor.ExecuteScript("arguments[0].click();", lnkqareports); objbase.WaitforPageload(); QAReportsDriver.SwitchTo().Window(QAReportsDriver.WindowHandles.Last()); objbase.WaitforPageload(); // QAReportsDriver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(10); IWebElement eletabedindex = QAReportsDriver.FindElement(By.Name("tabedindex")); objbase.WaitForFrameload(); var wdwaittabedindex = new WebDriverWait(QAReportsDriver, TimeSpan.FromSeconds(30)); wdwaittabedindex.Until(ExpectedConditions.FrameToBeAvailableAndSwitchToIt("tabedindex")); objbase.WaitForFrameload(); // QAReportsDriver.SwitchTo().Frame("tabedindex"); // QAReportsDriver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(30); //objbase.WaitforPageload(); IWebElement eleInvestorFund = QAReportsDriver.FindElement(By.Id("tabid8")); objbase.WaitforPageRefresh(); QAReportexecutor.ExecuteScript("arguments[0].click();", eleInvestorFund); objbase.WaitforPortfolioload(); QAReportsDriver.SwitchTo().DefaultContent(); IWebElement frmtabview = QAReportsDriver.FindElement(By.Name("tabview")); var framewaittabview = new WebDriverWait(QAReportsDriver, TimeSpan.FromSeconds(30)); framewaittabview.Until(ExpectedConditions.FrameToBeAvailableAndSwitchToIt("tabview")); objbase.WaitforPageload(); // QAReportsDriver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(10); // QAReportsDriver.SwitchTo().Frame(frmtabview).SwitchTo().Frame("frametree1"); // QAReportsDriver.SwitchTo().Frame("tabview"); QAReportsDriver.FindElement(By.Name("frametree1")); objbase.WaitforPageload(); var wdwaitfrmframetree1 = new WebDriverWait(QAReportsDriver, TimeSpan.FromSeconds(30)); wdwaitfrmframetree1.Until(ExpectedConditions.FrameToBeAvailableAndSwitchToIt("frametree1")); objbase.WaitforPageload(); // QAReportsDriver.SwitchTo().Frame("frametree1"); /* break into two switch statements*/ IWebElement eleporfolio = QAReportsDriver.FindElement(By.LinkText(ConfigurationSettings.AppSettings["selectfund"])); QAReportexecutor.ExecuteScript("arguments[0].click();", eleporfolio); objbase.WaitforPageload(); QAReportsDriver.SwitchTo().DefaultContent(); IWebElement frmtabview1 = QAReportsDriver.FindElement(By.Name("tabview")); var waitfortabview1 = new WebDriverWait(QAReportsDriver, TimeSpan.FromSeconds(30)); waitfortabview1.Until(ExpectedConditions.FrameToBeAvailableAndSwitchToIt("tabview")); objbase.WaitforPageload(); IWebElement frmFrametree4 = QAReportsDriver.FindElement(By.Id("frametree4")); var wdwaitframetree4 = new WebDriverWait(QAReportsDriver, TimeSpan.FromSeconds(30)); wdwaitframetree4.Until(ExpectedConditions.FrameToBeAvailableAndSwitchToIt("frametree4")); objbase.WaitforPageload(); /****/ // QAReportsDriver.SwitchTo().Frame(frmtabview1).SwitchTo().Frame("frametree4"); IWebElement treetable = QAReportsDriver.FindElement(By.Id("tree1table")); objbase.WaitforPageRefresh(); IWebElement eleaccfeereport = treetable.FindElement(By.Id("i04")); eleaccfeereport.Click(); objbase.WaitforAlert(); try { var potfolioloadwait = new WebDriverWait(QAReportsDriver, TimeSpan.FromSeconds(60)); potfolioloadwait.Until(ExpectedConditions.AlertIsPresent()); QAReportsDriver.SwitchTo().Alert().Accept(); objbase.WaitforPageRefresh(); } catch (Exception ex) {} // QAReportsDriver.SwitchTo().DefaultContent(); QAReportsDriver.SwitchTo().Window(QAReportsDriver.WindowHandles.Last()); QAReportsDriver.Manage().Window.Maximize(); objbase.WaitforPageRefresh(); // QAReportsDriver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(20); QAReportsDriver.FindElement(By.Name("frametree1")); objbase.WaitforPageload(); var waitforframetree1 = new WebDriverWait(QAReportsDriver, TimeSpan.FromSeconds(30)); waitforframetree1.Until(ExpectedConditions.FrameToBeAvailableAndSwitchToIt("frametree1")); objbase.WaitforPageload(); IWebElement tbltreet = QAReportsDriver.FindElement(By.Id("tree1table")); IWebElement eleportfolioid = tbltreet.FindElement(By.Id("portfolioid")); QAReportsDriver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(5); //objbase.WaitforPageRefresh(); SelectElement seleportfolioid = new SelectElement(eleportfolioid); seleportfolioid.SelectByValue(ConfigurationSettings.AppSettings["ManagerPortfolioid"]); objbase.WaitforReportPage(); // Assert.IsTrue(QAReportsDriver.PageSource.Contains("GROSVENOR")); QAReportsDriver.Quit(); } catch (Exception exInvestor) { Console.WriteLine(" QA Manager Fund Exception :" + exInvestor.Message.ToString()); QAReportsDriver.Quit(); } }
public static bool WaitForPageToLoad(this IWebDriver driver, TimeSpan?timeout = null) { string state = string.Empty; try { WebDriverWait wait = new WebDriverWait(driver, timeout ?? Constants.DefaultTimeout); //Checks every 500 ms whether predicate returns true if returns exit otherwise keep trying till it returns ture wait.Until(d => { try { state = ((IJavaScriptExecutor)driver).ExecuteScript(@"return document.readyState").ToString(); } catch (InvalidOperationException) { //Ignore } catch (NoSuchWindowException) { //when popup is closed, switch to last windows driver.LastWindow(); } //In IE7 there are chances we may get state as loaded instead of complete return(state.Equals("complete", StringComparison.InvariantCultureIgnoreCase)); }); } catch (TimeoutException) { //sometimes Page remains in Interactive mode and never becomes Complete, then we can still try to access the controls if (!state.Equals("interactive", StringComparison.InvariantCultureIgnoreCase)) { throw; } } catch (NullReferenceException) { //sometimes Page remains in Interactive mode and never becomes Complete, then we can still try to access the controls if (!state.Equals("interactive", StringComparison.InvariantCultureIgnoreCase)) { throw; } } catch (WebDriverException) { if (driver.WindowHandles.Count == 1) { driver.SwitchTo().Window(driver.WindowHandles[0]); } state = ((IJavaScriptExecutor)driver).ExecuteScript(@"return document.readyState").ToString(); if (!(state.Equals("complete", StringComparison.InvariantCultureIgnoreCase) || state.Equals("loaded", StringComparison.InvariantCultureIgnoreCase))) { throw; } } return(true); }
/// <summary> /// This is the main method called by VoxCommando when performing plugin actions. All actions go through here. /// </summary> /// <param name="actionNameArray"> /// An array of strings representing action name. Example action: xbmc.send >>> /// actionNameArray[0] is the plugin name (xbmc), actionNameArray[1] is "send". /// </param> /// <param name="actionParameters">An array of strings representing our action parameters.</param> /// <returns>an actionResult</returns> public actionResult doAction(string[] actionNameArray, string[] actionParameters) { var ar = new actionResult(); const string unknownAction = "Unknown " + nameof(Browser) + " plugin action."; if (actionNameArray.Length < 2) { ar.setError(unknownAction); return(ar); } string actionName1 = actionNameArray[1].ToUpper(); if (webDriver == null && actionName1 != "START") { ar.setError("No web browser opened or selected."); return(ar); } try { switch (actionName1) { // TODO: check for updates for all web driver executables. // ReSharper disable PossibleNullReferenceException case "GOTOURL": { if (actionParameters.Length == 0) { ar.setError("'Url' parameter missing."); } else { if (!actionParameters[0].StartsWith("http://") || !actionParameters[0].StartsWith("https://")) { actionParameters[0] = "https://" + actionParameters[0]; } try { isPageLoaded = false; Task.Run( () => { webDriver.Navigate().GoToUrl(actionParameters[0]); isPageLoaded = true; HostInstance.triggerEvent("Browser.PageLoaded", new List <string>(0)); } ); } catch (Exception ex) { ar.setError("Failed to open specified URL:\n" + ex); break; } ar.setInfo("Page loading started."); } break; } case "WAIT": { while (!isPageLoaded) { Thread.Sleep(10); } ar.setInfo("Page loaded."); break; } case "ELEMENT": { if (actionNameArray.Length < 3) { ar.setError(unknownAction); break; } switch (actionNameArray[2].ToUpper()) { case "FINDROOT": { // selector parameter By selector = CreateElementSelector(ref ar, actionParameters); ReadOnlyCollection <IWebElement> elements = webDriver.FindElements(selector); if (elements.Count == 0) { ar.setError("Cannot find element with specified value. Check your 'Selector value' parameter."); } else { foundWebElements = elements; currentElement = elements[0]; ar.setSuccess(foundWebElements.Count.ToString()); } break; } case "FIND": { if (currentElement == null) { ar.setError("No element selected."); return(ar); } // selector parameter By selector = CreateElementSelector(ref ar, actionParameters); ReadOnlyCollection <IWebElement> elements = currentElement.FindElements(selector); if (elements.Count == 0) { ar.setError("Cannot find element with specified value. Check your 'Selector value' parameter."); } else { foundWebElements = elements; currentElement = elements[0]; ar.setSuccess(foundWebElements.Count.ToString()); } break; } case "SELECT": { // sets currentElement to one from found elements. int selectIndex; if (foundWebElements.Count == 0) { ar.setError("No elements found to select one of them."); } else if (foundWebElements.Count == 1) { ar.setError("First element selected."); } else if (actionParameters.Length == 0) { ar.setError("<Index> of element to select not specified."); } else if (!int.TryParse(actionParameters[0], out selectIndex)) { ar.setError("Invalid <Index> parameter."); } else if (selectIndex < 1 || selectIndex > foundWebElements.Count) { ar.setError("Index parameter is out of range of found elements count."); } else { currentElement = foundWebElements[selectIndex - 1]; ar.setSuccess("Element selected."); } break; } case "INPUT": { if (currentElement == null) { ar.setError("No element selected."); return(ar); } if (actionParameters.Length == 0) { ar.setError("'Text to write' parameter missing."); return(ar); } currentElement.SendKeys(actionParameters[0]); ar.setInfo("OK."); break; } case "CLICK": { if (currentElement == null) { ar.setError("No element selected."); return(ar); } currentElement.Click(); ar.setInfo("OK."); break; } case "GETVISIBLETEXT": { if (currentElement == null) { ar.setError("No element selected."); return(ar); } ar.setSuccess(currentElement.Text); break; } case "GETATTR": { // value of specified attribute for this element. if (currentElement == null) { ar.setError("No element selected."); return(ar); } if (actionParameters.Length == 1) { ar.setError("'Attribute name' parameter missing."); return(ar); } string attrValue; try { attrValue = currentElement.GetAttribute(actionParameters[0]); } catch (StaleElementReferenceException) { ar.setError("Reference to current element is no longer valid.\nRe-find your element."); return(ar); } ar.setSuccess(attrValue); break; } case "GETPROP": { // JavaScript property of the element. if (currentElement == null) { ar.setError("No element selected."); return(ar); } if (actionParameters.Length == 1) { ar.setError("'JS property name' parameter missing."); return(ar); } string attrValue; try { attrValue = currentElement.GetProperty(actionParameters[0]); } catch (StaleElementReferenceException) { ar.setError("Reference to current element is no longer valid.\nRe-find your element."); return(ar); } ar.setSuccess(attrValue); break; } case "GETCSS": { // value of CSS property of current element. if (currentElement == null) { ar.setError("No element selected."); return(ar); } if (actionParameters.Length == 1) { ar.setError("'CSS property name' parameter missing."); return(ar); } string attrValue; try { attrValue = currentElement.GetCssValue(actionParameters[0]); } catch (StaleElementReferenceException) { ar.setError("Reference to current element is no longer valid.\nRe-find your element."); return(ar); } ar.setSuccess(attrValue); break; } case "GETPARENT": { if (currentElement == null) { ar.setError("No element selected."); return(ar); } try { currentElement.FindElement(By.XPath("//span/parent::*")); } catch (NoSuchElementException) { ar.setError("Cannot find parent of current element."); } break; } default: { ar.setError(unknownAction); break; } } break; } #region Browser window case "GETSIZE": { // get if (actionParameters.Length == 0) { Size size = webDriver.Manage().Window.Size; ar.setSuccess($"{size.Width},{size.Height}"); } // set else if (actionParameters.Length == 2) { int width; if (!int.TryParse(actionParameters[0], out width)) { ar.setError("Invalid window width."); } int height; if (!int.TryParse(actionParameters[1], out height)) { ar.setError("Invalid window height."); } webDriver.Manage().Window.Size = new Size(width, height); } else { ar.setError("Invalid parameters count."); } break; } case "GETPOSITION": { // get if (actionParameters.Length == 0) { Point position = webDriver.Manage().Window.Position; ar.setSuccess($"{position.X},{position.Y}"); } // set else if (actionParameters.Length == 2) { int x; if (!int.TryParse(actionParameters[0], out x)) { ar.setError("Invalid X position."); } int y; if (!int.TryParse(actionParameters[1], out y)) { ar.setError("Invalid Y position."); } webDriver.Manage().Window.Position = new Point(x, y); } else { ar.setError("Invalid parameters count."); } break; } // change window state case "NORMALIZE": { webDriver.Manage().Window.Size = savedNormalSize; ar.setInfo("OK."); break; } case "MAXIMIZE": { savedNormalSize = webDriver.Manage().Window.Size; webDriver.Manage().Window.Maximize(); ar.setInfo("OK."); break; } case "MINIMIZE": { savedNormalSize = webDriver.Manage().Window.Size; webDriver.Manage().Window.Minimize(); ar.setInfo("OK."); break; } case "FULLSCREEN": { savedNormalSize = webDriver.Manage().Window.Size; webDriver.Manage().Window.FullScreen(); ar.setInfo("OK."); break; } #endregion #region Working with tabs case "TAB": { if (actionNameArray.Length < 3) { ar.setError(unknownAction); break; } switch (actionNameArray[2].ToUpper()) { case "NEW": { webDriver.ExecuteJavaScript("window.open('','_blank');"); webDriver.SwitchTo().Window(webDriver.WindowHandles.Last()); break; } case "SELECT": { if (actionParameters.Length == 0) { ar.setError("'Tab name' parameter missing."); } else if (SelectWindow(actionParameters[0])) { ar.setInfo("OK."); } else { ar.setError("Cannot find tab with specified name."); } break; } case "SELECTBYNUM": { int tabNumber; if (actionParameters.Length == 0) { ar.setError("'Tab index' parameter missing."); } else if (int.TryParse(actionParameters[0], out tabNumber) || tabNumber - 1 > webDriver.WindowHandles.Count) { webDriver.SwitchTo().Window(webDriver.WindowHandles[tabNumber - 1]); ar.setInfo("OK."); } else { ar.setError("Cannot find tab with specified name."); } break; } case "CLOSE": { webDriver.Close(); webDriver?.SwitchTo().Window(webDriver.WindowHandles.Last()); break; } case "TITLE": { ar.setSuccess(webDriver.Title); break; } case "URL": { ar.setSuccess(webDriver.Url); break; } case "GETTABS": { ar.setSuccess(string.Join("\n", webDriver.WindowHandles)); break; } default: { ar.setError(unknownAction); break; } } break; } #endregion #region Browser start/stop case "START": { bool headless = PluginOptions.LaunchHidden; if (actionParameters.Length > 0 && !bool.TryParse(actionParameters[0], out headless)) { ar.setError("Invalid value for 'hidden' parameter."); break; } try { StartWebDriver(headless); } catch (Exception ex) { ar.setError("Failed to start browser:\n" + ex); break; } ar.setInfo("OK."); break; } case "STOP": { webDriver.Quit(); ar.setInfo("Web driver stopped working."); break; } case "SWITCH": { if (actionParameters.Length == 0) { ar.setError("'Browser type' parameter missing."); } else { BrowserType browserType; if (Enum.TryParse(actionParameters[0], true, out browserType)) { try { webDriver.Quit(); webDriver.Dispose(); PluginOptions.BrowserType = browserType; StartWebDriver(isHidden); } catch (Exception ex) { ar.setError($"Failed to switch to {browserType:G}:\n" + ex); break; } ar.setInfo("OK."); } else { ar.setError("Invalid browser type."); } } break; } #endregion default: { ar.setError(unknownAction); break; } // ReSharper restore PossibleNullReferenceException } } catch (Exception ex) { ar.setError(ex.ToString()); } return(ar); }
public void CheckHomeNewsAddAndDeleteEn() { driver.Navigate().GoToUrl((ConfigurationManager.AppSettings["ServerName"]) + "english/news/Pages/Forms/AllItems.aspx"); if (CheckTestItem() == -0) { ClickFilesOnRibbon(); DeleteItem(); } ClickFilesOnRibbon(); String newDocumentSelector = "[id^='Ribbon.Documents.New.NewDocument']"; try { wait.Until(ExpectedConditions.ElementExists(By.CssSelector(newDocumentSelector))); wait.Until(ExpectedConditions.ElementIsVisible(By.CssSelector(newDocumentSelector))); wait.Until(ExpectedConditions.ElementToBeClickable(By.CssSelector(newDocumentSelector))); IWebElement newDocument = driver.FindElement(By.CssSelector(newDocumentSelector)); newDocument.FindElement(By.XPath("./a[1]/span")).Click(); } catch { Assert.Fail("Couldn't find New Document on Ribbon!"); } try { String titleSelector = "[name$='titleTextBox']"; wait.Until(ExpectedConditions.ElementIsVisible(By.CssSelector(titleSelector))); IWebElement Title = driver.FindElement(By.CssSelector(titleSelector)); Title.SendKeys("Test"); } catch { Assert.Fail("Couldn't find Title input box!"); } try { String createSelector = "[id$='buttonCreatePage']"; IWebElement Create = driver.FindElement(By.CssSelector(createSelector)); Create.Click(); } catch { Assert.Fail("Couldn't find Create button!"); } CheckTestItem(); ClickFilesOnRibbon(); try { String CheckInSelector = "[id^='Ribbon.Documents.EditCheckout.CheckIn']"; wait.Until(ExpectedConditions.ElementIsVisible(By.CssSelector(CheckInSelector))); wait.Until(ExpectedConditions.ElementToBeClickable(By.CssSelector(CheckInSelector))); IWebElement CheckIn = driver.FindElement(By.CssSelector(CheckInSelector)); CheckIn.Click(); } catch { Assert.Fail("Couldn't Find Check In Button!"); } IWebDriver CheckinDialog = driver.SwitchTo().Frame(driver.FindElement(By.ClassName("ms-dlgFrame"))); WebDriverWait CheckinWait = new WebDriverWait(CheckinDialog, TimeSpan.FromSeconds(40)); try { String publishSelector = "ActionCheckinPublish"; CheckinWait.Until(ExpectedConditions.ElementIsVisible(By.Id(publishSelector))); //wait for dialog to appear CheckinWait.Until(ExpectedConditions.ElementToBeClickable(By.Id(publishSelector))); IWebElement publish = CheckinDialog.FindElement(By.Id(publishSelector)); publish.Click(); } catch { Assert.Fail("Couldn't find Publish Major Version Radio Button"); } try { string OKSelector = "//*[@id='CheckinOk']"; IWebElement OK = CheckinDialog.FindElement(By.XPath(OKSelector)); OK.Click(); } catch { Assert.Fail("Couldn't find OK button!"); } CheckTestItem(); ClickFilesOnRibbon(); try { String approve_rejectSelector = "[id^='Ribbon.Documents.Workflow.Moderate']"; wait.Until(ExpectedConditions.ElementIsVisible(By.CssSelector(approve_rejectSelector))); wait.Until(ExpectedConditions.ElementToBeClickable(By.CssSelector(approve_rejectSelector))); IWebElement approve_reject = driver.FindElement(By.CssSelector(approve_rejectSelector)); approve_reject.Click(); } catch { Assert.Fail("Couldn't find Approve-Reject button on Ribbon"); } IWebDriver ApproveDialog = driver.SwitchTo().Frame(driver.FindElement(By.ClassName("ms-dlgFrame"))); WebDriverWait ApproveWait = new WebDriverWait(ApproveDialog, TimeSpan.FromSeconds(40)); try { String approveSelector = "[id$='RadioBtnApprovalStatus_0']"; ApproveWait.Until(ExpectedConditions.ElementIsVisible(By.CssSelector(approveSelector))); //wait for dialog window to appear ApproveWait.Until(ExpectedConditions.ElementToBeClickable(By.CssSelector(approveSelector))); IWebElement approve = ApproveDialog.FindElement(By.CssSelector(approveSelector)); approve.Click(); } catch { Assert.Fail("Couldn't find Approve Radio Button!"); } try { String OKSelector = "[id$='RptControls_BtnSubmit']"; IWebElement OK = ApproveDialog.FindElement(By.CssSelector(OKSelector)); OK.Click(); } catch { Assert.Fail("Couldn't find OK button!"); } wait.Until(ExpectedConditions.AlertIsPresent()); driver.SwitchTo().Alert().Accept(); Thread.Sleep(1000); CheckHomeNewsWebPartNodeCountEn(); driver.Navigate().GoToUrl((ConfigurationManager.AppSettings["ServerName"]) + "english/news/Pages/Forms/AllItems.aspx"); CheckTestItem(); ClickFilesOnRibbon(); DeleteItem(); CheckHomeNewsWebPartNodeCountEn(); }
public void TheSaveClauseandDraftTest() { driver.Navigate().GoToUrl(baseURL + "CS/"); driver.FindElement(By.LinkText("Log In")).Click(); Thread.Sleep(3000); driver.FindElement(By.Id("UserName")).Clear(); driver.FindElement(By.Id("UserName")).SendKeys("*****@*****.**"); driver.FindElement(By.Id("Password")).Clear(); driver.FindElement(By.Id("Password")).SendKeys("Admin1234!"); driver.FindElement(By.Id("SubmitLogin")).Click(); Thread.Sleep(3000); Assert.AreEqual("You logged in successfully.", driver.FindElement(By.XPath("//body/div[2]/div")).Text); driver.FindElement(By.LinkText("rafael")).Click(); Thread.Sleep(3000); driver.FindElement(By.LinkText("view-link")).Click(); driver.FindElement(By.XPath("(//a[contains(text(),'Clauses')])[2]")).Click(); Thread.Sleep(3000); driver.FindElement(By.XPath("(//button[@type='button'])[4]")).Click(); Thread.Sleep(1000); driver.FindElement(By.LinkText("Add New Clause")).Click(); Thread.Sleep(3000); driver.FindElement(By.Id("Heading")).Clear(); driver.FindElement(By.Id("Heading")).SendKeys("Test Agreement ClauseSaveDraft"); driver.FindElement(By.Id("CreateClauseFilename")).Click(); driver.FindElement(By.XPath("//div[@class='panel-body']/fieldset/div/div/div[5]")).Click(); Thread.Sleep(5000); driver.FindElement(By.Id("ContractTaxonomyButton")).Click(); Thread.Sleep(3000); //driver.FindElement(By.CssSelector("#62 > i.jstree-icon.jstree-ocl")).Click(); //driver.FindElement(By.CssSelector("#63 > i.jstree-icon.jstree-ocl")).Click(); //driver.FindElement(By.Id("64_anchor")).Click(); driver.FindElement(By.XPath("//li[@id='62']/i")).Click(); Thread.Sleep(5000); driver.FindElement(By.XPath("//li[@id='63']/i")).Click(); Thread.Sleep(5000); driver.FindElement(By.Id("64_anchor")).Click(); Thread.Sleep(5000); driver.FindElement(By.XPath("//div[4]/div[2]/button")).Click(); driver.FindElement(By.Id("ClauseTaxonomyButton")).Click(); Thread.Sleep(3000); //driver.FindElement(By.CssSelector("#307 > i.jstree-icon.jstree-ocl")).Click(); //driver.FindElement(By.CssSelector("#308 > i.jstree-icon.jstree-ocl")).Click(); //driver.FindElement(By.XPath("//a[@id='309_anchor']/i")).Click(); driver.FindElement(By.XPath("//li[@id='307']/i")).Click(); Thread.Sleep(5000); driver.FindElement(By.XPath("//li[@id='308']/i")).Click(); Thread.Sleep(5000); driver.FindElement(By.Id("309_anchor")).Click(); Thread.Sleep(5000); driver.FindElement(By.XPath("//div[4]/div[2]/button")).Click(); Thread.Sleep(3000); //Console.WriteLine("Clause taxonomy choosen"); //driver.FindElement(By.XPath("//a[@id='AddClauseAlt']/i")).Click(); //Thread.Sleep(6000); //driver.SwitchTo().Frame("Description_ifr"); //IWebElement body = driver.FindElement(By.CssSelector("#tinymce")); //body.Clear(); //body.SendKeys("This Executive Employment Agreement (this \"Agreement\") is made as of [EFFECTIVE DATE] (the \"Effective Date\") by and between [EXECUTIVE NAME], with principal place of residence at [EXECUTIVE ADDRESS] (\"Executive\"), and [COMPANY NAME], with its principal place of business at [COMPANY ADDRESS] (\"Company\"), (sometimes collectively referred to as the \"Parties\")."); Console.WriteLine("Switching to Description frame..."); try { driver.SwitchTo().Frame("Description_ifr"); Console.Write("Switch to Description frame successful"); } catch (AssertionException e) { verificationErrors.Append(e.Message); } IWebElement body = driver.FindElement(By.CssSelector("#tinymce")); body.Clear(); Thread.Sleep(2000); try { body.SendKeys("This Executive Employment Agreement"); } catch (AssertionException e) { verificationErrors.Append(e.Message); } Console.WriteLine("Switching to Default Content..."); Thread.Sleep(3000); try { driver.SwitchTo().DefaultContent(); Console.Write("Switching to default page"); } catch (AssertionException e) { verificationErrors.Append(e.Message); } driver.FindElement(By.LinkText("Standard *")).Click(); try { driver.SwitchTo().Frame("StandardClause_ifr"); Console.Write("Switch to Standard Clause frame successful"); } catch (AssertionException e) { verificationErrors.Append(e.Message); } IWebElement body2 = driver.FindElement(By.CssSelector("#tinymce")); body2.Clear(); Thread.Sleep(2000); try { body2.SendKeys("1.1 \"Affiliate\":"); } catch (AssertionException e) { verificationErrors.Append(e.Message); } //driver.SwitchTo().DefaultContent(); Console.WriteLine("Switching to Default Content...");//SWITCHING TO DEFAULT CONTENT Thread.Sleep(3000); try { driver.SwitchTo().DefaultContent(); Console.Write("Switching to default page"); } catch (AssertionException e) { verificationErrors.Append(e.Message); } driver.FindElement(By.Id("ClauseCaption")).Clear(); driver.FindElement(By.Id("ClauseCaption")).SendKeys("Standard"); //INSERTING CAPTION FOR STANDARD driver.FindElement(By.XPath("//a[@id='AddClauseAlt']/i")).Click(); // INSERTING IN CLAUSE STANDARD ALTERNATIVE FOR STANDARD try { driver.SwitchTo().Frame("ClauseAltContent1_ifr"); Console.Write("Switch to Alt Clause frame successful"); } catch (AssertionException e) { verificationErrors.Append(e.Message); } IWebElement body3 = driver.FindElement(By.CssSelector("#tinymce")); body3.Clear(); Thread.Sleep(2000); try { body3.SendKeys("1.1 Affiliate definition"); } catch (AssertionException e) { verificationErrors.Append(e.Message); } /////END OF THE REQUIRED FIELDS OF FORM //driver.FindElement(By.LinkText("Alt 1")).Click(); //driver.FindElement(By.LinkText("Standard *")).Click(); Console.WriteLine("Switching to Default Content...");///SWITCHING TO DEFAULT CONTENT Thread.Sleep(3000); try { driver.SwitchTo().DefaultContent(); Console.Write("Switching to default page"); } catch (AssertionException e) { verificationErrors.Append(e.Message); } driver.FindElement(By.Id("ClausePrimaryButton")).Click(); //driver.FindElement(By.CssSelector("#ClausePrimaryButton > span.button-status")).Click(); Thread.Sleep(4000); Assert.AreEqual("Clause added successfully.", driver.FindElement(By.XPath("//body/div[2]/div")).Text); Thread.Sleep(6000); driver.FindElement(By.CssSelector("span.button-status")).Click(); driver.FindElement(By.LinkText("Draft")).Click(); driver.FindElement(By.Id("ContractTaxonomyButton")).Click(); Thread.Sleep(5000); //driver.FindElement(By.XPath("//li[@id='24']/i")).Click(); //Thread.Sleep(2000); //driver.FindElement(By.Id("5_anchor")).Click(); //Thread.Sleep(5000); //driver.FindElement(By.Id("25_anchor")).Click(); //Thread.Sleep(5000); driver.FindElement(By.CssSelector("i.jstree-icon.jstree-ocl")).Click(); driver.FindElement(By.Id("5_anchor")).Click(); driver.FindElement(By.XPath("//div[4]/div[2]/button")).Click(); driver.FindElement(By.Id("ClauseTaxonomyButton")).Click(); driver.FindElement(By.XPath("//div[2]/button[2]")).Click(); Thread.Sleep(6000); driver.FindElement(By.Id("ClauseCaption")).Clear(); driver.FindElement(By.Id("ClauseCaption")).SendKeys("Executive's Standard"); driver.FindElement(By.LinkText("Alt 1")).Click(); Thread.Sleep(6000); driver.FindElement(By.Id("ClauseAltTab1")).Clear(); driver.FindElement(By.Id("ClauseAltTab1")).SendKeys("Affiliates"); driver.FindElement(By.CssSelector("span.button-status")).Click();/////////save draft or entering draft mode Thread.Sleep(4000); Assert.AreEqual("Draft Clause edited successfully.", driver.FindElement(By.XPath("//body/div[2]/div")).Text); driver.FindElement(By.LinkText("Draft")).Click(); Thread.Sleep(2000); driver.FindElement(By.CssSelector("#ClausePrimaryButton > span.button-status")).Click();///PUBLISH draft Thread.Sleep(5000); Assert.AreEqual("Draft Clause approved and published successfully.", driver.FindElement(By.XPath("//body/div[2]/div")).Text); driver.FindElement(By.Id("DeleteClauseButton")).Click(); Thread.Sleep(2000); driver.FindElement(By.XPath("//div[4]/div[2]/button")).Click(); Thread.Sleep(4000); Assert.AreEqual("Original Clause deleted successfully.", driver.FindElement(By.XPath("//body/div[2]/div")).Text); driver.FindElement(By.LinkText("rafael")).Click(); driver.FindElement(By.LinkText("Log Out")).Click(); }
public bool BaixarDocumento_FluxoProtesto(string doc, bool birigui) { bool documentoOk = false; bool documentoBase = false; try { var elTable = _driver.FindElement(By.TagName("table")); var count = elTable.FindElements(By.TagName("tr")).Count(); int c = Convert.ToInt32(count); var eltr = elTable.FindElements(By.TagName("tr")).ToList()[c - 1]; var celula = eltr.FindElements(By.TagName("td")); if (celula.Count > 5) { if (celula[1].Text == doc) { string motivo = celula[7].Text; string status = celula[8].Text; if (status.Length > 0 && status.ToUpper() == "NEG") { if (birigui) { if (motivo.Length > 0 && motivo.ToUpper() != "AUSENTE" && motivo.ToUpper() != "NÃO PROCURADO" && motivo.ToUpper() != "SEM ENTREGA DOMICILIAR") { // abrir notificação realizar download var lnk = celula[9].FindElement(By.TagName("a")); lnk.SendKeys(Keys.Return); try { lnk.Click(); } catch { } Thread.Sleep(2000); TakeScreenshot(); int tentativas = 3; int tentativaCorrente = 0; bool continuar = true; while (continuar) { // Validar Endereõ com Copia Contrato- Se OK => Salvar var lnkSalvar = celula[10].FindElement(By.TagName("a")); Thread.Sleep(1000); lnkSalvar.SendKeys(Keys.Return); try { lnkSalvar.Click(); } catch { } documentoOk = true; // verificar se já esta na base try { // Check the presence of alert Thread.Sleep(2000); _driver.SwitchTo().Alert().Accept(); Thread.Sleep(1000); documentoBase = true; continuar = false; } catch (NoAlertPresentException ex) { documentoBase = false; tentativaCorrente++; Thread.Sleep(500); } if (tentativaCorrente > tentativas) { continuar = false; } } } } else { // abrir notificação realizar download var lnk = celula[9].FindElement(By.TagName("a")); lnk.SendKeys(Keys.Return); try { lnk.Click(); } catch { } Thread.Sleep(2000); TakeScreenshot(); int tentativas = 3; int tentativaCorrente = 0; bool continuar = true; while (continuar) { // Validar Endereõ com Copia Contrato- Se OK => Salvar var lnkSalvar = celula[10].FindElement(By.TagName("a")); Thread.Sleep(1000); lnkSalvar.SendKeys(Keys.Return); try { lnkSalvar.Click(); } catch { } documentoOk = true; // verificar se já esta na base try { // Check the presence of alert Thread.Sleep(2000); _driver.SwitchTo().Alert().Accept(); Thread.Sleep(1000); documentoBase = true; continuar = false; } catch (NoAlertPresentException ex) { documentoBase = false; tentativaCorrente++; Thread.Sleep(500); } if (tentativaCorrente > tentativas) { continuar = false; } } } } } } } // if (c > 0) // { // foreach(var cel in elTable.FindElements(By.TagName("tr"))) // { // var celula = cel.FindElements(By.TagName("td")); // if (celula.Count > 0) // { // if (celula[1].Text == doc) // { // string motivo = celula[7].Text; // string status = celula[8].Text; // if (status.Length > 0 && status.ToUpper() == "NEG") // { // if (birigui) // { // if (motivo.Length > 0 && motivo.ToUpper() != "AUSENTE" && motivo.ToUpper() != "NÃO PROCURADO" && motivo.ToUpper() != "SEM ENTREGA DOMICILIAR") // { // // abrir notificação realizar download // var lnk = celula[9].FindElement(By.TagName("a")); // lnk.SendKeys(Keys.Return); // try // { // lnk.Click(); // } // catch { } // Thread.Sleep(2000); // TakeScreenshot(); // int tentativas = 3; // int tentativaCorrente = 0; // bool continuar = true; // while (continuar) // { // // Validar Endereõ com Copia Contrato- Se OK => Salvar // var lnkSalvar = celula[10].FindElement(By.TagName("a")); // Thread.Sleep(1000); // lnkSalvar.SendKeys(Keys.Return); // try { lnkSalvar.Click(); } catch { } // documentoOk = true; // // verificar se já esta na base // try // { // Check the presence of alert // Thread.Sleep(2000); // _driver.SwitchTo().Alert().Accept(); // Thread.Sleep(1000); // documentoBase = true; // continuar = false; // } // catch (NoAlertPresentException ex) // { // documentoBase = false; // tentativaCorrente++; // Thread.Sleep(500); // } // if (tentativaCorrente > tentativas) continuar = false; // } // } // } // else // { // // abrir notificação realizar download // var lnk = celula[9].FindElement(By.TagName("a")); // lnk.SendKeys(Keys.Return); // try // { // lnk.Click(); // } // catch { } // Thread.Sleep(2000); // TakeScreenshot(); // int tentativas = 3; // int tentativaCorrente = 0; // bool continuar = true; // while (continuar) // { // // Validar Endereõ com Copia Contrato- Se OK => Salvar // var lnkSalvar = celula[10].FindElement(By.TagName("a")); // Thread.Sleep(1000); // lnkSalvar.SendKeys(Keys.Return); // try { lnkSalvar.Click(); } catch { } // documentoOk = true; // // verificar se já esta na base // try // { // Check the presence of alert // Thread.Sleep(2000); // _driver.SwitchTo().Alert().Accept(); // Thread.Sleep(1000); // documentoBase = true; // continuar = false; // } // catch (NoAlertPresentException ex) // { // documentoBase = false; // tentativaCorrente++; // Thread.Sleep(500); // } // if (tentativaCorrente > tentativas) continuar = false; // } // } // } // } // } // } // } //} catch { } return(documentoBase); }
public void TestWizzair() { Locator _ = new Locator(); string PointOfDeparture = "Kyiv"; string PointOfDestination = "Copenhagen"; Assert.IsTrue(WaitUntilDisplayed(_.Departure)); SetDeparture(_.Departure, PointOfDeparture); SetDestination(_.Destination, PointOfDestination); FindElement(_.SelectDepartureDate); FindElement(_.SelectDepartureDate).Click(); ElementInvisibility(_.LoadingElement); WaitUntilDisplayed(_.AvailableDays); _driver.FindElements(_.AvailableDays)[2].Click(); ElementIsVisible(_.LoadingElement); ElementInvisibility(_.LoadingElement); FindElement(_.OneWayOnlyLink).Click(); FindElement(_.OKButton).Click(); WaitUntilDisplayed(_.SearchButton); FindElement(_.SearchButton).Click(); if (_driver.WindowHandles.Count > 1) { _driver.SwitchTo().Window(_driver.WindowHandles.First()).Close(); _driver.SwitchTo().Window(_driver.WindowHandles.Last()); } ElementInvisibility(_.LoadingElement); new VerifyRoute(FindElement(_.CurrentRoute).Text, PointOfDeparture, PointOfDestination); Assert.IsTrue(WaitUntilDisplayed(_.ShowReturnFlightsLink)); FindElement(_.ShowPricesLink).Click(); Assert.IsTrue(WaitUntilDisplayed(_.WizzPlusSection)); Assert.IsTrue(WaitUntilDisplayed(_.WizzGoSection)); Assert.IsTrue(WaitUntilDisplayed(_.BasicSection)); Assert.IsTrue(FindElement(_.WizzPlusSectionPrice).Text.Length > 3); Assert.IsTrue(FindElement(_.WizzGoSectionPrice).Text.Length > 3); Assert.IsTrue(FindElement(_.BasicSectionPrice).Text.Length > 3); WaitUntilDisplayed(_.AvailablePricesButton); var availablePricesButton = _driver.FindElements(_.AvailablePricesButton); ElementIsVisible(_.CloseButton); FindElement(_.CloseButton).Click(); Actions actions = new Actions(_driver); actions.MoveToElement(availablePricesButton[1]).Click(availablePricesButton[1]).Perform(); _wait.Until(ExpectedConditions.ElementToBeClickable(_.ContinueButton)); FindElement(_.ContinueButton).Click(); ElementInvisibility(_.LoadingElement); //Uncomment if exist seats choice //ElementInvisibility(_.LoadingElement); //By RecommendedSeats = By.XPath("//button[contains(text(), 'Accept recommended seats')]"); //ElementIsVisible(RecommendedSeats); //FindElement(RecommendedSeats).Click(); _driver.Navigate().GoToUrl(_driver.Url); ElementIsVisible(_.FirstName); SetDataPassenger(_.FirstName, FNamePassenger); SetDataPassenger(_.LastName, LNamePassenger); ElementInvisibility(_.LoadingElement); ElementIsVisible(_.Sex); _wait.Until(x => x.FindElement(_.Sex).Enabled); FindElement(_.Sex).Click(); _driver.FindElements(_.AvailableBaggage)[2].Click(); ElementInvisibility(_.LoadingElement); _wait.Until(x => x.FindElement(_.PassengersContinueButton).Enabled); new VerifyRoute(FindElement(_.Way).Text, PointOfDeparture, PointOfDestination); ElementInvisibility(_.LoadingElement); ElementIsVisible(_.PassengersContinueButton); FindElement(_.PassengersContinueButton).Click(); ElementIsVisible(_.SingMode); Assert.IsTrue(WaitUntilDisplayed(_.SingMode)); }
public string FTP_Utah(string houseno, string direction, string sname, string sttype, string parcelNumber, string searchType, string orderNumber, string ownername, string directParcel) { GlobalClass.global_orderNo = orderNumber; HttpContext.Current.Session["orderNo"] = orderNumber; GlobalClass.global_parcelNo = parcelNumber; var driverService = PhantomJSDriverService.CreateDefaultService(); driverService.HideCommandPromptWindow = true; // driver = new PhantomJSDriver(); //driver = new ChromeDriver(); IJavaScriptExecutor js = driver as IJavaScriptExecutor; string pathurl = "", Owner_Name = ""; string StartTime = "", AssessmentTime = "", TaxTime = "", CitytaxTime = "", LastEndTime = ""; List <string> taxurllist = new List <string>(); using (driver = new ChromeDriver()) { try { StartTime = DateTime.Now.ToString("HH:mm:ss"); if (searchType == "titleflex") { string address = houseno + " " + direction + " " + sname + " " + sttype; gc.TitleFlexSearch(orderNumber, parcelNumber, "", address, "UT", "Utah"); if ((HttpContext.Current.Session["TitleFlex_Search"] != null && HttpContext.Current.Session["TitleFlex_Search"].ToString() == "Yes")) { driver.Quit(); return("MultiParcel"); } else if (HttpContext.Current.Session["titleparcel"].ToString() == "") { HttpContext.Current.Session["Utah_Zero"] = "Zero"; driver.Quit(); return("No Data Found"); } parcelNumber = HttpContext.Current.Session["titleparcel"].ToString(); searchType = "parcel"; } driver.Navigate().GoToUrl("http://www.utahcountyonline.org/LandRecords/Index.asp"); if (searchType == "address") { driver.Navigate().GoToUrl("http://www.utahcountyonline.org/LandRecords/AddressSearchForm.asp"); Thread.Sleep(2000); //driver.FindElement(By.XPath("/html/body/div/div[6]/div[2]/table/tbody/tr/td/table/tbody/tr/td[1]/ul[1]/li[2]/a")).SendKeys(Keys.Enter); //gc.CreatePdf_WOP_Chrome(orderNumber, "Address Search",driver, "UT", "Utah"); driver.FindElement(By.Id("av_house")).SendKeys(houseno); driver.FindElement(By.Id("av_dir")).SendKeys(direction); driver.FindElement(By.Id("av_street")).SendKeys(sname); driver.FindElement(By.Id("street_type")).SendKeys(sttype); //IWebElement rdio = driver.FindElement(By.XPath("//*[@id='form1']/table/tbody/tr/td/p[2]/label[2]/label/input")); //js.ExecuteScript("arguments[0].click();", rdio); driver.FindElement(By.XPath("//*[@id='form1']/table/tbody/tr/td/p[3]/input")).SendKeys(Keys.Enter); gc.CreatePdf_WOP_Chrome(orderNumber, "Address Search result", driver, "UT", "Utah"); //multi parcel IWebElement multitableElement = driver.FindElement(By.XPath("/html/body/table/tbody/tr/td/table[1]/tbody")); IList <IWebElement> multitableRow = multitableElement.FindElements(By.TagName("tr")); if (multitableRow.Count > 2) { IList <IWebElement> multirowTD; foreach (IWebElement row in multitableRow) { multirowTD = row.FindElements(By.TagName("td")); if (multirowTD.Count != 0 && !row.Text.Contains("Serial Number")) { string multi = multirowTD[1].Text.Trim() + "~" + "-"; gc.insert_date(orderNumber, multirowTD[0].Text.Trim(), 119, multi, 1, DateTime.Now); } } HttpContext.Current.Session["multiparcel_Utah"] = "Yes"; if (multitableRow.Count > 25) { HttpContext.Current.Session["multiParcel_Utah_Multicount"] = "Maximum"; } driver.Quit(); return("MultiParcel"); } if (multitableRow.Count == 1) { HttpContext.Current.Session["Utah_Zero"] = "Zero"; driver.Quit(); return("No Data Found"); } else { driver.FindElement(By.XPath("/html/body/table/tbody/tr/td/table[1]/tbody/tr[2]/td[1]/a")).SendKeys(Keys.Enter); IWebElement url = driver.FindElement(By.XPath("/html/body/table/tbody/tr/td/table/tbody/tr[2]/td[1]/a")); pathurl = url.GetAttribute("href"); Owner_Name = driver.FindElement(By.XPath("/html/body/table/tbody/tr/td/table/tbody/tr[2]/td[1]")).Text; driver.Navigate().GoToUrl(pathurl); gc.CreatePdf_WOP_Chrome(orderNumber, "Address Search result page", driver, "UT", "Utah"); } } else if (searchType == "parcel") { driver.FindElement(By.XPath("/html/body/div/div[6]/div[2]/table/tbody/tr/td/table/tbody/tr/td[1]/ul[1]/li[3]/a")).SendKeys(Keys.Enter); if (parcelNumber.Contains(":") || parcelNumber.Contains(" ")) { parcelNumber = parcelNumber.Replace(":", "").Trim(); parcelNumber = parcelNumber.Replace(" ", "").Trim(); } gc.CreatePdf_Chrome(orderNumber, parcelNumber, "Parcel Search", driver, "UT", "Utah"); driver.FindElement(By.Id("av_serial")).SendKeys(parcelNumber); IWebElement rdio = driver.FindElement(By.XPath("//*[@id='form1']/table/tbody/tr/td/p[2]/label[2]/label/input")); js.ExecuteScript("arguments[0].click();", rdio); driver.FindElement(By.XPath("//*[@id='form1']/table/tbody/tr/td/p[3]/input")).SendKeys(Keys.Enter); gc.CreatePdf_Chrome(orderNumber, parcelNumber, "Parcel Search result", driver, "UT", "Utah"); IList <IWebElement> TRserial = driver.FindElements(By.XPath("/html/body/table/tbody/tr/td/table/tbody/tr")); int count = TRserial.Count; for (int i = 2; i <= count; i++) { try { string selectedvalue = driver.FindElement(By.XPath("/html/body/table/tbody/tr/td/table/tbody/tr[" + i + "]/td[3]/select/option[1]")).Text; selectedvalue = selectedvalue.Replace(":", ""); if (selectedvalue == parcelNumber) { IWebElement propinfo = driver.FindElement(By.XPath("/html/body/table/tbody/tr/td/table/tbody/tr[" + i + "]/td[3]/select/option[2]")); string url = propinfo.GetAttribute("value"); Owner_Name = driver.FindElement(By.XPath("/html/body/table/tbody/tr/td/table/tbody/tr[2]/td[1]")).Text; gc.CreatePdf_Chrome(orderNumber, parcelNumber, "Parcel Search - select parcel number page", driver, "UT", "Utah"); pathurl = "http://www.utahcounty.gov/LandRecords/" + url; driver.Navigate().GoToUrl(pathurl); // break; } } catch { } } } else if (searchType == "ownername") { driver.FindElement(By.XPath("/html/body/div/div[6]/div[2]/table/tbody/tr/td/table/tbody/tr/td[1]/ul[1]/li[1]/a")).SendKeys(Keys.Enter); gc.CreatePdf_WOP_Chrome(orderNumber, "Owner name Search", driver, "UT", "Utah"); driver.FindElement(By.Id("av_name")).SendKeys(ownername); IWebElement rdio = driver.FindElement(By.XPath("//*[@id='av_valid_0']")); //js.ExecuteScript("arguments[0].click();", rdio); rdio.Click(); driver.FindElement(By.XPath("//*[@id='form1']/div/table/tbody/tr[1]/td/p[3]/input")).SendKeys(Keys.Enter); gc.CreatePdf_WOP_Chrome(orderNumber, "Owner name Search result", driver, "UT", "Utah"); try { //multi parcel IWebElement multitableElement = driver.FindElement(By.XPath("/html/body/table/tbody/tr/td/table[1]/tbody")); IList <IWebElement> multitableRow = multitableElement.FindElements(By.TagName("tr")); IList <IWebElement> multirowTD; foreach (IWebElement row in multitableRow) { multirowTD = row.FindElements(By.TagName("td")); if (multirowTD.Count != 0 && !row.Text.Contains("Owner")) { string multi = multirowTD[0].Text.Trim() + "~" + multirowTD[4].Text.Trim(); gc.insert_date(orderNumber, multirowTD[1].Text.Trim(), 119, multi, 1, DateTime.Now); } } HttpContext.Current.Session["multiparcel_Utah"] = "Yes"; if (multitableRow.Count > 25) { HttpContext.Current.Session["multiParcel_Utah_Multicount"] = "Maximum"; } driver.Quit(); return("MultiParcel"); } catch { } try { IWebElement Nodata = driver.FindElement(By.XPath("/html/body/table")); if (!Nodata.Text.Contains("Property Address") && !Nodata.Text.Contains("Owner Name")) { HttpContext.Current.Session["Utah_Zero"] = "Zero"; driver.Quit(); return("No Data Found"); } } catch { } } Thread.Sleep(3000); //Property details string Parcel_ID = "-", Property_Address = "-", Mailing_Address = "-", Legal_Description = "-"; Parcel_ID = driver.FindElement(By.XPath("/html/body/table/tbody/tr/td/table/tbody/tr/td/table/tbody/tr[1]/td[1]")).Text; Parcel_ID = WebDriverTest.After(Parcel_ID, "Serial Number:"); Property_Address = driver.FindElement(By.XPath("/html/body/table/tbody/tr/td/table/tbody/tr/td/table/tbody/tr[3]/td[1]")).Text; Property_Address = WebDriverTest.After(Property_Address, "Property Address:"); Mailing_Address = driver.FindElement(By.XPath("/html/body/table/tbody/tr/td/table/tbody/tr/td/table/tbody/tr[4]/td[1]")).Text; Mailing_Address = WebDriverTest.After(Mailing_Address, "Mailing Address:"); Legal_Description = driver.FindElement(By.XPath("/html/body/table/tbody/tr/td/table/tbody/tr/td/table/tbody/tr[8]/td[1]")).Text; Legal_Description = WebDriverTest.After(Legal_Description, "Legal Description:"); IList <IWebElement> tron = driver.FindElements(By.XPath("/html/body/table/tbody/tr/td/table/tbody/tr/td/div/div/div[1]/table[2]/tbody/tr")); for (int trcount = 1; trcount <= tron.Count; trcount++) { IWebElement on = driver.FindElement(By.XPath("/html/body/table/tbody/tr/td/table/tbody/tr/td/div/div/div[1]/table[2]/tbody/tr[" + trcount + "]/td[1]/span")); string greentag = on.GetAttribute("class"); if (greentag == "style1yv") { Owner_Name += driver.FindElement(By.XPath("/html/body/table/tbody/tr/td/table/tbody/tr/td/div/div/div[1]/table[2]/tbody/tr[" + trcount + "]/ td[3]")).Text + "&"; } } Owner_Name = Regex.Replace(Owner_Name, "[0-9]{2,}", "").Replace("&", " ").Replace(":", ""); if (Parcel_ID.Contains(":")) { Parcel_ID = Parcel_ID.Replace(":", ""); } gc.CreatePdf_Chrome(orderNumber, Parcel_ID, "Property Details information", driver, "UT", "Utah"); //OwnerName = Owner_Name.Substring(OwnerName.Length - 1,1); string prop = Owner_Name + "~" + Property_Address + "~" + Legal_Description + "~" + Mailing_Address; gc.insert_date(orderNumber, Parcel_ID, 122, prop, 1, DateTime.Now); //assessment details string Tax_Year = "-"; Thread.Sleep(4000); driver.FindElement(By.XPath("//*[@id='TabbedPanels1']/ul/li[2]")).SendKeys(Keys.Enter); Thread.Sleep(3000); try { driver.FindElement(By.XPath("/html/body/table/tbody/tr/td/table/tbody/tr/td/div/div/div[2]/table/tbody/tr[3]/td[1]/a")).SendKeys(Keys.Enter); Thread.Sleep(3000); Tax_Year = driver.FindElement(By.XPath("/html/body/table/tbody/tr/td/p[1]")).Text; Tax_Year = WebDriverTest.After(Tax_Year, "Tax Year: "); Tax_Year = WebDriverTest.Before(Tax_Year, " Tax District:").Trim(); } catch { } string RealEstate_Residential = "", RealEstate_Agricultural = "", RealEstate_Commercial = "", RealEstate_Totals = ""; string Improvements_Residential = "", Improvements_Agricultural = "", Improvements_Commercial = "", Improvements_Totals = ""; string Greenbelt_Residential = "", Greenbelt_RealEstate = "", Greenbelt_HomeSite = "", Greenbelt_Totals = "", Greenbelt_TotalsRealProperty = "", Greenbelt_AttachedPersonalProperty = "", Greenbelt_ToatalValuation = ""; string Ok = ""; IWebElement tbassess = driver.FindElement(By.XPath("/html/body/table/tbody/tr/td/table[1]/tbody")); IList <IWebElement> trassess = tbassess.FindElements(By.TagName("tr")); IList <IWebElement> tdassess; foreach (IWebElement row in trassess) { tdassess = row.FindElements(By.TagName("td")); if (Ok == "Real Estate" && tdassess[3].Text.Trim() != "") { RealEstate_Residential = tdassess[1].Text + "~" + tdassess[3].Text + "~" + tdassess[5].Text + "~" + RealEstate_Residential; } if (tdassess.Count != 0 && row.Text.Contains("* * Real Estate")) { Ok = "Real Estate"; } if (Ok == "Improvements" && tdassess[3].Text.Trim() != "") { Improvements_Residential = tdassess[1].Text + "~" + tdassess[3].Text + "~" + tdassess[5].Text + "~" + Improvements_Residential; //RealEstate_Residential = new string(RealEstate_Residential.Reverse().ToArray()); } if (tdassess.Count != 0 && row.Text.Contains("* * Improvements")) { Ok = "Improvements"; } if (Ok == "Greenbelt as of") { Greenbelt_Residential = tdassess[1].Text + "~" + tdassess[3].Text + "~" + tdassess[5].Text + "~" + Greenbelt_Residential; //RealEstate_Residential = new string(RealEstate_Residential.Reverse().ToArray()); } if (tdassess.Count != 0 && row.Text.Contains("* * Greenbelt as of ")) { Ok = "Greenbelt as of"; } //if (tdassess.Count != 0 && !row.Text.Contains("* * Real Estate")) //{ // string assessment = Tax_Year + "~" + tdassess[1].Text.Trim() + "~" + tdassess[3].Text.Trim() + "~" + tdassess[5].Text.Trim(); ; // gc.insert_date(orderNumber, Parcel_ID, 123, assessment, 1,DateTime.Now); //} } RealEstate_Residential = RealEstate_Residential + "Ert"; RealEstate_Residential = RealEstate_Residential.Replace("~Ert", ""); Greenbelt_Residential = Greenbelt_Residential + "Ert"; Greenbelt_Residential = Greenbelt_Residential.Replace("~Ert", ""); Improvements_Residential = Improvements_Residential + "Ert"; Improvements_Residential = Improvements_Residential.Replace("~Ert", ""); string Overall = RealEstate_Residential + "~" + Improvements_Residential + "~" + Greenbelt_Residential; string[] Real = Overall.Split('~'); //for (int i = RealSplit.Count() - 1; i >= 0; i--) //{ // string assessment = RealSplit[i] + "~" + tdassess[1].Text.Trim() + "~" + tdassess[3].Text.Trim() + "~" + tdassess[5].Text.Trim(); ; // gc.insert_date(orderNumber, Parcel_ID, 123, assessment, 1,DateTime.Now); //} int K = 0; string FirstHalf = ""; try { FirstHalf = Real[K + 10] + "~" + Real[K + 11] + "~" + Real[K + 7] + "~" + Real[K + 8] + "~" + Real[K + 4] + "~" + Real[K + 5] + "~" + Real[K + 1] + "~" + Real[K + 2] + "~" + Real[K + 22] + "~" + Real[K + 23] + "~" + Real[K + 19] + "~" + Real[K + 20] + "~" + Real[K + 16] + "~" + Real[K + 17] + "~" + Real[K + 13] + "~" + Real[K + 14] + "~" + Real[K + 40] + "~" + Real[K + 41] + "~" + Real[K + 37] + "~" + Real[K + 38] + "~" + Real[K + 34] + "~" + Real[K + 35] + "~" + Real[K + 31] + "~" + Real[K + 32] + "~" + Real[K + 28] + "~" + Real[K + 29] + "~" + Real[K + 25] + "~" + Real[K + 26]; } catch { } gc.insert_date(orderNumber, Parcel_ID, 123, FirstHalf, 1, DateTime.Now); AssessmentTime = DateTime.Now.ToString("HH:mm:ss"); gc.CreatePdf_Chrome(orderNumber, Parcel_ID, "Assessment Details information", driver, "UT", "Utah"); driver.Navigate().GoToUrl(pathurl); Thread.Sleep(3000); //Tax history details driver.FindElement(By.XPath("//*[@id='TabbedPanels1']/ul/li[3]")).SendKeys(Keys.Enter); gc.CreatePdf_Chrome(orderNumber, Parcel_ID, "Tax History Details information", driver, "UT", "Utah"); IWebElement tbtaxHist = driver.FindElement(By.XPath("/html/body/table/tbody/tr/td/table/tbody/tr/td/div/div/div[3]/table/tbody")); IList <IWebElement> trtaxhist = tbtaxHist.FindElements(By.TagName("tr")); IList <IWebElement> tdtaxhist; foreach (IWebElement row in trtaxhist) { tdtaxhist = row.FindElements(By.TagName("td")); if (tdtaxhist.Count != 0 && !row.Text.Contains("Year")) { string taxhist = tdtaxhist[0].Text + "~" + tdtaxhist[1].Text + "~" + tdtaxhist[2].Text + "~" + tdtaxhist[3].Text + "~" + tdtaxhist[4].Text + "~" + tdtaxhist[5].Text + "~" + tdtaxhist[6].Text + "~" + tdtaxhist[7].Text + "~" + tdtaxhist[8].Text; gc.insert_date(orderNumber, Parcel_ID, 128, taxhist, 1, DateTime.Now); } } try { IWebElement taxdetailtable = driver.FindElement(By.XPath("/html/body/table/tbody/tr/td/table/tbody/tr/td/div/div/div[3]/table/tbody")); IList <IWebElement> taxdetailtableRow = taxdetailtable.FindElements(By.TagName("tr")); int taxrowcount = taxdetailtableRow.Count; IList <IWebElement> taxdetailrowTD; int c = 0; foreach (IWebElement rowid1 in taxdetailtableRow) { taxdetailrowTD = rowid1.FindElements(By.TagName("td")); if (taxdetailrowTD.Count != 0 && c <= taxrowcount && c > 2) { IWebElement taxhistory = driver.FindElement(By.XPath("//*[@id='TabbedPanels1']/div/div[3]/table/tbody/tr[" + c + "]/td[1]/a")); string taxurl = taxhistory.GetAttribute("href"); taxurllist.Add(taxurl); //Thread.Sleep(2000); //string year = driver.FindElement(By.XPath("/html/body/table/tbody/tr/td/table/tbody/tr[1]/td/strong[2]")).Text; //gc.CreatePdf_Chrome(orderNumber, Parcel_ID, "TaxDeailInformation" + year, driver); //IWebElement URL= driver.FindElement(By.XPath("/html/body/table/tbody/tr/td/table/tbody/tr[17]/td/a")); //string Url = URL.GetAttribute("href"); //gc.downloadfile(Url, orderNumber, Parcel_ID, "TaxBill" + year); ////driver.Navigate().GoToUrl("http://www.utahcounty.gov/LandRecords/Property.asp?av_serial="+Parcel_ID); //driver.Navigate().Back(); } // Thread.Sleep(3000); c++; } } catch { } int i1 = 0; foreach (string URL in taxurllist) { if (i1 < 3) { driver.Navigate().GoToUrl(URL); Thread.Sleep(4000); string year = driver.FindElement(By.XPath("/html/body/table/tbody/tr/td/table/tbody/tr[1]/td/strong[2]")).Text; gc.CreatePdf_Chrome(orderNumber, Parcel_ID, "TaxDeailInformation" + year, driver, "UT", "Utah"); IWebElement URL1 = driver.FindElement(By.XPath("/html/body/table/tbody/tr/td/table/tbody/tr[17]/td/a")); string Url = URL1.GetAttribute("href"); driver.Navigate().GoToUrl(Url); Thread.Sleep(6000); driver.SwitchTo().Window(driver.WindowHandles.Last()); Thread.Sleep(2000); gc.CreatePdf_Chrome(orderNumber, Parcel_ID, "Tax Bill" + year, driver, "UT", "Utah"); driver.SwitchTo().Window(driver.WindowHandles.First()); Thread.Sleep(2000); //gc.downloadfile(Url, orderNumber, Parcel_ID, "TaxBill" + year); i1++; } } driver.Navigate().GoToUrl("http://www.utahcounty.gov/LandRecords/Property.asp?av_serial=" + Parcel_ID); driver.FindElement(By.XPath("//*[@id='TabbedPanels1']/ul/li[3]")).SendKeys(Keys.Enter); //Tax payment details string Taxing_Authority = "", Good_PThrough_Date = "", date = "", deleiquent = ""; IWebElement tax_pay; try { tax_pay = driver.FindElement(By.XPath("/html/body/table/tbody/tr/td/table/tbody/tr/td/div/div/div[3]/table/tbody/tr[3]/td[8]/a")); deleiquent = tax_pay.Text; if (deleiquent.Contains("Click for Payoff")) { tax_pay.SendKeys(Keys.Enter); Thread.Sleep(3000); IWebElement td = driver.FindElement(By.XPath("/html/body/table/tbody/tr/td/table/tbody/tr/td")); date = td.Text; date = WebDriverTest.After(date, "Total amount if paid as of").Trim(); date = WebDriverTest.Before(date, ". . .").Trim(); DateTime G_Date = Convert.ToDateTime(date); string dateChecking = DateTime.Now.ToString("MM") + "/15/" + DateTime.Now.ToString("yyyy"); if (G_Date < Convert.ToDateTime(dateChecking)) { //end of the month date = new DateTime(Convert.ToInt16(DateTime.Now.ToString("yyyy")), Convert.ToInt16(Convert.ToInt16(DateTime.Now.ToString("MM"))), DateTime.DaysInMonth(Convert.ToInt16(DateTime.Now.ToString("yyyy")), Convert.ToInt16(DateTime.Now.ToString("MM")))).ToString("MM/dd/yyyy"); } else if (G_Date > Convert.ToDateTime(dateChecking)) { // nextEndOfMonth if ((Convert.ToInt16(Convert.ToInt16(DateTime.Now.ToString("MM"))) < 12)) { date = new DateTime(Convert.ToInt16(DateTime.Now.ToString("yyyy")), Convert.ToInt16(Convert.ToInt16(DateTime.Now.ToString("MM")) + 1), DateTime.DaysInMonth(Convert.ToInt16(DateTime.Now.ToString("yyyy")), Convert.ToInt16(DateTime.Now.ToString("MM")) + 1)).ToString("MM/dd/yyyy"); } else { int nxtYr = Convert.ToInt16(DateTime.Now.ToString("yyyy")) + 1; date = new DateTime(nxtYr, 1, DateTime.DaysInMonth(Convert.ToInt16(DateTime.Now.ToString("yyyy")), 1)).ToString("MM/dd/yyyy"); } } string Mon = ""; string[] da = date.Split('/'); string month = da[0]; string Date = da[1]; string year = da[2]; switch (month) { case "01": Mon = "January"; break; case "02": Mon = "February"; break; case "03": Mon = "March"; break; case "04": Mon = "April"; break; case "05": Mon = "May"; break; case "06": Mon = "June"; break; case "07": Mon = "July"; break; case "08": Mon = "August"; break; case "09": Mon = "September"; break; case "10": Mon = "October"; break; case "11": Mon = "November"; break; case "12": Mon = "December"; break; } driver.FindElement(By.XPath("//*[@id='av_date_btn']")).Click(); //select month for (int i = 1; i < 12; i++) { string calmy = driver.FindElement(By.XPath("/html/body/div[2]/table/thead/tr[1]/td[2]")).Text; string[] my = calmy.Split(','); string cal_month = my[0]; string cal_year = my[1]; if (cal_month.Contains(Mon)) { break; } else { driver.FindElement(By.XPath("/html/body/div[2]/table/thead/tr[2]/td[4]")).Click(); } } //select year for (int j = 1; j <= 5; j++) { string calmy = driver.FindElement(By.XPath("/html/body/div[2]/table/thead/tr[1]/td[2]")).Text; string[] my = calmy.Split(','); string cal_month = my[0]; string cal_year = my[1]; if (cal_year.Contains(year)) { break; } else { driver.FindElement(By.XPath("/html/body/div[2]/table/thead/tr[2]/td[5]")).Click(); } } //select date IWebElement tbdate = driver.FindElement(By.XPath("/html/body/div[2]/table/tbody")); IList <IWebElement> trdate = tbdate.FindElements(By.TagName("tr")); IList <IWebElement> tddate; foreach (IWebElement row in trdate) { tddate = row.FindElements(By.TagName("td")); for (int a = 1; a <= 5; a++) { if (row.Text.Contains(Date)) { for (int b = 1; b <= 8; b++) { if (tddate[b].Text.Contains(Date)) { driver.FindElement(By.XPath("/html/body/div[2]/table/tbody/tr[" + a + "]/td[" + b + "]")).Click(); break; } } } } } driver.FindElement(By.XPath("//*[@id='button']")).SendKeys(Keys.Enter); Thread.Sleep(3000); gc.CreatePdf_Chrome(orderNumber, Parcel_ID, "Deliquent Tax", driver, "UT", "Utah"); Taxing_Authority = driver.FindElement(By.XPath("//p[contains(text(),'The Treasurer')]/following-sibling::p")).Text; if (Taxing_Authority.Contains("\r\n")) { Taxing_Authority = Taxing_Authority.Replace("\r\n", " "); } IWebElement deliTB = driver.FindElement(By.XPath("//p[contains(text(),'Serial Number:')]/following-sibling::table/tbody")); IList <IWebElement> trdeli = deliTB.FindElements(By.TagName("tr")); IList <IWebElement> tddeli; foreach (IWebElement row in trdeli) { tddeli = row.FindElements(By.TagName("td")); if (tddeli.Count != 0 && !row.Text.Contains("Year") && !row.Text.Contains("amount if paid as") && !row.Text.Contains("--") && (row.Text != " ")) { string deliq = tddeli[0].Text + "~" + tddeli[1].Text + "~" + tddeli[2].Text + "~" + tddeli[3].Text + "~" + tddeli[4].Text + "~" + tddeli[5].Text + "~" + date + "~" + Taxing_Authority; if (deliq.Contains("\r\n")) { deliq = deliq.Replace("\r\n", ""); } gc.insert_date(orderNumber, Parcel_ID, 143, deliq, 1, DateTime.Now); } } TaxTime = DateTime.Now.ToString("HH:mm:ss"); driver.Navigate().GoToUrl(pathurl); Thread.Sleep(3000); driver.FindElement(By.XPath("//*[@id='TabbedPanels1']/ul/li[3]")).SendKeys(Keys.Enter); Thread.Sleep(3000); driver.FindElement(By.XPath("/html/body/table/tbody/tr/td/table/tbody/tr/td/div/div/div[3]/table/tbody/tr[3]/td[6]/div/a")).SendKeys(Keys.Enter); gc.CreatePdf_Chrome(orderNumber, Parcel_ID, "Tax Payment Details information", driver, "UT", "Utah"); try { IWebElement tbtax = driver.FindElement(By.XPath("/html/body/table/tbody/tr/td/table/tbody")); IList <IWebElement> trtax = tbtax.FindElements(By.TagName("tr")); IList <IWebElement> tdtax; foreach (IWebElement row in trtax) { tdtax = row.FindElements(By.TagName("td")); if (tdtax.Count != 0 && !row.Text.Contains("Tax Year")) { string tax = tdtax[0].Text + "~" + tdtax[2].Text + "~" + tdtax[4].Text + "~" + tdtax[6].Text + "~" + tdtax[8].Text + "~" + tdtax[10].Text + "~" + tdtax[12].Text + "~" + tdtax[14].Text + "~" + tdtax[16].Text; gc.insert_date(orderNumber, Parcel_ID, 129, tax, 1, DateTime.Now); } } } catch { } } } catch { } if (deleiquent == "") { // driver.FindElement(By.XPath("//*[@id='TabbedPanels1']/div/div[3]/table/tbody/tr[2]/td[1]/a")).SendKeys(Keys.Enter); gc.CreatePdf_Chrome(orderNumber, Parcel_ID, "Tax Payment Details information", driver, "UT", "Utah"); try { IWebElement tbtax = driver.FindElement(By.XPath("/html/body/table/tbody/tr/td/table/tbody")); IList <IWebElement> trtax = tbtax.FindElements(By.TagName("tr")); IList <IWebElement> tdtax; foreach (IWebElement row in trtax) { tdtax = row.FindElements(By.TagName("td")); if (tdtax.Count > 1 && tdtax[0].Text.Trim() != "") { string tax = tdtax[0].Text + "~" + tdtax[1].Text; gc.insert_date(orderNumber, Parcel_ID, 129, tax, 1, DateTime.Now); } } } catch { } } driver.Navigate().GoToUrl(pathurl); Thread.Sleep(3000); //driver.FindElement(By.XPath("/html/body/table/tbody/tr/td/table/tbody/tr/td/div/ul/li[3]")).SendKeys(Keys.Enter); //driver.FindElement(By.XPath("//*[@id='TabbedPanels1']/div/div[3]/table/tbody/tr[3]/td[1]/a")).SendKeys(Keys.Enter); //IWebElement URL= driver.FindElement(By.XPath("/html/body/table/tbody/tr/td/table/tbody/tr[17]/td/a")); //string Url = URL.GetAttribute("href"); //// URL.SendKeys(Keys.Enter); //// driver.SwitchTo().Window(driver.WindowHandles.Last()); // driver.Navigate().GoToUrl(Url); //string billpdf = outputPath + Parcel_ID.Replace(":", "") + "tax_bill.pdf"; //System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; //WebClient downloadpdf = new WebClient(); //downloadpdf.DownloadFile(Url, billpdf); // CreatePdf_WOP(orderNumber, "Tax Bill"); LastEndTime = DateTime.Now.ToString("HH:mm:ss"); gc.insert_TakenTime(orderNumber, "UT", "Utah", StartTime, AssessmentTime, TaxTime, CitytaxTime, LastEndTime); driver.Quit(); gc.mergpdf(orderNumber, "UT", "Utah"); return("Data Inserted Successfully"); } catch (Exception ex) { driver.Quit(); GlobalClass.LogError(ex, orderNumber); throw ex; } } }
private void RunStateMachine(string testName, ActionModel step, TestResults testResults) { if (step.Object == null) { testResults.AddError(testName, $"Undefined step: {step.StepName}"); } switch (step.Command) { case Commands.Undefined: { testResults.AddError(testName, $"Undefined step: {step.StepName}"); result = false; } break; case Commands.OpenBrowser: { // TODO parse browser string driver = new ChromeDriver(); engine = new WebSearchEngine(driver); result = true; } break; case Commands.Click: { if (step.Object is Element) { Element element = (Element)step.Object; IWebElement foundElement = null; if (element.Identificator == "xpath") { foundElement = engine.Find(By.XPath(element.Locator)); } if (element.Identificator == "css") { foundElement = engine.Find(By.CssSelector(element.Locator)); } if (foundElement == null) { testResults.AddError(testName, $"Element '{element.Name}' was not found"); result = false; return; } else { foundElement.SafeClick(); WebPageConsumer.CurrentElement = foundElement; result = true; return; } } testResults.AddError(testName, $"Step: {step.StepName}. No matching elements found in page collection"); result = false; } break; case Commands.OpenTab: { int tabIndex = (int)step.Object; if (driver.WindowHandles.Count >= tabIndex) { driver.SwitchTo().Window(driver.WindowHandles[tabIndex - 1]); } result = true; } break; case Commands.OpenPage: { IPage page = (IPage)step.Object; if (page == null) { testResults.AddError(testName, $"Step: {step.StepName}. Page was not found"); result = false; return; } driver.Url = page.Url; result = true; } break; case Commands.Visible: { if (step.Object is Element) { Element element = (Element)step.Object; IWebElement foundElement = null; if (element.Identificator == "xpath") { foundElement = engine.Find(By.XPath(element.Locator)); } if (element.Identificator == "css") { foundElement = engine.Find(By.CssSelector(element.Locator)); } if (foundElement == null) { testResults.AddError(testName, $"Element '{element.Name}' was not found"); result = false; } result = foundElement.IsDisplayed(); WebPageConsumer.CurrentElement = foundElement; return; } result = false; } break; case Commands.CreateTab: { // TODO does not work IWebElement body = driver.FindElement(By.TagName("body")); body.SendKeys(Keys.Control + 't'); driver.SwitchToLastWindow(); result = true; } break; case Commands.ElementText: { if (step.Object is Element) { Element element = (Element)step.Object; if (element.Identificator == "xpath") { var foundElement = engine.Find(By.XPath(element.Locator)); if (foundElement == null) { testResults.AddError(testName, $"Element '{element.Name}' was not found"); result = false; } if (foundElement.IsDisplayed()) { var actualElementText = foundElement.GetAttribute("value"); var opentag = "<"; var closeTag = ">"; if (string.IsNullOrEmpty(actualElementText)) { actualElementText = foundElement.Text; } if (step.StepName.Contains(opentag) && step.StepName.Contains(closeTag)) { var placeHolders = Regex.Matches(step.StepName, $"<(.*?)>"); var placeHolder = placeHolders[0].Value; var expectedText = placeHolder.Substring(1, placeHolder.Length - 2); if (expectedText == actualElementText) { result = true; WebPageConsumer.CurrentElement = foundElement; return; } } else { LoggerHub.AddNotificationToHub($"Test {testName}. Step: {step.StepName}. Input text is not defined. Please use <> to specify a text"); } testResults.AddError(testName, $"step: {step.StepName}. Actual element text is {actualElementText}"); result = false; } } if (element.Identificator == "css") { var foundElement = engine.Find(By.XPath(element.Locator)); if (foundElement == null) { testResults.AddError(testName, $"Step: {step.StepName}. Element '{element.Name}' was not found"); result = false; } if (foundElement.IsDisplayed()) { var actualElementText = foundElement.GetAttribute("value"); if (string.IsNullOrEmpty(actualElementText)) { actualElementText = foundElement.Text; } if (step.StepName.Substring(step.StepName.IndexOf(element.Name) + element.Name.Length) .Contains(actualElementText)) { result = true; WebPageConsumer.CurrentElement = foundElement; return; } testResults.AddError(testName, $"Step: {step.StepName}. Actual element text is {actualElementText}"); result = false; } return; } result = false; } } break; case Commands.PageTitle: { result = true; } break; case Commands.SwitchFrame: { result = true; } break; case Commands.CloseBrowser: { driver.Close(); //driver.Quit(); //driver.Dispose(); result = true; } break; case Commands.TextInput: { if (step.Object is string) { if (WebPageConsumer.CurrentElement != null) { WebPageConsumer.CurrentElement.SendKeys($"{step.Object}"); result = true; return; // TODO add verification for entered text } testResults.AddError(testName, $"Step: {step.StepName}. Current element is not defined."); } testResults.AddError(testName, $"Step: {step.StepName}. Input text failed."); result = false; } break; case Commands.Wait: { if (step.Object is int) { Methods.WaitForSeconds((int)step.Object); result = true; return; } testResults.AddError(testName, $"Step: {step.StepName}. Failed to extract a waiting time."); result = false; } break; case Commands.Stop: { Logger.WritePostponedInfo($"Test {testName} is paused. Press 'P' to continue."); Menu.RestartMenu(); Console.ReadKey(); result = true; return; } break; } }
static void Main() { driver.Navigate().GoToUrl("http://executeautomation.com/demosite/index.html?UserName=&Password=&Login=Login"); driver.Manage().Window.Maximize(); Thread.Sleep(3000); //Dropdown element dropDownMenu = driver.FindElement(By.XPath("//*[@id=\"TitleId\"]")); dropDownMenu.Click(); elementFromDropDownMenu = driver.FindElement(By.CssSelector("#TitleId>option:nth-child(2)")); elementFromDropDownMenu.Click(); Console.WriteLine("The selected value is: " + elementFromDropDownMenu.GetAttribute("value")); Thread.Sleep(3000); //Element can be found by name, id, CSS selector, XPath try { element = driver.FindElement(By.Name("Initial")); if (element.Displayed) { //System.Console.WriteLine("Yes I can see the element!!"); GreenMessage("Yes I can see the element!!"); } } catch (NoSuchElementException) { //System.Console.WriteLine("No I cannot see the element!!"); RedMessage("No I cannot see the element!!"); } //Input text in the text box textBox = driver.FindElement(By.Id("Initial")); textBox.SendKeys("S"); Console.WriteLine("Initial is: " + textBox.GetAttribute("value")); textBox = driver.FindElement(By.Id("FirstName")); textBox.SendKeys("Smith"); Console.WriteLine("First Name is: " + textBox.GetAttribute("value")); textBox = driver.FindElement(By.Id("MiddleName")); textBox.SendKeys("None"); Console.WriteLine("Middle Name is: " + textBox.GetAttribute("value")); Thread.Sleep(5000); //textBox.Clear(); //clears the text in the text box //textBox.GetAttribute("maxlength"); //gives the maximum length of characters the text box can take //Radio Button radioButton = driver.FindElement(By.CssSelector("#details > table > tbody > tr:nth-child(5) > td:nth-child(2) > input[type=\"radio\"]:nth-child(1)")); if (radioButton.GetAttribute("checked") == "true") { Console.WriteLine("The radio button is checked and its value is: " + radioButton.GetAttribute("value")); } else { Console.WriteLine("The radio button is NOT checked"); } Thread.Sleep(5000); //CheckBox checkBox = driver.FindElement(By.CssSelector("#details > table > tbody > tr:nth-child(6) > td:nth-child(2) > input[type=\"checkbox\"]:nth-child(1)")); if (checkBox.GetAttribute("checked") == "true") { Console.WriteLine("The checkbox is checked"); } else { Console.WriteLine("The checkbox is NOT checked"); } checkBox = driver.FindElement(By.CssSelector("#details > table > tbody > tr:nth-child(6) > td:nth-child(2) > input[type=\"checkbox\"]:nth-child(2)")); checkBox.Click(); Console.WriteLine("The value of the currently selected checked box is: " + checkBox.GetAttribute("value")); Thread.Sleep(5000); //Popup element //popUp = driver.FindElement(By.XPath("//*[@id=\"details\"]/div[1]/p/a")); //popUp.Click(); //Thread.Sleep(5000); //driver.SwitchTo().DefaultContent(); //Thread.Sleep(3000); //Alert alertButton = driver.FindElement(By.XPath("//*[@id=\"details\"]/div[2]/p/input")); alertButton.Click(); Thread.Sleep(5000); alert = driver.SwitchTo().Alert(); Console.WriteLine(alert.Text); alert.Accept(); Thread.Sleep(3000); driver.Quit(); //driver.Close(); can also be used to close the current open window }
public void EnableUser(string emailaddress, log4net.ILog log, IWebDriver driver) { //instantiate new Adduserdetailspage try { USERS_link.Click(); Email_Address_Text.SendKeys(emailaddress); } catch (Exception ex) { PageFactory.InitElements(driver, this); log.Info("Staleblock" + ex.ToString()); USERS_link.Click(); Email_Address_Text.SendKeys(emailaddress); } Search_link.Click(); try { SEARCH_RESULTS_links.Click(); } catch (Exception) { PageFactory.InitElements(driver, this); SEARCH_RESULTS_links.Click(); } Enable_user_account_link.Click(); driver.SwitchTo().ActiveElement().SendKeys("test"); driver.SwitchTo().ActiveElement().SendKeys(Keys.Return); Assert.IsTrue(isElementPresent(Disable_user_account_link)); //Now check if reset password link is available - if it is click this too, to ensure that user is actually enabled //May move this to another test eventually try { USERS_link.Click(); } catch (Exception) { PageFactory.InitElements(driver, this); USERS_link.Click(); } log.Info("User '" + emailaddress + "' deleted successfully."); /** * try * { * Assert.IsFalse(isElementPresent((SEARCH_RESULTS_links))); * * } * catch * { * * Thread.Sleep(1000); * usersPage = new LAFAdminManageusersPage(driver); * Assert.IsFalse(isElementPresent((SEARCH_RESULTS_links))); * * } * **/ }
public void Sitefinity_CanUpdateProfileSitefinity() { if (!_loggedIn) { CanRegisterAndLoginToCms(); } CanLogoutAndIsLoggedOutOfSecondSiteAsWell(); CanLoginToFrontEnd(); var button = _driver.FindElement(By.CssSelector(".gigya-edit-profile"), 5); if (button != null) { button.Click(); } // wait for form var form = _driver.FindElement(By.Id("gigya-profile-form"), 5); _newEmail = string.Concat(Guid.NewGuid(), "@purestone.co.uk"); form.FindElement(By.Name("profile.email")).ClearAndSendKeys(_newEmail); form.FindElement(By.Name("profile.firstName")).ClearAndSendKeys(_updatedFirstName); form.FindElement(By.Name("profile.lastName")).ClearAndSendKeys(_updatedLastName); form.FindElement(By.CssSelector("input.gigya-input-submit")).Click(); LoginToSitefinityAdmin(); // check profile has been updated in Sitefinity _sitefinityAdminDriver.Navigate().GoToUrl(Config.Site1BaseURL + "Sitefinity/Administration/Users"); Thread.Sleep(10000); // find user var searchButton = _sitefinityAdminDriver.FindElement(By.Id("findUsersLink"), 10); if (!searchButton.Displayed) { Thread.Sleep(10000); } searchButton.Click(); var searchType = new SelectElement(_sitefinityAdminDriver.FindElement(By.Id("searchType"))); searchType.SelectByValue("Email"); _sitefinityAdminDriver.FindElement(By.Id("filterText")).SendKeys(_newEmail); _sitefinityAdminDriver.FindElement(By.Id("A1")).Click(); // wait for results var userCell = _sitefinityAdminDriver.FindElement(By.CssSelector(".sfUserCell"), 10); userCell.FindElement(By.ClassName("editCommand")).Click(); // wait for user details Thread.Sleep(1000); _sitefinityAdminDriver.SwitchTo().Frame("editUserDialog"); ValidateUserField("Email", _newEmail); ValidateUserField("First name", _updatedFirstName); ValidateUserField("Last name", _updatedLastName); }
public string FTP_SanFrancisco(string address, string parcelNumber, string searchType, string orderNumber, string directParcel) { GlobalClass.global_orderNo = orderNumber; HttpContext.Current.Session["orderNo"] = orderNumber; GlobalClass.global_parcelNo = parcelNumber; string StartTime = "", AssessmentTime = "", TaxTime = "", CitytaxTime = "", LastEndTime = ""; string parceno = "-", property_address = "-", year_built = "-"; string Land_Value = "=", Building_Value = "-", Fixtures = "-", Personal_Property = "-"; IWebDriver chdriver; var driverService = PhantomJSDriverService.CreateDefaultService(); driverService.HideCommandPromptWindow = true; //driver = new ChromeDriver(); //driver = new PhantomJSDriver(); using (driver = new PhantomJSDriver()) { var option = new ChromeOptions(); option.AddArgument("No-Sandbox"); chdriver = new ChromeDriver(option); try { StartTime = DateTime.Now.ToString("HH:mm:ss"); if (searchType == "titleflex") { string titleaddress = address; gc.TitleFlexSearch(orderNumber, "", "", titleaddress.Trim(), "CA", "San Francisco"); if ((HttpContext.Current.Session["TitleFlex_Search"] != null && HttpContext.Current.Session["TitleFlex_Search"].ToString() == "Yes")) { driver.Quit(); return("MultiParcel"); } else if (HttpContext.Current.Session["titleparcel"].ToString() == "") { HttpContext.Current.Session["Nodata_SanFrascisco"] = "Yes"; driver.Quit(); return("No Data Found"); } parcelNumber = HttpContext.Current.Session["titleparcel"].ToString(); searchType = "parcel"; } chdriver.Navigate().GoToUrl("http://sfplanninggis.org/pim/"); if (searchType == "address") { //IWebElement iframeElement = driver.FindElement(By.XPath("/html/frameset/frame[1]")); ////now use the switch command //driver.SwitchTo().Frame(iframeElement); //Thread.Sleep(3000); chdriver.FindElement(By.Id("addressInput")).SendKeys(address.ToUpper()); Thread.Sleep(10000); IWebElement Iviewtax = chdriver.FindElement(By.XPath("//*[@id='Search-icon']")); IJavaScriptExecutor js = chdriver as IJavaScriptExecutor; js.ExecuteScript("arguments[0].click();", Iviewtax); Thread.Sleep(10000); gc.CreatePdf_WOP(orderNumber, "Address Search", chdriver, "CA", "San Francisco"); // gc.CreatePdf_WOP(orderNumber, "Address Search result", driver, "CA", "San Francisco"); } if (searchType == "parcel") { if (HttpContext.Current.Session["titleparcel"] != null) { parcelNumber = HttpContext.Current.Session["titleparcel"].ToString(); } if (HttpContext.Current.Session["titleparcel"] != null && (HttpContext.Current.Session["titleparcel"].ToString().Contains(".") || HttpContext.Current.Session["titleparcel"].ToString().Contains("-"))) { parcelNumber = HttpContext.Current.Session["titleparcel"].ToString().Replace(".", ""); } //1 driver.Navigate().GoToUrl("http://propertymap.sfplanning.org/"); //driver.Navigate().GoToUrl("http://sfplanninggis.org/pim/"); // IWebElement iframeElement = driver.FindElement(By.XPath("/html/frameset/frame")); //now use the switch command //driver.SwitchTo().Frame(iframeElement); chdriver.FindElement(By.Id("addressInput")).SendKeys(parcelNumber); Thread.Sleep(2000); chdriver.FindElement(By.Id("Search-icon")).Click(); Thread.Sleep(2000); gc.CreatePdf(orderNumber, parcelNumber, "Parcel search", chdriver, "CA", "San Francisco"); try { IWebElement INodata = chdriver.FindElement(By.XPath("/html/body/div[3]")); if (INodata.Text.Contains("does not appear to be a valid")) { HttpContext.Current.Session["Nodata_SanFrascisco"] = "Yes"; driver.Quit(); return("No Data Found"); } } catch { } } try { IWebElement INodata = chdriver.FindElement(By.XPath("//*[@id='Report_DynamicContent_Property']/div[1]/div[3]")); if (INodata.Text.Contains("no parcels at this location")) { HttpContext.Current.Session["Nodata_SanFrascisco"] = "Yes"; driver.Quit(); return("No Data Found"); } } catch { } //Thread.Sleep(6000); //driver.FindElement(By.Id("propertyButton")).SendKeys(Keys.Enter); //Thread.Sleep(6000); //property details //chdriver.FindElement(By.LinkText("Assessor Summary")).Click(); //Thread.Sleep(2000); try {////*[@id="Report_DynamicContent_Property"]/div[1]/div[2]/div/div[2]/div[4]/a[1] chdriver.FindElement(By.XPath("//*[@id='Report_DynamicContent_Property']/div[1]/div[2]/div/div[3]/div[4]/a[1]")).Click(); Thread.Sleep(2000); } catch { } chdriver.SwitchTo().Window(chdriver.WindowHandles.Last()); //chdriver.FindElement(By.LinkText("Assessor Summary")).Click(); try { parceno = chdriver.FindElement(By.XPath("//*[@id='modalContent']/div[1]/div/div[1]/div[2]")).Text.Trim(); property_address = chdriver.FindElement(By.XPath("//*[@id='modalContent']/div[1]/div/div[2]/div[2]")).Text; year_built = chdriver.FindElement(By.XPath("//*[@id='modalContent']/div[4]/div/div[8]/div[2]")).Text; string Usetype = chdriver.FindElement(By.XPath("//*[@id='modalContent']/div[4]/div/div[2]/div[4]")).Text; string prop_details = property_address + "~ " + year_built + "~" + Usetype; gc.insert_date(orderNumber, parceno, 72, prop_details, 1, DateTime.Now); } catch { } try { //Assessment Details Land_Value = chdriver.FindElement(By.XPath("//*[@id='modalContent']/div[4]/div/div[2]/div[2]")).Text; Building_Value = chdriver.FindElement(By.XPath("//*[@id='modalContent']/div[4]/div/div[3]/div[2]")).Text; Fixtures = chdriver.FindElement(By.XPath("//*[@id='modalContent']/div[4]/div/div[4]/div[2]")).Text; Personal_Property = chdriver.FindElement(By.XPath("//*[@id='modalContent']/div[4]/div/div[5]/div[2]")).Text; string ass_details = Land_Value + "~ " + Building_Value + "~ " + Fixtures + "~ " + Personal_Property; gc.insert_date(orderNumber, parceno, 73, ass_details, 1, DateTime.Now); gc.CreatePdf_WOP(orderNumber, "Property details", chdriver, "CA", "San Francisco"); AssessmentTime = DateTime.Now.ToString("HH:mm:ss"); } catch { } chdriver.Quit(); //download bill //driver.FindElement(By.ClassName("NoPrint")).SendKeys(Keys.Enter); //driver.SwitchTo().Window(driver.WindowHandles.Last()); //Thread.Sleep(5000); //IWebElement element = driver.FindElement(By.XPath("//*[@id='mapPrintOptions']/tbody/tr[1]/td[2]/button")); //Actions actions = new Actions(driver); //actions.MoveToElement(element).Click().Perform(); //Thread.Sleep(2000); //string billurl = driver.Url; // CreatePdf_WOP(orderNumber, "Bill pdf"); //Tax Details driver.Navigate().GoToUrl("https://ttxonlineportal.sfgov.org/content/San-Francisco-Forms-Portal/Residents/propertyTaxAndLicense.html"); // driver.Navigate().GoToUrl("c"); string block_num = ""; string lot_num = ""; if (parceno.Count() == 8) { block_num = parceno.Substring(0, 4); lot_num = parceno.Substring(4, 3); } else if (parceno.Count() == 8) { block_num = parceno.Substring(0, 4); lot_num = parceno.Substring(4, 3); } else if (parceno.Count() == 7) { block_num = parceno.Substring(0, 4); lot_num = parceno.Substring(4, 3); } if (block_num.Trim() == "" && lot_num.Trim() == "") { string[] splitno = parceno.Split('-'); block_num = splitno[0]; lot_num = splitno[1]; parceno = parcelNumber; } driver.FindElement(By.Id("addressBlockNumber")).SendKeys(block_num); driver.FindElement(By.Id("addressLotNumber")).SendKeys(lot_num); gc.CreatePdf_WOP(orderNumber, "Tax details", driver, "CA", "San Francisco"); driver.FindElement(By.Id("submit")).SendKeys(Keys.Enter); gc.CreatePdf_WOP(orderNumber, "Tax Details result", driver, "CA", "San Francisco"); Thread.Sleep(2000); try { driver.FindElement(By.XPath("//*[@id='block-system-main']/div/div/article/div/div/div/div[3]/div/div/div[1]/ul/li[2]/a")).Click(); Thread.Sleep(3000); } catch { } //string paymenthistory //Bill_Type~Tax_Year~Installment~Bill~Total_Paid~Paid_Date IWebElement TBpayment_history = driver.FindElement(By.XPath("//*[@id='priorYearTaxTable']/tbody")); IList <IWebElement> TRpayment_history = TBpayment_history.FindElements(By.TagName("tr")); IList <IWebElement> TDpayment_history; foreach (IWebElement row2 in TRpayment_history) { if (!row2.Text.Contains("There are no properties that match your search criteria")) { TDpayment_history = row2.FindElements(By.TagName("td")); string paymenthistory = TDpayment_history[0].GetAttribute("innerText") + "~ " + TDpayment_history[1].GetAttribute("innerText") + "~ " + TDpayment_history[2].GetAttribute("innerText") + "~ " + TDpayment_history[4].GetAttribute("innerText") + "~ " + TDpayment_history[5].GetAttribute("innerText") + "~ " + TDpayment_history[6].GetAttribute("innerText"); gc.insert_date(orderNumber, parceno, 76, paymenthistory, 1, DateTime.Now); } } // gc.CreatePdf_WOP(orderNumber, "Payment History Details", driver, "CA", "San Francisco"); //Current property tax statements string text = ""; string Property_Address = "-", Bill_Type = "-", Bill_Number = "-", Installment = "-", Due_Date = "-", Amount_Due = "-", Total_Due = "-"; driver.FindElement(By.XPath("//*[@id='block-system-main']/div/div/article/div/div/div/div[3]/div/div/div[1]/ul/li[1]/a")).SendKeys(Keys.Enter); Thread.Sleep(3000); IList <IWebElement> trc = driver.FindElements(By.XPath("//*[@id='taxTable']/tbody/tr")); int trcount = trc.Count(); if (trcount == 1) { try { IWebElement tr1 = driver.FindElement(By.XPath(" //*[@id='taxTable']/tbody/tr/td")); text = driver.FindElement(By.XPath("//*[@id='taxTable']/tbody/tr/td")).Text; } catch { } if (!text.Contains("There are no current property tax statements due at this time.")) { try { Property_Address = driver.FindElement(By.XPath("//*[@id='taxTable']/tbody/tr/td[1]/div/div/h5[1]")).Text; Bill_Type = driver.FindElement(By.XPath("//*[@id='taxTable']/tbody/tr/td[1]/div/div/h4")).Text; Bill_Number = driver.FindElement(By.XPath("//*[@id='taxTable']/tbody/tr/td[2]/strong")).Text; Installment = driver.FindElement(By.XPath("//*[@id='taxTable']/tbody/tr/td[3]/strong")).Text; Due_Date = driver.FindElement(By.XPath("//*[@id='taxTable']/tbody/tr/td[4]/strong")).Text; Amount_Due = driver.FindElement(By.XPath("//*[@id='taxTable']/tbody/tr/td[5]/strong")).Text; Total_Due = driver.FindElement(By.XPath("//*[@id='taxTable']/tbody/tr/td[6]/strong")).Text; string current_tax = Property_Address + "~ " + Bill_Type + "~ " + Bill_Number + "~ " + Installment + "~ " + Due_Date + "~ " + Amount_Due + "~ " + Total_Due; gc.insert_date(orderNumber, parceno, 78, current_tax, 1, DateTime.Now); } catch { } String Parent_Window = driver.CurrentWindowHandle; IWebElement view = driver.FindElement(By.XPath("//*[@id='taxTable']/tbody/tr/td[1]/div/div/a/button")); view.SendKeys(Keys.Enter); try { driver.SwitchTo().Window(driver.WindowHandles.Last()); string url = driver.Url; string billpdf = outputPath + Bill_Number + "currenttax_bill.pdf"; System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; WebClient downloadpdf = new WebClient(); downloadpdf.DownloadFile(url, billpdf); } catch { } //parent window driver.SwitchTo().Window(Parent_Window); string paybutton = driver.FindElement(By.XPath("//*[@id='taxTable']/tbody/tr/td[7]/button")).Text.Trim(); paybutton += paybutton + " "; if (paybutton.Trim().Contains("Special Handling")) { HttpContext.Current.Session["SpecialHandling_SanFrancisco"] = "Yes"; } } gc.CreatePdf_WOP(orderNumber, "Current Property Tax Statements", driver, "CA", "San Francisco"); } else { for (int i = 1; i <= trcount; i++) { try { Property_Address = driver.FindElement(By.XPath("//*[@id='taxTable']/tbody/tr[" + i + "]/td[1]/div/div/h5[1]")).Text; Bill_Type = driver.FindElement(By.XPath("//*[@id='taxTable']/tbody/tr[" + i + "]/td[1]/div/div/h4")).Text; Bill_Number = driver.FindElement(By.XPath("//*[@id='taxTable']/tbody/tr[" + i + "]/td[2]/strong")).Text; Installment = driver.FindElement(By.XPath("//*[@id='taxTable']/tbody/tr[" + i + "]/td[3]/strong")).Text; Due_Date = driver.FindElement(By.XPath("//*[@id='taxTable']/tbody/tr[" + i + "]/td[4]/strong")).Text; Amount_Due = driver.FindElement(By.XPath("//*[@id='taxTable']/tbody/tr[" + i + "]/td[5]/strong")).Text; Total_Due = driver.FindElement(By.XPath("//*[@id='taxTable']/tbody/tr[" + i + "]/td[6]/strong")).Text; string current_tax = Property_Address + "~ " + Bill_Type + "~ " + Bill_Number + "~ " + Installment + "~ " + Due_Date + "~ " + Amount_Due + "~ " + Total_Due; gc.insert_date(orderNumber, parceno, 78, current_tax, 1, DateTime.Now); } catch { } String Parent_Window = driver.CurrentWindowHandle; IWebElement view = driver.FindElement(By.XPath("//*[@id='taxTable']/tbody/tr[" + i + "]/td[1]/div/div/a/button")); view.SendKeys(Keys.Enter); try { driver.SwitchTo().Window(driver.WindowHandles.Last()); string url = driver.Url; string billpdf = outputPath + Bill_Number + "Propertycurrenttax_bill.pdf"; System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; WebClient downloadpdf = new WebClient(); downloadpdf.DownloadFile(url, billpdf); } catch (Exception e) { } //parent window driver.SwitchTo().Window(Parent_Window); string paybutton = driver.FindElement(By.XPath("//*[@id='taxTable']/tbody/tr[" + i + "]/td[7]/button")).Text.Trim(); paybutton += paybutton + " "; if (paybutton.Trim().Contains("Special Handling")) { HttpContext.Current.Session["SpecialHandling_SanFrancisco"] = "Yes"; } } } gc.CreatePdf_WOP(orderNumber, "Current Property Tax Statements", driver, "CA", "San Francisco"); driver.FindElement(By.XPath("//*[@id='block-system-main']/div/div/article/div/div/div/div[3]/div/div/div[1]/ul/li[2]/a")).Click(); Thread.Sleep(3000); gc.CreatePdf_WOP(orderNumber, "Payment History Details", driver, "CA", "San Francisco"); TaxTime = DateTime.Now.ToString("HH:mm:ss"); LastEndTime = DateTime.Now.ToString("HH:mm:ss"); gc.insert_TakenTime(orderNumber, "CA", "San Francisco", StartTime, AssessmentTime, TaxTime, CitytaxTime, LastEndTime); driver.Quit(); HttpContext.Current.Session["titleparcel"] = null; gc.mergpdf(orderNumber, "CA", "San Francisco"); return("Data Inserted Successfully"); } catch (Exception ex) { driver.Quit(); chdriver.Quit(); GlobalClass.LogError(ex, orderNumber); throw ex; } } }