List of usage examples for org.openqa.selenium.support.ui Wait until
<T> T until(Function<? super F, T> isTrue);
From source file:com.digi.selenium.util.BillNReload.Bill_n_Reload_Prepaid_Broadband_Util.java
/** Reads the header data after selecting * different options from dropdown list//from www . j av a 2 s . c o m **/ protected void targetTableEventData() throws InterruptedException { Wait<WebDriver> waittable = new WebDriverWait(getDriver(), 30); JavascriptExecutor jse = (JavascriptExecutor) getDriver(); List<WebElement> speechbubble = null; boolean breakit; while (true) { breakit = true; try { getWebElement_By_xpath("//*[@id='content']/div[9]/div[1]/div[2]/ul/li[2]/a").click(); jse.executeScript("window.scrollBy(0,240)", ""); waittable .until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//*[@id='details-table']"))); getDriver().manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS); speechbubble = getDriver().findElements(By.xpath("//*[@id='column-filter-1']/ul/li")); System.out.println("Number of ChildNodes :" + speechbubble.size()); } catch (Exception e) { //e.printStackTrace(); breakit = false; } if (breakit == true) { break; } } //jse.executeScript("window.scrollBy(0,100)", ""); // Map<String,List<String>> testHeaderMap = new HashMap <String,List<String>>(); //List<String> lsheaderTableKey = new ArrayList<String>() ; List<String> lsheaderdata = null; int speechbubbleSize = speechbubble.size(); String arHeaderKey[] = new String[speechbubbleSize]; String headerKeyStr = ""; for (int k = 0; k < speechbubbleSize; k++) { while (true) { breakit = true; try { jse.executeScript("window.scrollBy(0,50)", ""); //click the dropdown control waittable.until(ExpectedConditions .visibilityOfElementLocated(By.xpath("//*[@id='column-filter-sb']/span[2]"))); getDriver().findElement(By.xpath("//*[@id='column-filter-sb']/span[2]")).click(); int j = k + 1; String nodepath = "//*[@id='column-filter-1']/ul/li" + "[" + j + "]" + "/label"; waittable.until(ExpectedConditions.visibilityOfElementLocated(By.xpath(nodepath))); WebElement childElementSub = getDriver().findElement(By.xpath(nodepath)); System.out.println("Id :'" + j + "' " + childElementSub.getText()); String headertableKey = childElementSub.getText(); //lsheaderTableKey.add(headertableKey); headerKeyStr = headerKeyStr + headertableKey + AppConstants.COMMA; childElementSub.click(); //click the checkbox //click the update button waittable.until(ExpectedConditions .visibilityOfElementLocated(By.xpath("//*[@id='speechBubble']/div[3]/button"))); getDriver().findElement(By.xpath("//*[@id='speechBubble']/div[3]/button")).click(); getDriver().manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); //System.out.println("Id :'" +j+"' Update Button Clicked" ); //Read the bill history table header data - begin waittable.until( ExpectedConditions.visibilityOfElementLocated(By.xpath("//*[@id='details-table']"))); WebElement headertable = getDriver().findElement(By.xpath("//*[@id='details-table']")); int i = 0; waittable.until( ExpectedConditions.visibilityOfElementLocated(By.xpath("//*[@id='billhistory']/tr"))); List<WebElement> header = headertable.findElements(By.xpath("//*[@id='billhistory']/tr")); // And iterate over them, getting the header data for (WebElement node : header) { List<WebElement> cells = node.findElements(By.tagName("th")); lsheaderdata = new ArrayList<String>(); for (WebElement cell : cells) { //System.out.println("header"+cell.getText()); String headerData = cell.getText(); lsheaderdata.add(headerData); } } //Read the bill history table header data - ends jse.executeScript("window.scrollBy(0,-50)", ""); } catch (Exception e) { //e.printStackTrace(); breakit = false; } if (breakit == true) { int indexPos = headerKeyStr.lastIndexOf(AppConstants.COMMA); String data = headerKeyStr.substring(0, indexPos); arHeaderKey[k] = data; System.out.println("lsheaderTableKey : " + data); dropDownTableHeaderMap.put(arHeaderKey[k], lsheaderdata); break; } } //end while } //end for System.out.println("DropDown Control Data : " + dropDownTableHeaderMap); }
From source file:com.digi.selenium.util.BillNReload.Bill_n_Reload_Prepaid_Broadband_Util.java
/** * Selects show filter dropdown values//w ww.j a v a 2s .c o m */ protected void targetdropdownmonths() { boolean breakIt = true; while (breakIt) { try { Wait<WebDriver> waittable = new WebDriverWait(getDriver(), 30); JavascriptExecutor jse = (JavascriptExecutor) getDriver(); jse.executeScript("window.scrollBy(0,-800)", ""); jse.executeScript("window.scrollBy(0,850)", ""); waittable.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//*[@id='showFilters']"))); getDriver().findElement(By.xpath("//*[@id='showFilters']")).click(); dropdownmonths = getDriver().findElements(By.xpath("//*[@id='month-selector']/option")); } catch (Exception e) { breakIt = false; } if (breakIt) { break; } } //while loop ends }
From source file:com.digi.selenium.util.BillNReload.Bill_n_Reload_Prepaid_Util.java
/** * Read the 30Days Graph data/*from w ww . j a v a 2s.c om*/ */ protected void targetGraphData_30Days() { JavascriptExecutor jse = (JavascriptExecutor) getDriver(); //scroll down the page jse.executeScript("window.scrollBy(0,-500)", ""); handleLink_ByText(AppConstants.DAYS_30); Wait<WebDriver> wait = new WebDriverWait(getDriver(), 15); //JavascriptExecutor jse = (JavascriptExecutor)getDriver(); Map<String, String> mapbill = new HashMap<String, String>(); jse.executeScript("window.scrollBy(0,225)", ""); wait.until(ExpectedConditions .visibilityOfElementLocated(By.xpath("//*[name()='svg']/*[name()='g'][13]/*[name()='g'][1]"))); //Working :get the stroke attribute to get the color value of graph //getDriver().manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS); boolean breakIt = true; //Get the BillCycle Elements String billcyclerootNodeXpath = "//*[name()='svg']/*[name()='g'][13]/*[name()='g'][1]"; WebElement billcyclerootElement = getDriver().findElement(By.xpath(billcyclerootNodeXpath)); String billcyclechildXpath = "./*[name()='text']"; List<WebElement> listbillcyclechild = billcyclerootElement.findElements(By.xpath(billcyclechildXpath)); int eleListSize = listbillcyclechild.size(); System.out.println("listChildElements.size() : " + listbillcyclechild.size()); //Get the BillCycle Graph , tooltip Elements String bcGraphRootNodeXpath = "//*[name()='svg']/*[name()='g'][6]/*[name()='g']"; WebElement bcGraphRootElement = getDriver().findElement(By.xpath(bcGraphRootNodeXpath)); String bcGraphChildXpath = "./*[name()='g']"; List<WebElement> listbcGraphChild = bcGraphRootElement.findElements(By.xpath(bcGraphChildXpath)); int bcGraphListSize = listbcGraphChild.size(); if (bcGraphListSize > 0) { targetBCGraphData_30Days = new HashMap(); } // System.out.println("bcGraphListSize.size() : " + listbcGraphChild.size()); for (int j = 0; j < eleListSize; j++) { int n = j + 1; String billCycleDate = null; String bcAtrribute_color = null; while (true) { breakIt = true; try { //read the billcycle data from nodes String billchildNodePath_startDate = billcyclerootNodeXpath.concat("/*[name()='text']") .concat("[").concat(String.valueOf(n).concat("]").concat("/*[name()='tspan']")); WebElement billelement_Date = getDriver().findElement(By.xpath(billchildNodePath_startDate)); billCycleDate = billelement_Date.getText(); if ((billCycleDate.trim().length() > 0) && (!(targetGraphBillCycleDate_30Days.contains(billCycleDate)))) { targetGraphBillCycleDate_30Days.add(billCycleDate); System.out.println("Bill Cycle : '" + n + "' -->" + billCycleDate); } //read the billcycle graph data - color from nodes String billchildNodePath_color = bcGraphRootNodeXpath.concat("/*[name()='g']").concat("[") .concat(String.valueOf(n).concat("]").concat("/*[name()='path']")); //System.out.println("Node billchildNodePath_color : " + billchildNodePath_color); WebElement billelement_color = getDriver().findElement(By.xpath(billchildNodePath_color)); bcAtrribute_color = billelement_color.getAttribute("stroke"); } catch (Exception e) { if (e.getMessage().contains("element is not attached")) { //System.out.println("Error: Element 4 "); breakIt = false; } } if (breakIt) { break; } } //while loop ends targetBCGraphData_30Days.put(Integer.toString(n), bcAtrribute_color); } //for loop ends }
From source file:com.digi.selenium.util.BillNReload.Bill_n_Reload_Prepaid_Util.java
/** * Read the 90Days Graph data//from w w w .ja v a2 s . c o m */ protected void targetGraphData_90Days() { JavascriptExecutor jse = (JavascriptExecutor) getDriver(); //scroll up the page jse.executeScript("window.scrollBy(0,-500)", ""); handleLink_ByText(AppConstants.DAYS_90); Wait<WebDriver> wait = new WebDriverWait(getDriver(), 30); Map<String, String> mapbill = new HashMap<String, String>(); jse.executeScript("window.scrollBy(0,225)", ""); wait.until(ExpectedConditions .visibilityOfElementLocated(By.xpath("//*[name()='svg']/*[name()='g'][13]/*[name()='g'][1]"))); //Working :get the stroke attribute to get the color value of graph getDriver().manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS); boolean breakIt = true; //Get the BillCycle Elements String billcyclerootNodeXpath = "//*[name()='svg']/*[name()='g'][13]/*[name()='g'][1]"; WebElement billcyclerootElement = getDriver().findElement(By.xpath(billcyclerootNodeXpath)); String billcyclechildXpath = "./*[name()='text']"; List<WebElement> listbillcyclechild = billcyclerootElement.findElements(By.xpath(billcyclechildXpath)); int eleListSize = listbillcyclechild.size(); // System.out.println("listChildElements.size() : " + listbillcyclechild.size()); //Get the BillCycle Graph , tooltip Elements String bcGraphRootNodeXpath = "//*[name()='svg']/*[name()='g'][6]/*[name()='g']"; WebElement bcGraphRootElement = getDriver().findElement(By.xpath(bcGraphRootNodeXpath)); String bcGraphChildXpath = "./*[name()='g']"; List<WebElement> listbcGraphChild = bcGraphRootElement.findElements(By.xpath(bcGraphChildXpath)); int bcGraphListSize = listbcGraphChild.size(); if (bcGraphListSize > 0) { targetBCGraphData_90Days = new HashMap(); } // System.out.println("bcGraphListSize.size() : " + listbcGraphChild.size()); for (int j = 0; j < eleListSize; j++) { int n = j + 1; Map<String, String> tempBCGData = new HashMap(); String billCycleDate = null; String bcAtrribute_color = null; while (true) { breakIt = true; try { //read the billcycle data from nodes String billchildNodePath_startDate = billcyclerootNodeXpath.concat("/*[name()='text']") .concat("[").concat(String.valueOf(n).concat("]").concat("/*[name()='tspan'][1]")); WebElement billelement_startDate = getDriver() .findElement(By.xpath(billchildNodePath_startDate)); //Thread.sleep(2000); String billAtrribute_startDate = billelement_startDate.getText(); String billchildNodePath_endDate = billcyclerootNodeXpath.concat("/*[name()='text']") .concat("[").concat(String.valueOf(n).concat("]").concat("/*[name()='tspan'][2]")); WebElement billelement_endDate = getDriver().findElement(By.xpath(billchildNodePath_endDate)); String billAtrribute_endDate = billelement_endDate.getText(); billCycleDate = billAtrribute_startDate.concat("_").concat(billAtrribute_endDate); //System.out.println("Bill Cycle : '" + n+"' -->"+ billCycleDate); //read the billcycle graph data - color, tooltip from nodes String billchildNodePath_color = bcGraphRootNodeXpath.concat("/*[name()='g']").concat("[") .concat(String.valueOf(n).concat("]").concat("/*[name()='path']")); //System.out.println("Node billchildNodePath_color : " + billchildNodePath_color); WebElement billelement_color = getDriver().findElement(By.xpath(billchildNodePath_color)); bcAtrribute_color = billelement_color.getAttribute("stroke"); String colorMap = AppConstants.COLOR.concat(AppConstants.BEGIN_BRACKET).concat(billCycleDate) .concat(AppConstants.CLOSE_BRACKET); tempBCGData.put(colorMap, bcAtrribute_color); Actions builder = new Actions(getDriver()); String childMouseHouverNode = bcGraphRootNodeXpath.concat("/*[name()='g']").concat("[") .concat(String.valueOf(n).concat("]")); builder.moveToElement(getDriver().findElement(By.xpath(childMouseHouverNode))).perform(); WebElement mouseHoverNodeElement = getDriver() .findElement(By.xpath("//div[9]/div[1]/div[1]/div[2]/div/div/div")); if (mouseHoverNodeElement != null) { String toolTipText = mouseHoverNodeElement.getText(); System.out.println("toolTipText : '" + n + "' " + toolTipText); String toolTipTextMap = AppConstants.TOOL_TIP_TEXT.concat(AppConstants.BEGIN_BRACKET) .concat(billCycleDate).concat(AppConstants.CLOSE_BRACKET); tempBCGData.put(toolTipTextMap, toolTipText.replaceAll("\n", "")); builder.moveToElement(getDriver().findElement(By.xpath(billchildNodePath_startDate))) .click().perform(); } } catch (Exception e) { if (e.getMessage().contains("element is not attached")) { //System.out.println("Error: Element 4 "); breakIt = false; } } if (breakIt) { break; } } //while loop ends targetBCGraphData_90Days.put(billCycleDate, tempBCGData); } //for loop ends }
From source file:com.digi.selenium.util.BillNReload.Bill_n_Reload_Prepaid_Util.java
/** * Read the 60Days Graph data/*from w w w . jav a 2 s .c o m*/ */ protected void targetGraphData_60Days() { JavascriptExecutor jse = (JavascriptExecutor) getDriver(); handleLink_ByText(AppConstants.DAYS_60); Wait<WebDriver> wait = new WebDriverWait(getDriver(), 60); Map<String, String> mapbill = new HashMap<String, String>(); jse.executeScript("window.scrollBy(0,-500)", ""); jse.executeScript("window.scrollBy(0,225)", ""); wait.until(ExpectedConditions .visibilityOfElementLocated(By.xpath("//*[name()='svg']/*[name()='g'][13]/*[name()='g'][1]"))); //Working :get the stroke attribute to get the color value of graph getDriver().manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS); boolean breakIt = true; //Get the BillCycle Elements String billcyclerootNodeXpath = "//*[name()='svg']/*[name()='g'][13]/*[name()='g'][1]"; WebElement billcyclerootElement = getDriver().findElement(By.xpath(billcyclerootNodeXpath)); String billcyclechildXpath = "./*[name()='text']"; List<WebElement> listbillcyclechild = billcyclerootElement.findElements(By.xpath(billcyclechildXpath)); int eleListSize = listbillcyclechild.size(); // System.out.println("listChildElements.size() : " + listbillcyclechild.size()); //Get the BillCycle Graph , tooltip Elements String bcGraphRootNodeXpath = "//*[name()='svg']/*[name()='g'][6]/*[name()='g']"; WebElement bcGraphRootElement = getDriver().findElement(By.xpath(bcGraphRootNodeXpath)); String bcGraphChildXpath = "./*[name()='g']"; List<WebElement> listbcGraphChild = bcGraphRootElement.findElements(By.xpath(bcGraphChildXpath)); int bcGraphListSize = listbcGraphChild.size(); if (bcGraphListSize > 0) { targetBCGraphData_60Days = new HashMap(); } // System.out.println("bcGraphListSize.size() : " + listbcGraphChild.size()); for (int j = 0; j < eleListSize; j++) { int n = j + 1; Map<String, String> tempBCGData = new HashMap(); String billCycleDate = null; String bcAtrribute_color = null; while (true) { breakIt = true; try { //read the billcycle data from nodes String billchildNodePath_startDate = billcyclerootNodeXpath.concat("/*[name()='text']") .concat("[").concat(String.valueOf(n).concat("]").concat("/*[name()='tspan'][1]")); WebElement billelement_startDate = getDriver() .findElement(By.xpath(billchildNodePath_startDate)); //Thread.sleep(2000); String billAtrribute_startDate = billelement_startDate.getText(); String billchildNodePath_endDate = billcyclerootNodeXpath.concat("/*[name()='text']") .concat("[").concat(String.valueOf(n).concat("]").concat("/*[name()='tspan'][2]")); WebElement billelement_endDate = getDriver().findElement(By.xpath(billchildNodePath_endDate)); String billAtrribute_endDate = billelement_endDate.getText(); billCycleDate = billAtrribute_startDate.concat("_").concat(billAtrribute_endDate); //System.out.println("Bill Cycle : '" + n+"' -->"+ billCycleDate); //read the billcycle graph data - color, tooltip from nodes String billchildNodePath_color = bcGraphRootNodeXpath.concat("/*[name()='g']").concat("[") .concat(String.valueOf(n).concat("]").concat("/*[name()='path']")); //System.out.println("Node billchildNodePath_color : " + billchildNodePath_color); WebElement billelement_color = getDriver().findElement(By.xpath(billchildNodePath_color)); bcAtrribute_color = billelement_color.getAttribute("stroke"); String colorMap = AppConstants.COLOR.concat(AppConstants.BEGIN_BRACKET).concat(billCycleDate) .concat(AppConstants.CLOSE_BRACKET); tempBCGData.put(colorMap, bcAtrribute_color); Actions builder = new Actions(getDriver()); String childMouseHouverNode = bcGraphRootNodeXpath.concat("/*[name()='g']").concat("[") .concat(String.valueOf(n).concat("]")); builder.moveToElement(getDriver().findElement(By.xpath(childMouseHouverNode))).perform(); //System.out.println("childMouseHouverNode : '"+n +"' " +childMouseHouverNode); WebElement mouseHoverNodeElement = null; mouseHoverNodeElement = getDriver() .findElement(By.xpath("//div[9]/div[1]/div[1]/div[2]/div/div/div")); //wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//div[9]/div[1]/div[1]/div[2]/div/div/div"))); if (mouseHoverNodeElement != null) { String toolTipText = mouseHoverNodeElement.getText(); System.out.println("toolTipText : '" + n + "' " + toolTipText); String toolTipTextMap = AppConstants.TOOL_TIP_TEXT.concat(AppConstants.BEGIN_BRACKET) .concat(billCycleDate).concat(AppConstants.CLOSE_BRACKET); tempBCGData.put(toolTipTextMap, toolTipText); builder.moveToElement(getDriver().findElement(By.xpath(billchildNodePath_startDate))) .click().perform(); } } catch (Exception e) { if (e.getMessage().contains("element is not attached")) { //System.out.println("Error: Element 4 "); breakIt = false; } } if (breakIt) { break; } } //while loop ends targetBCGraphData_60Days.put(billCycleDate, tempBCGData); } //for loop ends }
From source file:com.digi.selenium.util.BillNReload.Bill_n_Reload_Prepaid_Util.java
protected void targetTableData() { Wait<WebDriver> waittable = new WebDriverWait(getDriver(), 30); JavascriptExecutor jse = (JavascriptExecutor) getDriver(); jse.executeScript("window.scrollBy(0,-800)", ""); //getWebElement_By_xpath("//*[@id='content']/div[9]/div[1]/div[2]/ul/li["+(x+1)+"]").click(); //handleLink_ByText(AppConstants.DAYS_60); jse.executeScript("window.scrollBy(0,800)", ""); waittable.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//*[@id='details-table']"))); WebElement headertable = getDriver().findElement(By.xpath("//*[@id='details-table']")); //int i=0;//www . j a v a2 s. co m List<WebElement> header = headertable.findElements(By.xpath("//*[@id='billhistory']/tr")); System.out.println("===========Table Data========"); // And iterate over them, getting the header data for (WebElement node : header) { List<WebElement> cells = node.findElements(By.tagName("th")); ; for (WebElement cell : cells) { headerList.add(cell.getText()); } WebElement table = getDriver().findElement(By.xpath("//*[@id='details-table']/tbody")); List<WebElement> rows = table.findElements(By.tagName("tr")); // And iterate over them, getting the cells for (WebElement row : rows) { List<WebElement> rowcells = row.findElements(By.tagName("td")); for (WebElement cell : rowcells) { tableDataList.add(cell.getText()); } } } }
From source file:com.digi.selenium.util.BillNReload.Bill_n_Reload_Prepaid_Util.java
/** * Selects the month name from dropdown--showFilters *//* ww w . j ava2 s.c o m*/ protected void targetdropdownmonths() { boolean breakIt; while (true) { breakIt = true; try { Wait<WebDriver> waittable = new WebDriverWait(getDriver(), 30); JavascriptExecutor jse = (JavascriptExecutor) getDriver(); jse.executeScript("window.scrollBy(0,-800)", ""); jse.executeScript("window.scrollBy(0,850)", ""); waittable.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//*[@id='showFilters']"))); getDriver().findElement(By.xpath("//*[@id='showFilters']")).click(); dropdownmonths = getDriver().findElements(By.xpath("//*[@id='month-selector']/option")); } catch (Exception e) { breakIt = false; } if (breakIt) { break; } } }
From source file:com.digi.selenium.util.BillNReload.Bill_n_Reload_Prepaid_Util.java
/** * Reads Y_Axis Data for 30,60,90 days/* www . j a v a 2 s . c om*/ * @param index */ protected void getYAxisData(int index) { boolean breakIt = true; while (true) { breakIt = true; try { JavascriptExecutor jse = (JavascriptExecutor) getDriver(); getWebElement_By_xpath("//div[9]/div[1]/div[2]/ul/li[" + index + "]/a").click(); Wait<WebDriver> wait = new WebDriverWait(getDriver(), 30); if (index == 1) { jse.executeScript("window.scrollBy(0,-210)", ""); jse.executeScript("window.scrollBy(0,210)", ""); } wait.until(ExpectedConditions.visibilityOfElementLocated( By.xpath("//*[name()='svg']/*[name()='g'][13]/*[name()='g'][2]"))); //Working :get the stroke attribute to get the color value of graph getDriver().manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS); //boolean breakIt = true; //Get the BillCycle Elements String yaxisrootNodeXpath = "//*[name()='svg']/*[name()='g'][13]/*[name()='g'][2]"; WebElement yaxisrootElement = getDriver().findElement(By.xpath(yaxisrootNodeXpath)); String yaxischildXpath = "./*[name()='text']"; listyaxischild = yaxisrootElement.findElements(By.xpath(yaxischildXpath)); int eleListSize = listyaxischild.size(); // String targetrootdatapath= "//*[@id='content']/div[9]/div[1]/div[1]/div[2]/div/div/svg/g[13]/g[2]"; if (index == 1) System.out.println("===========30 Days Y-AxisData========"); else { if (index == 2) System.out.println("===========60 Days Y-AxisData========"); else System.out.println("===========90 Days Y-AxisData========"); } } //try ends catch (Exception e) { e.printStackTrace(); breakIt = false; } if (breakIt) { break; } } //while loop ends }
From source file:com.digi.selenium.util.common.PageNavigation.java
protected WebElement tryToGetElementByXPath(String xpath, int maxtry) { Wait<WebDriver> waittable = new WebDriverWait(getDriver(), 30); WebElement element = null;//from w w w . j a va 2s . c om int trycount = 1; boolean breakit; while (trycount != maxtry) { breakit = true; try { element = waittable.until(ExpectedConditions.visibilityOfElementLocated(By.xpath(xpath))); } catch (Exception e) { breakit = false; trycount++; } if (breakit == true) break; } return element; }
From source file:com.digi.selenium.util.common.PageNavigation.java
protected WebElement tryToClickElementByXPath(String xpath, int maxtry) { Wait<WebDriver> waittable = new WebDriverWait(getDriver(), 30); WebElement element = null;/*from ww w. ja v a 2s .c o m*/ int trycount = 1; boolean breakit; while (trycount != maxtry) { breakit = true; try { element = waittable.until(ExpectedConditions.elementToBeClickable(By.xpath(xpath))); } catch (Exception e) { breakit = false; trycount++; } if (breakit == true) break; } return element; }