@Test public void testBrowserName() { WebDriver driver = getDriver(); ExamplePage page = getPage(); WebElement element = page.findElement(By.tagName("html")); SeleniumConfig config = SeleniumConfig.getConfig(); String browserName = config.getBrowserCaps().getBrowserName(); assertEquals(WebDriverUtils.getBrowserName((SearchContext) driver), browserName); assertEquals(WebDriverUtils.getBrowserName(page), browserName); assertEquals(WebDriverUtils.getBrowserName(element), browserName); try { WebDriverUtils.getBrowserName(mock(WebDriver.class)); fail("No exception was thrown"); } catch (UnsupportedOperationException e) { assertEquals(e.getMessage(), "The specified context is unable to describe its capabilities"); } }
@SProperty(name = "ng-exactRepeat-row") public By getByExactRepeaterRow(String repeaterRow) { String repeater = repeaterRow.split("###")[0]; int row = Integer.valueOf(repeaterRow.split("###")[1]); return new ByAngularRepeaterRow(NgWebDriver.DEFAULT_ROOT_SELECTOR, repeater, true, row) { @Override public List<WebElement> findElements(SearchContext searchContext) { List<WebElement> elements = new ArrayList<>(); try { elements.add(this.findElement(searchContext)); } catch (Exception ex) { } return elements; } }; }
@Test(enabled = false) public void moveTo() throws Throwable { driver = new JavaDriver(); SwingUtilities.invokeAndWait(new Runnable() { @Override public void run() { frame.setLocationRelativeTo(null); frame.setVisible(true); } }); WebElement element1 = driver.findElement(By.name("click-me")); new Actions(driver).moveToElement(element1).click().perform(); buttonMouseActions.setLength(0); new Actions(driver).moveToElement(element1).perform(); AssertJUnit.assertTrue(buttonMouseActions.length() > 0); AssertJUnit.assertEquals("moved-", buttonMouseActions.toString()); new Actions(driver).moveToElement(element1, 10, 10).perform(); AssertJUnit.assertEquals("moved-moved-", buttonMouseActions.toString()); }
public void login() throws Throwable { driver = new JavaDriver(); WebElement passField = driver.findElement(By.cssSelector("password-field")); AssertJUnit.assertEquals("true", passField.getAttribute("enabled")); passField.clear(); AssertJUnit.assertEquals("", passField.getText()); passField.sendKeys("password"); WebElement button = driver.findElement(By.cssSelector("button")); button.click(); driver.switchTo().window("Error Message"); WebElement label = driver.findElement(By.cssSelector("label[text*='Invalid']")); AssertJUnit.assertEquals("Invalid password. Try again.", label.getText()); WebElement button1 = driver.findElement(By.cssSelector("button")); button1.click(); driver.switchTo().window("JPasswordFieldTest"); passField.clear(); passField.sendKeys("bugaboo", Keys.ENTER); driver.switchTo().window("Message"); WebElement label2 = driver.findElement(By.cssSelector("label[text*='Success']")); AssertJUnit.assertEquals("Success! You typed the right password.", label2.getText()); }
/** * Retourne un selecteur selenium à partir d'un type et d'une valeur sous forme de String. Les différents sélecteur disponible sont. * <ul> * <li>id</li> * <li>name</li> * <li>className</li> * <li>xpath</li> * <li>css</li> * <li>linkText</li> * <li>tagName</li> * <li>partialLinkText</li> * </ul> * Retourne null si aucun sélecteur correspondant au type passé en paramètre n'est trouvé. * @param type * @param selector * @return By */ public static By get(String type, String selector) { By by = null; if ("id".equalsIgnoreCase(type)) { by = By.id(selector); } else if ("name".equalsIgnoreCase(type)) { by = By.name(selector); } else if ("className".equalsIgnoreCase(type)) { by = By.className(selector); } else if ("xpath".equalsIgnoreCase(type)) { by = By.xpath(selector); } else if ("css".equalsIgnoreCase(type)) { by = By.cssSelector(selector); } else if ("linkText".equalsIgnoreCase(type)) { by = By.linkText(selector); } else if ("tagName".equalsIgnoreCase(type)) { by = By.tagName(selector); } else if ("partialLinkText".equalsIgnoreCase(type)) { by = By.partialLinkText(selector); } return by; }
public void pressGeneratesSameEvents() throws Throwable { events = MouseEvent.MOUSE_PRESSED; SwingUtilities.invokeAndWait(new Runnable() { @Override public void run() { actionsArea.setText(""); } }); driver = new JavaDriver(); WebElement b = driver.findElement(By.name("click-me")); WebElement t = driver.findElement(By.name("actions")); Point location = EventQueueWait.call_noexc(button, "getLocationOnScreen"); Dimension size = EventQueueWait.call_noexc(button, "getSize"); Robot r = new Robot(); r.setAutoDelay(10); r.setAutoWaitForIdle(true); r.mouseMove(location.x + size.width / 2, location.y + size.height / 2); r.mousePress(InputEvent.BUTTON1_MASK); r.mouseRelease(InputEvent.BUTTON1_MASK); new EventQueueWait() { @Override public boolean till() { return actionsArea.getText().length() > 0; } }.wait("Waiting for actionsArea failed?"); String expected = t.getText(); tclear(); Point location2 = EventQueueWait.call_noexc(actionsArea, "getLocationOnScreen"); Dimension size2 = EventQueueWait.call_noexc(actionsArea, "getSize"); r.mouseMove(location2.x + size2.width / 2, location2.y + size2.height / 2); r.mousePress(InputEvent.BUTTON1_MASK); r.mouseRelease(InputEvent.BUTTON1_MASK); b.click(); AssertJUnit.assertEquals(expected, t.getText()); tclear(); new Actions(driver).moveToElement(b).click().perform(); AssertJUnit.assertEquals(expected, t.getText()); }
@Action(object = ObjectType.BROWSER, desc = "Check all the check boxes in the context") public void checkAllCheckBoxes() { try { List<WebElement> checkboxes = Driver.findElements(By.cssSelector("input[type=checkbox]")); if (checkboxes.isEmpty()) { Report.updateTestLog(Action, "No Checkbox present in the page", Status.WARNING); } else { for (WebElement checkbox : checkboxes) { if (checkbox.isDisplayed() && !checkbox.isSelected()) { checkbox.click(); } } Report.updateTestLog(Action, "All checkboxes are checked", Status.PASS); } } catch (Exception ex) { Report.updateTestLog(Action, "Error while checking checkboxes - " + ex, Status.FAIL); Logger.getLogger(CheckBox.class.getName()).log(Level.SEVERE, null, ex); } }
public void rightClickGeneratesSameEvents() throws Throwable { events = MouseEvent.MOUSE_CLICKED; SwingUtilities.invokeAndWait(new Runnable() { @Override public void run() { actionsArea.setText(""); } }); driver = new JavaDriver(); WebElement b = driver.findElement(By.name("click-me")); WebElement t = driver.findElement(By.name("actions")); Point location = EventQueueWait.call_noexc(button, "getLocationOnScreen"); Dimension size = EventQueueWait.call_noexc(button, "getSize"); Robot r = new Robot(); r.setAutoDelay(10); r.setAutoWaitForIdle(true); r.mouseMove(location.x + size.width / 2, location.y + size.height / 2); r.mousePress(InputEvent.BUTTON3_MASK); r.mouseRelease(InputEvent.BUTTON3_MASK); new EventQueueWait() { @Override public boolean till() { return actionsArea.getText().length() > 0; } }.wait("Waiting for actionsArea failed?"); String expected = t.getText(); tclear(); Point location2 = EventQueueWait.call_noexc(actionsArea, "getLocationOnScreen"); Dimension size2 = EventQueueWait.call_noexc(actionsArea, "getSize"); r.mouseMove(location2.x + size2.width / 2, location2.y + size2.height / 2); r.mousePress(InputEvent.BUTTON1_MASK); r.mouseRelease(InputEvent.BUTTON1_MASK); new Actions(driver).moveToElement(b).contextClick().perform(); AssertJUnit.assertEquals(expected, t.getText()); }
@Then("^she can see notification about integrations \"([^\"]*)\" in which is tech extension used$") public void usedInIntegrations(String integrations) throws Throwable { String[] integrationsNames = integrations.split(", "); for (String integrationName : integrationsNames) { modalDialogPage.getElementContainingText(By.cssSelector("strong"), integrationName).shouldBe(visible); } }
/** * 点击 顶部TAB * * @param barname */ public static void clickTopTab(String barname) { LogUtil.info("点击 顶部TAB:" + barname); By parentBy = By.xpath("//android.widget.HorizontalScrollView"); By findBy = By.name(barname); MobileElement element = baseOpt.scrollToView(parentBy, findBy, 2, 5); element.click(); }
/** * An expectation for checking that there is at least one element present on a web page. * * @param locator * used to find the element * @param nb * is exactly number of responses * @return the list of WebElements once they are located */ public static ExpectedCondition<List<WebElement>> presenceOfNbElementsLocatedBy(final By locator, final int nb) { return new ExpectedCondition<List<WebElement>>() { @Override public List<WebElement> apply(WebDriver driver) { final List<WebElement> elements = driver.findElements(locator); return elements.size() == nb ? elements : null; } }; }
private WebElement findTextAtRow(String text, List<WebElement> rows) { for (WebElement r : rows) { List<WebElement> cells = r.findElements(By.tagName("td")); for (WebElement cell : cells) { if(text.trim().equals(cell.getText().trim())){ return r; } } } return null; }
/** * @category Set Element */ private void typeInElement(WebElement element, String content) { _action.moveToElement(element); switch (this.getFieldType(element)) { case "choice": List<WebElement> options = element.findElements(By.tagName("option")); for (int i = 0; i < options.size(); i++) { if (options.get(i).getText().trim().equalsIgnoreCase(content)) { element.click(); options.get(i).click(); break; } } break; default: _action.click(); if(!this.getFieldValueByID(element.getAttribute("id")).equalsIgnoreCase("")) { //TODO - Find a faster way to do this. _action.sendKeys(Keys.END); for (int i = 0; i <this.getFieldValueByID(element.getAttribute("id")).length(); i ++) { _action.sendKeys(Keys.BACK_SPACE); } } _action.sendKeys(content); _action.sendKeys(Keys.TAB); _action.perform(); } }
public void getEnabled() throws Throwable { driver = new JavaDriver(); SwingUtilities.invokeAndWait(new Runnable() { @Override public void run() { frame.setLocationRelativeTo(null); frame.setVisible(true); } }); WebElement button = driver.findElement(By.cssSelector("button")); AssertJUnit.assertEquals("Click Me!!", button.getText()); AssertJUnit.assertEquals("true", button.getAttribute("enabled")); button.click(); }
@Test public void testByID() { IElement element = ElementBuilders.element() .withName("elementByID") .withId("textFieldID") .please(); By expected = By.id("textFieldID"); By byElementFromFactory = byFactory.byElement(element); Assert.assertEquals("Результат работы IOSFactory по id некорректен", expected, byElementFromFactory); }
/** * 查找元素集合 * * @param by * @return */ public List<WebElement> findElements(By by) { List<WebElement> elementList = null; try { elementList = getDriver().findElements(by); } catch (Exception e) { LogUtil.error(getDriver().manage().logs() + "==>" + by.toString() + " 未找到!" + e); screenShot(); AssertUtil.fail(by.toString() + " 未找到!"); } return elementList; }
public List<UpcomingPublicationOverivewWidget> getUpcomingPublicationsWidgets() { return getWebDriver() .findElements(By.xpath("//*[@data-uipath='ps.overview.upcoming-publications.publication']")) .stream() .map(UpcomingPublicationOverivewWidget::new) .collect(toList()); }
@When("in '$identity' table click on '$element' for row with parameters: $params") public void whenInTableClickElementForRowWithParameters(By identity, By element, ExamplesTable params) { WebStepsFactory.getTableSteps(identity) .inTableClickOnIdentityInRowsWithParameters(element, params); }
@Override public WebElement findElement(SearchContext driver) { String attrName = getAttrName(); String attrVal = getValue(); By by = getBy(); List<WebElement> elementList = driver.findElements(by); for(WebElement ele : elementList) { if(driver instanceof WebDriver) { new Actions((WebDriver) driver).moveToElement(ele); } if(attrVal.equals(ele.getAttribute(attrName))) { return ele; } } return null; }
private String getFieldType(WebElement element) { this.focusForm(true); String type = element.findElement(By.id(element.getAttribute("id").replaceFirst("element", "label"))).getAttribute("type"); try { if(type.equalsIgnoreCase("Choice") && element.findElement(By.tagName("select")).getAttribute("disabled").equalsIgnoreCase("true")) { type = "String"; } }catch (Exception ex) { //TODO - find a way to check if the field is readonly. } return type; }
/** * Return a static text locator that contains text * */ public static By for_text(String text) { String up = text.toUpperCase(); String down = text.toLowerCase(); return By.xpath("//UIAStaticText[@visible=\"true\" and (contains(translate(@name,\"" + up + "\",\"" + down + "\"), \"" + down + "\") or contains(translate(@hint,\"" + up + "\",\"" + down + "\"), \"" + down + "\") or contains(translate(@label,\"" + up + "\",\"" + down + "\"), \"" + down + "\") or contains(translate(@value,\"" + up + "\",\"" + down + "\"), \"" + down + "\"))]"); }
public void getText() throws Throwable { driver = new JavaDriver(); WebElement textField = driver.findElement(By.cssSelector("text-field")); textField.clear(); AssertJUnit.assertEquals("", textField.getText()); textField.sendKeys("Lewis Carroll"); AssertJUnit.assertEquals("Lewis Carroll", textField.getText()); textField.clear(); AssertJUnit.assertEquals("", textField.getText()); textField.sendKeys("htt://www.google.com "); AssertJUnit.assertEquals("htt://www.google.com", textField.getText().trim()); }
public void checkBasicRecording() throws Throwable { List<WebElement> buttons = driver.findElements(By.cssSelector("toggle-button")); AssertJUnit.assertTrue(buttons.size() > 0); buttons.get(3).click(); buttons.get(0).click(); System.out.println(scriptElements); AssertJUnit.assertTrue(scriptElements.size() > 0); }
public void sendKeys() throws Throwable { driver = new JavaDriver(); WebElement textField = driver.findElement(By.cssSelector("text-field")); AssertJUnit.assertEquals("true", textField.getAttribute("editable")); textField.clear(); AssertJUnit.assertEquals("", textField.getText()); textField.sendKeys("Lewis CarrollR"); textField.sendKeys(Keys.BACK_SPACE); AssertJUnit.assertEquals("Lewis Carroll", textField.getText()); textField.sendKeys(Keys.HOME + "Jhon "); AssertJUnit.assertEquals("Jhon Lewis Carroll", textField.getText()); textField.sendKeys(OSUtils.getKeysFor(textField, "select-all")); textField.sendKeys(Keys.DELETE); AssertJUnit.assertEquals("", textField.getText()); }
@Test public void search() { open("https://google.com/"); $(By.name("q")).val("Selenide").pressEnter(); $$("#ires .g").shouldHave(CollectionCondition.sizeGreaterThan(5)); for (int i = 0; i < 5; i++) { SelenideElement link = $("#ires .g", i).find("a"); System.out.println(link.attr("href")); link.click(); back(); } sleep(1000); }
public void getLabelText() throws Throwable { driver = new JavaDriver(); SwingUtilities.invokeAndWait(new Runnable() { @Override public void run() { frame.setLocationRelativeTo(null); frame.setVisible(true); } }); WebElement element1 = driver.findElement(By.cssSelector("label")); AssertJUnit.assertEquals("lbl:Enter The Text", element1.getAttribute("labelText")); }
/** * Check if an element is visible. * * @param selector Selector to find the element. * @return Return whether the element is visible or not. */ public boolean isVisible(By selector) { WebElement element = webDriver.findElement(selector); if (element == null) { return false; } return element.isDisplayed(); }
private void performClickOnMenuItemInMenu(WebElement menu, WebElement menuItem, int itemsB4Click, int itemsAfterClick) throws InterruptedException { menu.click(); List<WebElement> menuItemsBeforeClick = driver.findElements(By.cssSelector("menu-item")); AssertJUnit.assertEquals(itemsB4Click, menuItemsBeforeClick.size()); menuItem.click(); List<WebElement> menuItemsAfterClick = driver.findElements(By.cssSelector("menu-item")); AssertJUnit.assertEquals(itemsAfterClick, menuItemsAfterClick.size()); }
public void deleteLastProduct() { //delete the last position try { driver.findElement(By.xpath("//*[contains(@name, 'remove_cart_item')]")).click(); driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); } catch (NoSuchElementException ex3) { wait.until(elementToBeClickable(By.xpath("//*[contains(@name, 'remove_cart_item')]"))).click(); driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); } wait.until(invisibilityOfAllElements(driver.findElements(By.xpath("//td[@class='item']")))); System.out.println("Position " + n + " deleted."); }
@Step("delete todo item") public boolean deleteTodoItem(String itemName){ Assert.assertTrue(driver.findElement(By.xpath("//label[.='" + itemName + "']")).isDisplayed()); WebElement divElt = driver.findElement(By.xpath("//label[.='" + itemName + "']")).findElement(By.xpath("..")); driver.findElement(By.xpath("//label[.='" + itemName + "']")).click(); divElt.findElement(By.tagName("button")).click(); try{ driver.findElement(By.xpath("//label[.='" + itemName + "']")).isDisplayed(); }catch(Exception e){ return true; } return false; }
public void changePasswordTo(String password) { helper.findElement(By.partialLinkText("Change password")).click(); helper.findElement(By.name("current-password:widget")).sendKeys("admin"); helper.findElement(By.name("new-password:widget")).sendKeys(password); helper.findElement(By.name("check-password:widget")).sendKeys(password); helper.findElement(By.xpath("//input[@type='submit' and @value='Change']")).click(); }
public void changeData(String value){ WebElement text = getDriver().findElement(By.id("form:text")); WebElement button = getDriver().findElement(By.id("form:modify")); text.clear(); text.sendKeys(value); button.click(); waitForPageToLoad(); }
/** * @return how many columns this table has */ @PublicAtsApi public int getColumnCount() { new HiddenHtmlElementState(this).waitToBecomeExisting(); String css = this.getElementProperty("_css"); try { if (!StringUtils.isNullOrEmpty(css)) { StringBuilder sb = new StringBuilder(css); sb.append(" tr:nth-child(1) td"); int count = webDriver.findElements(By.cssSelector(sb.toString())).size(); sb = new StringBuilder(css); sb.append(" tr:nth-child(1) th"); count += webDriver.findElements(By.cssSelector(sb.toString())).size(); return count; } else { // get elements matching the following xpath return this.webDriver.findElements(By.xpath("(" + properties.getInternalProperty(HtmlElementLocatorBuilder.PROPERTY_ELEMENT_LOCATOR) + "//tr[th or td])[1]/*")) .size(); } } catch (Exception e) { throw new SeleniumOperationException(this, "getColumnsCount", e); } }
public void findElementOfElement() throws Throwable { driver = new JavaDriver(); SwingUtilities.invokeAndWait(new Runnable() { @Override public void run() { frame.setLocationRelativeTo(null); frame.setVisible(true); } }); WebElement element = driver.findElement(By.name("box-panel")); AssertJUnit.assertNotNull(element); WebElement clickMe = element.findElement(By.name("click-me")); AssertJUnit.assertNotNull(clickMe); }
/** * Attempts a login to the OSCM marketplace with the given credentials. Note * that this method assumes the webdriver to be at the login page. * * @param user * the user name * @param password * the password */ public void loginMarketplace(String user, String password) { WebElement userInput = driver .findElement(By.id(ELEMENT_MARKETPLACE_USERID)); userInput.sendKeys(user); WebElement pwdInput = driver .findElement(By.id(ELEMENT_MARKETPLACE_PASSWORD)); pwdInput.sendKeys(password); driver.findElement(By.id(ELEMENT_MARKETPLACE_LOGIN)).click(); System.out.println("Login OSCM Marketplace"); }
/** * Search for text * @param from a WebElement to start the search from, or the WebDriver to search in all the page * @param by * @return the text found, or "" */ public String getTextIfExists(SearchContext from, By by) { try { WebElement webElement = from.findElement(by); return webElement.getText(); } catch (Exception e) { return ""; } }
private WebElement getTableElement() { WebElement rootElement = webPage.element(tableIdentity); tableElement = rootElement; if (!rootElement.getTagName().contentEquals(TABLE_TAG)) tableElement = rootElement.findElement(By.tagName(TABLE_TAG)); return tableElement; }
/** * Return the first element matched by the selector, or null if not found * @param from a WebElement to start the search from, or the WebDriver to search in all the page * @param by * @return */ public WebElement findOrNull(SearchContext from, By by) { List<WebElement> webElements = from.findElements(by); if (webElements.isEmpty()) { return null; } return webElements.get(0); }
public void getAttributes() throws Throwable { driver = new JavaDriver(); WebElement slider = driver.findElement(By.cssSelector("slider")); AssertJUnit.assertEquals("15", slider.getAttribute("value")); slider.sendKeys(Keys.ARROW_RIGHT); AssertJUnit.assertEquals("16", slider.getAttribute("value")); slider.sendKeys(Keys.ARROW_LEFT); AssertJUnit.assertEquals("15", slider.getAttribute("value")); slider.sendKeys(Keys.ARROW_UP); AssertJUnit.assertEquals("16", slider.getAttribute("value")); for (int i = 0; i < 15; i++) { slider.sendKeys(Keys.ARROW_DOWN); } AssertJUnit.assertEquals("1", slider.getAttribute("value")); for (int i = 0; i < 15; i++) { slider.sendKeys(Keys.ARROW_UP); } AssertJUnit.assertEquals("16", slider.getAttribute("value")); for (int i = 0; i < 15; i++) { slider.sendKeys(Keys.ARROW_LEFT); } AssertJUnit.assertEquals("1", slider.getAttribute("value")); for (int i = 0; i < 15; i++) { slider.sendKeys(Keys.ARROW_RIGHT); } AssertJUnit.assertEquals("16", slider.getAttribute("value")); new Actions(driver).moveToElement(slider).moveByOffset(40, 0).click().perform(); int sliderValue = Integer.parseInt(slider.getAttribute("value")); AssertJUnit.assertTrue(sliderValue > 16); }