List of usage examples for org.openqa.selenium WebDriver findElements
@Override List<WebElement> findElements(By by);
From source file:testingGR.WaitTool.java
License:Open Source License
/** * Wait for the List<WebElement> to be present in the DOM, regardless of * being displayed or not. Returns all elements within the current page DOM. * //from www.jav a 2 s.c o m * @param WebDriver * The driver object to be used * @param By * selector to find the element * @param int The time in seconds to wait until returning a failure * * @return List<WebElement> all elements within the current page DOM, or * null (if the timeout is reached) */ public static List<WebElement> waitForListElementsPresent(WebDriver driver, final By by, int timeOutInSeconds) { List<WebElement> elements; try { driver.manage().timeouts().implicitlyWait(0, TimeUnit.SECONDS); // nullify // implicitlyWait() WebDriverWait wait = new WebDriverWait(driver, timeOutInSeconds); wait.until((new ExpectedCondition<Boolean>() { @Override public Boolean apply(WebDriver driverObject) { return areElementsPresent(driverObject, by); } })); elements = driver.findElements(by); driver.manage().timeouts().implicitlyWait(DEFAULT_WAIT_4_PAGE, TimeUnit.SECONDS); // reset // implicitlyWait return elements; // return the element } catch (Exception e) { e.printStackTrace(); } return null; }
From source file:uk.co.iyana.asserts.html.test.HtmlPageTester.java
private static void testMultiValueElement(AssertElement assertElement, WebDriver driver) { // find the element List<WebElement> webElementList = driver.findElements(By.xpath(assertElement.getXpath())); if (assertElement.getCount() != null) { PrettyPrint.print("expected size: " + assertElement.getCount(), 3); PrettyPrint.print("actual size: " + webElementList.size(), 3); Assert.assertEquals(webElementList.size(), (int) assertElement.getCount(), "Did not find expected number of elements"); }//from w w w . j av a2s . co m // check each of the attributes for (AssertAttribute assertAttribute : assertElement.getAssertAttributes()) { // collect the values List<String> values = new ArrayList<>(); for (WebElement webElement : webElementList) { values.add(webElement.getAttribute(assertAttribute.getName()).trim()); } PrettyPrint.print("Attribute: " + assertAttribute.getName(), 2); PrettyPrint.print("expected value: " + assertAttribute.getValues().toString(), 3); PrettyPrint.print("actual value: " + values.toString(), 3); Assert.assertEquals(values, assertAttribute.getValues(), "Attribute " + assertElement.getName() + "." + assertAttribute.getName() + " has incorrect value list"); } }
From source file:uk.co.iyana.asserts.html.test.HtmlPageTester.java
private static void testTables(PageTestData testData, WebDriver driver) { for (AssertTable assertTable : testData.getAssertTables()) { PrettyPrint.print("Table: " + assertTable.getName(), 1); // find the titles String titleXpath = assertTable.getXpath() + "//th"; List<WebElement> thList = driver.findElements(By.xpath(titleXpath)); List<String> titles = new ArrayList<>(); for (WebElement th : thList) { titles.add(th.getText().trim()); }/*from w w w . j a va 2 s .c om*/ PrettyPrint.print("Expected titles:" + assertTable.getTitles(), 2); PrettyPrint.print("Actual titles:" + titles, 2); Assert.assertEquals(titles, assertTable.getTitles(), "Titles mismatched"); } }
From source file:utilities.AccountHelper.java
public void bong88Login(WebDriver driver) { String username = "sjk36t300019"; String password = "Qqq111"; String homeUrl = "http://bong88.com"; driver.get(homeUrl);/* www. j ava 2s .c o m*/ if (driver.getCurrentUrl().contains("login888")) { List<WebElement> userFields = driver.findElements(By.xpath("//input[@id='txtID']")); List<WebElement> pwdFields = driver.findElements(By.xpath("//input[@id='txtPW']")); List<WebElement> loginBtns = driver .findElements(By.xpath("//div[@class='loginBtnPos']/a[@class='login_btn']")); if (userFields.size() > 0 && pwdFields.size() > 0 && loginBtns.size() > 0 && userFields.size() < 2 && pwdFields.size() < 2 && loginBtns.size() < 2) { userFields.get(0).sendKeys(username); pwdFields.get(0).sendKeys(password); loginBtns.get(0).click(); } else { helper.setLog("Username or Password or Login button not found."); } } else { helper.setLog("User seems to be logged in."); } }
From source file:utils.WebCommonMethods.java
public static boolean isElementPresent(WebDriver driver, By by) { try {/*from w ww. ja v a 2s.c o m*/ return driver.findElements(by).size() > 0; } catch (Exception e) //NoSuchElementException { return false; } }
From source file:utils.WebDriverUtils.java
private static List<WebElement> getElementsByXpath(WebDriver webDriver, String xpath) { return webDriver.findElements(By.xpath(xpath)); }
From source file:utils.WebDriverUtils.java
private static List<WebElement> getElementsByClassName(WebDriver webDriver, String className) { return webDriver.findElements(By.className(className)); }
From source file:utils.WebDriverUtils.java
public static int getCountOfNodes(WebDriver driver, String xpath) { return driver.findElements(By.xpath(xpath)).size(); }
From source file:wsattacker.sso.openid.attacker.evaluation.attack.KeyConfusionAttack.java
License:Open Source License
@Attack(number = 1) private AttackResult performSecondVariantOfKeyConfusionAttack() { OpenIdServerConfiguration.getAttackerInstance().setInterceptIdPResponse(true); OpenIdServerConfiguration.getAttackerInstance().setMethodGet(false); OpenIdServerConfiguration.getAnalyzerInstance().setInterceptIdPResponse(true); OpenIdServerConfiguration.getAnalyzerInstance().setMethodGet(false); OpenIdServerConfiguration.getAttackerInstance().setPerformAttack(true); String victimIdp = OpenIdServerConfiguration.getAnalyzerInstance().getXrdsConfiguration().getBaseUrl(); AttackParameter opEndpointParameter = keeper.getParameter("openid.op_endpoint"); opEndpointParameter.setAttackValueUsedForSignatureComputation(true); opEndpointParameter.setValidMethod(HttpMethod.DO_NOT_SEND); opEndpointParameter.setAttackMethod(HttpMethod.GET); opEndpointParameter.setAttackValue(victimIdp); String victimIdentity = OpenIdServerConfiguration.getAnalyzerInstance().getXrdsConfiguration() .getIdentity();/*from w w w . j a v a 2s . com*/ AttackParameter claimedIdParameter = keeper.getParameter("openid.claimed_id"); claimedIdParameter.setAttackValueUsedForSignatureComputation(true); claimedIdParameter.setValidMethod(HttpMethod.DO_NOT_SEND); claimedIdParameter.setAttackMethod(HttpMethod.GET); claimedIdParameter.setAttackValue(victimIdentity); AttackParameter identityParameter = keeper.getParameter("openid.identity"); identityParameter.setAttackValueUsedForSignatureComputation(true); identityParameter.setValidMethod(HttpMethod.DO_NOT_SEND); identityParameter.setAttackMethod(HttpMethod.GET); identityParameter.setAttackValue(victimIdentity); // include modified parameter in signature AttackParameter sigParameter = keeper.getParameter("openid.sig"); sigParameter.setValidMethod(HttpMethod.DO_NOT_SEND); sigParameter.setAttackMethod(HttpMethod.GET); // copy log entries before login List<RequestLogEntry> logEntriesBeforeLogin = new ArrayList<>(RequestLogger.getInstance().getEntryList()); LoginResult loginResultAttacker = serviceProvider.login(ServiceProvider.User.ATTACKER); WebDriver driver = SeleniumBrowser.getWebDriver(); JavascriptExecutor jse = (JavascriptExecutor) driver; String url = serviceProvider.getUrl(); jse.executeScript("var win = window.open('" + url + "');"); List<String> windowhandles = new ArrayList<>(driver.getWindowHandles()); driver.switchTo().window(windowhandles.get(1)); LoginResult loginResultVictim = serviceProvider.login(ServiceProvider.User.VICTIM); driver.switchTo().window(windowhandles.get(0)); List<WebElement> links = driver.findElements(By.tagName("a")); links.get(1).click(); /* determines the log entries of the current login procedure: logEntries = logEntriesAfterLogin - logEntriesBeforeLogin (subtraction of sets) */ List<RequestLogEntry> logEntriesAfterLogin = RequestLogger.getInstance().getEntryList(); List<RequestLogEntry> logEntries = (List<RequestLogEntry>) CollectionUtils.subtract(logEntriesAfterLogin, logEntriesBeforeLogin); // invert order of log - should be chronological Collections.reverse(logEntries); loginResultAttacker.setScreenshot(SeleniumBrowser.takeScreenshot()); loginResultAttacker.setLogEntries(logEntries); boolean success = serviceProvider.determineAuthenticatedUser(driver.getPageSource(), driver.getCurrentUrl()) == User.VICTIM; Result result = success ? Result.SUCCESS : Result.FAILURE; Interpretation interpretation = success ? Interpretation.CRITICAL : Interpretation.PREVENTED; if (loginResultAttacker.hasDirectVerification()) { result = Result.NOT_PERFORMABLE; interpretation = Interpretation.NEUTRAL; } assert isSignatureValid(loginResultAttacker) : "Signature is not valid!"; // close second window driver.switchTo().window(windowhandles.get(1)).close(); driver.switchTo().window(windowhandles.get(0)); return new AttackResult("Second Variant of Key Confusion", loginResultAttacker, result, interpretation); }