List of usage examples for org.openqa.selenium Keys UP
Keys UP
To view the source code for org.openqa.selenium Keys UP.
Click Source Link
From source file:com.gargoylesoftware.htmlunit.selenium.TypingTest.java
License:Apache License
/** * A test./*from ww w . java2 s .c om*/ */ @Test public void testArrowKeysAndPageUpAndDown() { final WebDriver driver = getWebDriver("/javascriptPage.html"); final WebElement element = driver.findElement(By.id("keyReporter")); element.sendKeys( "a" + Keys.LEFT + "b" + Keys.RIGHT + Keys.UP + Keys.DOWN + Keys.PAGE_UP + Keys.PAGE_DOWN + "1"); assertThat(element.getAttribute("value"), is("ba1")); }
From source file:com.pentaho.ctools.issues.cde.editor.CDEComponentPanel.java
License:Apache License
/** * ############################### Test Case 1 ############################### * * Test Case Name://from w w w .j av a 2 s.c o m * This test validates all issues related to CDE's Component Panel * * Description: * 399: Accordion works as expected * 410: Shortcuts work * 529: Opening a popup blocks the use of the shortcuts to navigate * CDF-504: baseAxisFont is exposed in Advanced Properties of CCC chart components * * Steps: * 1. Open CDE sample in edit mode, go to components panel and add some components * 2. Assert down, up, left and right shortcuts work on components panel * 3. Assert tab and enter shortcuts work on components panel * 4. Assert opening parameter popup blocks navigation by arrows * 5. Go to chart Advanced Properties and assert baseAxisFont is there */ @Test public void tc01_CDEDashboardEdit_ComponentPanel() { this.log.info("tc01_CDEDashboardEdit_ComponentPanel"); /* * ## Step 1 */ //Open CDE sample in edit mode this.elemHelper.Get(driver, PageUrl.CDE_DASHBOARD); this.elemHelper.WaitForElementInvisibility(driver, By.cssSelector("div.blockUI.blockOverlay")); //Go to Components Panel this.elemHelper.Click(driver, By.xpath("//div[@title='Components Panel']/a")); //Assert behavior of accordion WebElement otherExpander = this.elemHelper.WaitForElementPresenceAndVisible(driver, By.xpath("//div[@id='cdfdd-components-palletePallete']/div[2]/h3/a")); assertNotNull(otherExpander); String otherText = this.elemHelper.WaitForElementPresentGetText(driver, By.xpath("//div[@id='cdfdd-components-palletePallete']/div[2]/h3/a")); assertEquals("Others", otherText); this.elemHelper.Click(driver, By.xpath("//div[@id='cdfdd-components-palletePallete']/div[2]/h3/a")); WebElement tableComponent = this.elemHelper.WaitForElementPresenceAndVisible(driver, By.xpath("//a[@title='table Component']")); assertNotNull(tableComponent); WebElement genericExpander = this.elemHelper.WaitForElementPresenceAndVisible(driver, By.xpath("//div[@id='cdfdd-components-palletePallete']/div[3]/h3/a")); assertNotNull(genericExpander); String genericText = this.elemHelper.WaitForElementPresentGetText(driver, By.xpath("//div[@id='cdfdd-components-palletePallete']/div[3]/h3/a")); assertEquals("Generic", genericText); this.elemHelper.Click(driver, By.xpath("//div[@id='cdfdd-components-palletePallete']/div[3]/h3/a")); this.elemHelper.WaitForElementInvisibility(driver, By.xpath("//a[@title='table Component']")); //Add some Components WebElement chartExpander = this.elemHelper.FindElement(driver, By.xpath("//div[@id='cdfdd-components-palletePallete']/div/h3/span")); assertNotNull(chartExpander); chartExpander.click(); WebElement addAreaChart = this.elemHelper.FindElement(driver, By.xpath("//div[@id='cdfdd-components-palletePallete']/div//a[@title='CCC Area Chart']")); assertNotNull(addAreaChart); addAreaChart.click(); WebElement addBulletChart = this.elemHelper.FindElement(driver, By.xpath("//div[@id='cdfdd-components-palletePallete']/div//a[@title='CCC Bullet Chart']")); assertNotNull(addBulletChart); addBulletChart.click(); otherExpander = this.elemHelper.FindElement(driver, By.xpath("//div[@id='cdfdd-components-palletePallete']/div[2]/h3/span")); assertNotNull(otherExpander); otherExpander.click(); WebElement addTable = this.elemHelper.FindElement(driver, By.xpath("//div[@id='cdfdd-components-palletePallete']/div[2]//a[@title='table Component']")); assertNotNull(addTable); addTable.click(); WebElement addButton = this.elemHelper.FindElement(driver, By.xpath("//div[@id='cdfdd-components-palletePallete']/div[2]//a[@title='Button Component']")); assertNotNull(addButton); addButton.click(); /* * ## Step 2 */ //Select first chart group this.elemHelper.Click(driver, By.xpath("//table[@id='table-cdfdd-components-components']/tbody/tr/td")); this.elemHelper.WaitForAttributeValue(driver, By.xpath("//table[@id='table-cdfdd-components-components']/tbody/tr"), "class", "expanded initialized parent ui-state-active"); String chartGroup = this.elemHelper .FindElement(driver, By.xpath("//table[@id='table-cdfdd-components-components']/tbody/tr")) .getAttribute("class"); assertEquals(chartGroup, "expanded initialized parent ui-state-active"); //Assert groups are expanded and clicking left will collapse them, also assert down arrow moves between showing elements WebElement areaChart = this.elemHelper.FindElement(driver, By.xpath("//table[@id='table-cdfdd-components-components']/tbody/tr[2]")); assertNotNull(areaChart); tableComponent = this.elemHelper.FindElement(driver, By.xpath("//table[@id='table-cdfdd-components-components']/tbody/tr[5]")); assertNotNull(tableComponent); Actions a = new Actions(driver); a.sendKeys(Keys.LEFT).sendKeys(Keys.DOWN).sendKeys(Keys.LEFT).build().perform(); this.elemHelper.WaitForAttributeValue(driver, By.xpath("//table[@id='table-cdfdd-components-components']/tbody/tr[4]"), "class", "initialized parent ui-state-active collapsed"); String otherGroup = this.elemHelper .FindElement(driver, By.xpath("//table[@id='table-cdfdd-components-components']/tbody/tr[4]")) .getAttribute("class"); assertEquals(otherGroup, "initialized parent ui-state-active collapsed"); this.elemHelper.WaitForElementInvisibility(driver, By.xpath("//table[@id='table-cdfdd-components-components']/tbody/tr[2]")); this.elemHelper.WaitForElementInvisibility(driver, By.xpath("//table[@id='table-cdfdd-components-components']/tbody/tr[5]")); //Assert clicking right arrow expands groups a.sendKeys(Keys.RIGHT).sendKeys(Keys.UP).sendKeys(Keys.RIGHT).build().perform(); areaChart = this.elemHelper.FindElement(driver, By.xpath("//table[@id='table-cdfdd-components-components']/tbody/tr[2]")); assertNotNull(areaChart); tableComponent = this.elemHelper.FindElement(driver, By.xpath("//table[@id='table-cdfdd-components-components']/tbody/tr[5]")); assertNotNull(tableComponent); //Go to to table component and assert it's selected a.sendKeys(Keys.DOWN).sendKeys(Keys.DOWN).sendKeys(Keys.DOWN).sendKeys(Keys.DOWN).build().perform(); this.elemHelper.WaitForAttributeValue(driver, By.xpath("//table[@id='table-cdfdd-components-components']/tbody/tr[5]"), "class", "child-of-OTHERCOMPONENTS initialized collapsed ui-state-active"); String tableClass = this.elemHelper .FindElement(driver, By.xpath("//table[@id='table-cdfdd-components-components']/tbody/tr[5]")) .getAttribute("class"); assertEquals(tableClass, "child-of-OTHERCOMPONENTS initialized collapsed ui-state-active"); /* * ## Step 3 */ //Click tab key and assert focus has changed to properties table a.sendKeys(Keys.TAB).build().perform(); this.elemHelper.WaitForAttributeValue(driver, By.xpath("//table[@id='table-cdfdd-components-properties']/tbody/tr"), "class", "initialized ui-state-active"); String nameProperty = this.elemHelper .FindElement(driver, By.xpath("//table[@id='table-cdfdd-components-properties']/tbody/tr")) .getAttribute("class"); assertEquals(nameProperty, "initialized ui-state-active"); //Click enter to change following properties "Name" and "Parameters" a.sendKeys(Keys.ENTER).sendKeys("a").sendKeys(Keys.ENTER).sendKeys(Keys.DOWN).sendKeys(Keys.DOWN) .sendKeys(Keys.DOWN).sendKeys(Keys.DOWN).build().perform(); /* * ## Step 4 */ //Change "Parameter" and assert using down arrow to navigate is blocked //Focus to the top this.elemHelper.MoveToElement(driver, By.cssSelector( "#cdfdd-components-properties > div > div.tableCaption.ui-state-default > div.simpleProperties.propertiesSelected")); this.elemHelper.WaitForAttributeValue(driver, By.xpath("//td[contains(text(),'Parameter')]/.."), "class", "initialized ui-state-active"); String parameterProperty = this.elemHelper .FindElement(driver, By.xpath("//td[contains(text(),'Parameter')]/..")).getAttribute("class"); assertEquals(parameterProperty, "initialized ui-state-active"); a.sendKeys(Keys.ENTER).build().perform(); WebElement popupParameter = this.elemHelper.FindElement(driver, By.id("popupstates")); assertNotNull(popupParameter); String popupTitle = this.elemHelper.WaitForTextDifferentEmpty(driver, By .cssSelector("#popup_state_state0 > div > div.popup-header-container > div.popup-title-container")); assertEquals(popupTitle, "Parameters"); a.sendKeys(Keys.DOWN).build().perform(); this.elemHelper.ClickJS(driver, By.id("popup_state0_buttonCancel")); assertTrue(this.elemHelper.WaitForElementNotPresent(driver, By.id("popupstates"))); this.elemHelper.WaitForAttributeValue(driver, By.xpath("//td[contains(text(),'Parameter')]/.."), "class", "initialized ui-state-active"); parameterProperty = this.elemHelper.FindElement(driver, By.xpath("//td[contains(text(),'Parameter')]/..")) .getAttribute("class"); assertEquals(parameterProperty, "initialized ui-state-active"); //assert values are changed String nameValue = this.elemHelper.WaitForElementPresentGetText(driver, By.xpath("//td[contains(text(),'Name')]/../td[2]")); assertEquals(nameValue, "a"); /* * ## Step 5 */ areaChart = this.elemHelper.FindElement(driver, By .xpath("//table[@id='table-cdfdd-components-components']//td[contains(text(),'CCC Area Chart')]")); assertNotNull(areaChart); areaChart.click(); WebElement advancedProperties = this.elemHelper.FindElement(driver, By.xpath( "//div[@id='cdfdd-components-properties']//div[@class='advancedProperties propertiesUnSelected']")); assertNotNull(advancedProperties); advancedProperties.click(); WebElement baseAxisFont = this.elemHelper.FindElement(driver, By.xpath( "//table[@id='table-cdfdd-components-properties']//td[@title='The font used by the panel.']")); assertNotNull(baseAxisFont); }
From source file:com.pentaho.ctools.issues.cde.editor.CDEDataPanel.java
License:Apache License
/** * ############################### Test Case 1 ############################### * * Test Case Name:/*from w ww .j av a 2s .c o m*/ * This test is meant to validate all issues related to CDE's Data Panel * * Description: * CDE-410: Shortcuts work * * Steps: * 1. Open CDE sample in edit mode, go to data panel and add some datasources * 2. Assert down, up, left and right shortcuts work on components panel * 3. Assert tab and enter shortcuts work on data panel * **/ @Test public void tc01_CDEDashboardEdit_DataPanel() { this.log.info("tc01_CDEDashboardEdit_DataPanel"); /* * ## Step 1 */ //Open CDE sample in edit mode driver.get(PageUrl.CDE_DASHBOARD); this.elemHelper.WaitForElementInvisibility(driver, By.cssSelector("div.blockUI.blockOverlay")); //Go to Components Panel this.elemHelper.Click(driver, By.xpath("//div[@title='Datasources Panel']/a")); //Add some Datasources WebElement mdxExpander = this.elemHelper.FindElement(driver, By .xpath("//div[@id='cdfdd-datasources-palletePallete']//a[contains(text(),'MDX Queries')]/../span")); assertNotNull(mdxExpander); mdxExpander.click(); WebElement addDenormalMdx = this.elemHelper.FindElement(driver, By.xpath( "//div[@id='cdfdd-datasources-palletePallete']//a[@title='denormalizedMdx over mondrianJdbc']")); assertNotNull(addDenormalMdx); addDenormalMdx.click(); WebElement addMDX = this.elemHelper.FindElement(driver, By.xpath("//div[@id='cdfdd-datasources-palletePallete']//a[@title='mdx over mondrianJndi']")); assertNotNull(addMDX); addMDX.click(); WebElement sqlExpander = this.elemHelper.FindElement(driver, By .xpath("//div[@id='cdfdd-datasources-palletePallete']//a[contains(text(),'SQL Queries')]/../span")); assertNotNull(sqlExpander); sqlExpander.click(); WebElement addSqlJdbc = this.elemHelper.FindElement(driver, By.xpath("//div[@id='cdfdd-datasources-palletePallete']//a[@title='sql over sqlJdbc']")); assertNotNull(addSqlJdbc); addSqlJdbc.click(); WebElement addSqlJndi = this.elemHelper.FindElement(driver, By.xpath("//div[@id='cdfdd-datasources-palletePallete']//a[@title='sql over sqlJndi']")); assertNotNull(addSqlJndi); addSqlJndi.click(); /* * ## Step 2 */ //Select first chart group this.elemHelper.Click(driver, By.xpath("//table[@id='table-cdfdd-datasources-datasources']/tbody/tr/td")); this.elemHelper.WaitForAttributeValue(driver, By.xpath("//table[@id='table-cdfdd-datasources-datasources']/tbody/tr"), "class", "expanded initialized parent ui-state-active"); String mdxGroup = this.elemHelper .FindElement(driver, By.xpath("//table[@id='table-cdfdd-datasources-datasources']/tbody/tr")) .getAttribute("class"); assertEquals(mdxGroup, "expanded initialized parent ui-state-active"); //Assert groups are expanded and clicking left will collapse them, also assert down arrow moves between showing elements WebElement mdxDenormal = this.elemHelper.FindElement(driver, By.xpath("//table[@id='table-cdfdd-datasources-datasources']/tbody/tr[2]")); assertNotNull(mdxDenormal); WebElement sqlJdbc = this.elemHelper.FindElement(driver, By.xpath("//table[@id='table-cdfdd-datasources-datasources']/tbody/tr[5]")); assertNotNull(sqlJdbc); Actions a = new Actions(driver); a.sendKeys(Keys.LEFT).sendKeys(Keys.DOWN).sendKeys(Keys.LEFT).build().perform(); this.elemHelper.WaitForAttributeValue(driver, By.xpath("//table[@id='table-cdfdd-datasources-datasources']/tbody/tr[4]"), "class", "initialized parent ui-state-active collapsed"); String otherGroup = this.elemHelper .FindElement(driver, By.xpath("//table[@id='table-cdfdd-datasources-datasources']/tbody/tr[4]")) .getAttribute("class"); assertEquals(otherGroup, "initialized parent ui-state-active collapsed"); this.elemHelper.WaitForElementInvisibility(driver, By.xpath("//table[@id='table-cdfdd-datasources-datasources']/tbody/tr[2]")); this.elemHelper.WaitForElementInvisibility(driver, By.xpath("//table[@id='table-cdfdd-datasources-datasources']/tbody/tr[5]")); assertTrue(this.elemHelper.WaitForElementInvisibility(driver, By.xpath("//table[@id='table-cdfdd-datasources-datasources']/tbody/tr[2]"))); assertTrue(this.elemHelper.WaitForElementInvisibility(driver, By.xpath("//table[@id='table-cdfdd-datasources-datasources']/tbody/tr[5]"))); //Assert clicking right arrow expands groups a.sendKeys(Keys.RIGHT).sendKeys(Keys.UP).sendKeys(Keys.RIGHT).build().perform(); mdxDenormal = this.elemHelper.FindElement(driver, By.xpath("//table[@id='table-cdfdd-datasources-datasources']/tbody/tr[2]")); assertNotNull(mdxDenormal); sqlJdbc = this.elemHelper.FindElement(driver, By.xpath("//table[@id='table-cdfdd-datasources-datasources']/tbody/tr[5]")); assertNotNull(sqlJdbc); //Go to to sqlJndi and assert it's selected a.sendKeys(Keys.DOWN).sendKeys(Keys.DOWN).sendKeys(Keys.DOWN).sendKeys(Keys.DOWN).sendKeys(Keys.DOWN) .build().perform(); this.elemHelper.WaitForAttributeValue(driver, By.xpath("//table[@id='table-cdfdd-datasources-datasources']/tbody/tr[6]"), "class", "child-of-SQL initialized collapsed ui-state-active"); String areaChartClass = this.elemHelper .FindElement(driver, By.xpath("//table[@id='table-cdfdd-datasources-datasources']/tbody/tr[6]")) .getAttribute("class"); assertEquals(areaChartClass, "child-of-SQL initialized collapsed ui-state-active"); /* * ## Step 3 */ //Click tab key and assert focus has changed to properties table a.sendKeys(Keys.TAB).build().perform(); this.elemHelper.WaitForAttributeValue(driver, By.xpath("//table[@id='table-cdfdd-datasources-properties']/tbody/tr"), "class", "initialized ui-state-active"); String nameProperty = this.elemHelper .FindElement(driver, By.xpath("//table[@id='table-cdfdd-datasources-properties']/tbody/tr")) .getAttribute("class"); assertEquals(nameProperty, "initialized ui-state-active"); //Click enter to change following properties "Name" a.sendKeys(Keys.ENTER).sendKeys("a").sendKeys(Keys.ENTER).sendKeys(Keys.DOWN).sendKeys(Keys.DOWN) .sendKeys(Keys.DOWN).sendKeys(Keys.DOWN).build().perform(); /* * ## Step 4 */ //Change "Parameter" and assert using down arrow to navigate is blocked this.elemHelper.WaitForAttributeValue(driver, By.xpath("//table[@id='table-cdfdd-datasources-properties']/tbody/tr[5]"), "class", "initialized ui-state-active"); String parameterProperty = this.elemHelper .FindElement(driver, By.xpath("//table[@id='table-cdfdd-datasources-properties']/tbody/tr[5]")) .getAttribute("class"); assertEquals(parameterProperty, "initialized ui-state-active"); a.sendKeys(Keys.ENTER).build().perform(); assertNotNull(this.elemHelper.FindElement(driver, By.id("popup"))); assertNotNull(this.elemHelper.FindElement(driver, By.id("arg_0"))); assertNotNull(this.elemHelper.FindElement(driver, By.id("val_0"))); a.sendKeys(Keys.TAB).sendKeys(Keys.TAB).sendKeys(Keys.DOWN).sendKeys(Keys.DOWN).sendKeys(Keys.UP).build() .perform(); WebElement elemIntegerHighlight = this.elemHelper.WaitForElementPresenceAndVisible(driver, By.cssSelector( "ul#select2-results-1.select2-results li.select2-results-dept-0.select2-result.select2-result-selectable.select2-highlighted")); assertNotNull(elemIntegerHighlight); WebElement closePopup = this.elemHelper.FindElement(driver, By.id("popup_state0_buttonCancel")); assertNotNull(closePopup); closePopup.click(); assertTrue(this.elemHelper.WaitForElementNotPresent(driver, By.id("popup"), 3)); this.elemHelper.WaitForAttributeValue(driver, By.xpath("//table[@id='table-cdfdd-datasources-properties']/tbody/tr[5]"), "class", "initialized ui-state-active"); parameterProperty = this.elemHelper .FindElement(driver, By.xpath("//table[@id='table-cdfdd-datasources-properties']/tbody/tr[5]")) .getAttribute("class"); assertEquals(parameterProperty, "initialized ui-state-active"); //assert values are changed String nameValue = this.elemHelper.WaitForElementPresentGetText(driver, By.xpath("//table[@id='table-cdfdd-datasources-properties']/tbody/tr/td[2]")); assertEquals(nameValue, "a"); }
From source file:com.pentaho.ctools.issues.cde.editor.CDELayoutPanel.java
License:Apache License
/** * ############################### Test Case 1 ############################### * * Test Case Name://from w ww .j ava 2s . co m * This test is meant to validate all issues related to CDE's Layout Panel * * Description: * CDE-270: Layout elements are draggable * CDE-366: Style and Dashboard type changes are kept when saving dashboard * CDE-395: Bootstrap is default renderer * CDE-402: When applying template, user is asked for confirmation before it is applied * CDE-406: Drag and Drop of Freeform elements works * CDE-407: Able to duplicate spacers * CDE-410: Shortcuts work * CDE-425: Shortcuts work * CDE-432: Left is the first option of text alignment * CDE-527: Only Column can be direct child of Rows in a bootstrap dashboard * CDE-528: If a bootstrap Column has no Xs defined a default of 12 is used * * Steps: * 1. Open new CDE dashboard and assert bootstrap is selected as renderer * 2. Use shortcuts to add and delete elements * 3. Add some elements and Drag them to other positions, asserting new positions * 4. Set template and assert it is correctly applied * 5. Assert navigation shortcuts work as expected and set clear Xs of an element * 6. Edit Settings and save dashboard. Preview dashboard and assert Xs is 12 by default */ @Test public void tc01_CDEDashboardEdit_LayoutPanel() { this.log.info("tc01_CDEDashboardEdit_LayoutPanel"); /* * ## Step 1 */ //Go to New CDE Dashboard driver.get(PageUrl.CDE_DASHBOARD); this.elemHelper.WaitForElementInvisibility(driver, By.cssSelector("div.blockUI.blockOverlay")); //Open Dashboard Settings and assert bootstrap is selected as renderer WebElement settingsLink = this.elemHelper.WaitForElementPresenceAndVisible(driver, By.xpath("//div[@id='headerLinks']//a[@onclick='cdfdd.saveSettings()']")); assertNotNull(settingsLink); settingsLink.click(); WebElement settingsPopup = this.elemHelper.WaitForElementPresenceAndVisible(driver, By.xpath("//div[@id='popup']//div[@id='popupstates']")); assertNotNull(settingsPopup); Select dashboardType = new Select( this.elemHelper.WaitForElementPresenceAndVisible(driver, By.id("rendererInput"))); String selectedOption = dashboardType.getFirstSelectedOption().getAttribute("value"); assertEquals("bootstrap", selectedOption); WebElement cancelButton = this.elemHelper.FindElement(driver, By.id("popup_state0_buttonCancel")); assertNotNull(cancelButton); cancelButton.click(); this.elemHelper.WaitForElementNotPresent(driver, By.xpath("//div[@id='popup']//div[@id='popupstates']")); /* * ## Step 2 */ //Add Row and verify that columns and html can not be added outside of rows this.elemHelper.Click(driver, By.id("table-cdfdd-layout-tree")); Actions a = new Actions(driver); a.sendKeys("c").sendKeys("h").sendKeys("r").build().perform(); this.elemHelper.Click(driver, By.id("table-cdfdd-layout-tree")); //Add Column a.sendKeys("c").build().perform(); //Add Html this.elemHelper.Click(driver, By.id("table-cdfdd-layout-tree")); a.sendKeys("h").build().perform(); //Assert elements were successfully created WebElement row = this.elemHelper.WaitForElementPresenceAndVisible(driver, By.xpath("//table[@id='table-cdfdd-layout-tree']/tbody/tr/td")); assertNotNull(row); this.elemHelper.WaitForTextPresence(driver, By.xpath("//table[@id='table-cdfdd-layout-tree']/tbody/tr/td"), "Row"); String rowText = row.getText(); assertEquals(rowText, "Row"); WebElement column = this.elemHelper.WaitForElementPresenceAndVisible(driver, By.xpath("//table[@id='table-cdfdd-layout-tree']/tbody/tr[2]/td")); assertNotNull(column); this.elemHelper.WaitForTextPresence(driver, By.xpath("//table[@id='table-cdfdd-layout-tree']/tbody/tr[2]/td"), "Column"); String columnText = column.getText(); assertEquals(columnText, "Column"); WebElement html = this.elemHelper.WaitForElementPresenceAndVisible(driver, By.xpath("//table[@id='table-cdfdd-layout-tree']/tbody/tr[3]/td")); assertNotNull(html); this.elemHelper.WaitForTextPresence(driver, By.xpath("//table[@id='table-cdfdd-layout-tree']/tbody/tr[3]/td"), "Html"); String htmlText = html.getText(); assertEquals(htmlText, "Html"); //Add spacer and duplicate it column.click(); WebElement spacerButton = this.elemHelper.WaitForElementPresenceAndVisible(driver, By.xpath("//a[@title='Add Space']")); assertNotNull(spacerButton); spacerButton.click(); WebElement spacer = this.elemHelper.WaitForElementPresenceAndVisible(driver, By.xpath("//table[@id='table-cdfdd-layout-tree']/tbody/tr[4]/td")); assertNotNull(spacer); this.elemHelper.WaitForTextPresence(driver, By.xpath("//table[@id='table-cdfdd-layout-tree']/tbody/tr[4]/td"), "Space"); String spacerText = spacer.getText(); assertEquals(spacerText, "Space"); column.click(); spacer.click(); a.keyDown(Keys.SHIFT).sendKeys("d").keyUp(Keys.SHIFT).build().perform(); spacer = this.elemHelper.WaitForElementPresenceAndVisible(driver, By.xpath("//table[@id='table-cdfdd-layout-tree']/tbody/tr[4]/td")); assertNotNull(spacer); WebElement spacer2 = this.elemHelper.WaitForElementPresenceAndVisible(driver, By.xpath("//table[@id='table-cdfdd-layout-tree']/tbody/tr[5]/td")); assertNotNull(spacer2); this.elemHelper.WaitForTextPresence(driver, By.xpath("//table[@id='table-cdfdd-layout-tree']/tbody/tr[4]/td"), "Space"); spacerText = spacer.getText(); assertEquals(spacerText, "Space"); this.elemHelper.WaitForTextPresence(driver, By.xpath("//table[@id='table-cdfdd-layout-tree']/tbody/tr[5]/td"), "Space"); String spacerText2 = spacer2.getText(); assertEquals(spacerText2, "Space"); //Delete elements and assert they are no longer present this.elemHelper.Click(driver, By.xpath("//table[@id='table-cdfdd-layout-tree']/tbody/tr/td")); a.keyDown(Keys.SHIFT).sendKeys("x").keyUp(Keys.SHIFT).build().perform(); assertTrue(this.elemHelper.WaitForElementNotPresent(driver, By.xpath("//table[@id='table-cdfdd-layout-tree']/tbody/tr/td"))); /* * ## Step 3 */ //Add elements WebElement addRow = this.elemHelper.WaitForElementPresenceAndVisible(driver, By.xpath("//a[@title='Add Row']")); assertNotNull(addRow); addRow.click(); WebElement addColumn = this.elemHelper.WaitForElementPresenceAndVisible(driver, By.xpath("//a[@title='Add Columns']")); WebElement addFreeForm = this.elemHelper.WaitForElementPresenceAndVisible(driver, By.xpath("//a[@title='Add FreeForm']")); WebElement addBootstrap = this.elemHelper.WaitForElementPresenceAndVisible(driver, By.xpath("//a[@title='Add Bootstrap Panel']")); assertNotNull(addFreeForm); assertNotNull(addColumn); assertNotNull(addBootstrap); this.elemHelper.WaitForElementPresenceAndVisible(driver, By.xpath("//a[@title='Add Bootstrap Panel']")) .click(); this.elemHelper.WaitForElementPresenceAndVisible(driver, By.xpath("//a[@title='Add Row']")).click(); this.elemHelper.WaitForElementPresenceAndVisible(driver, By.xpath("//a[@title='Add FreeForm']")).click(); this.elemHelper.WaitForElementPresenceAndVisible(driver, By.xpath("//a[@title='Add Row']")).click(); this.elemHelper.WaitForElementPresenceAndVisible(driver, By.xpath("//a[@title='Add Columns']")).click(); this.elemHelper.WaitForElementPresenceAndVisible(driver, By.xpath("//a[@title='Add Columns']")).click(); this.elemHelper.WaitForElementPresenceAndVisible(driver, By.xpath("//a[@title='Add FreeForm']")).click(); //Assert elements on Layout String row1 = this.elemHelper.WaitForTextPresence(driver, By.xpath("//table[@id='table-cdfdd-layout-tree']/tbody/tr/td"), "Row"); assertEquals("Row", row1); String bootstrap = this.elemHelper.WaitForTextPresence(driver, By.xpath("//table[@id='table-cdfdd-layout-tree']/tbody/tr[2]/td"), "Bootstrap Panel"); assertEquals("Bootstrap Panel", bootstrap); String row2 = this.elemHelper.WaitForTextPresence(driver, By.xpath("//table[@id='table-cdfdd-layout-tree']/tbody/tr[6]/td"), "Row"); assertEquals("Row", row2); String freeform1 = this.elemHelper.WaitForTextPresence(driver, By.xpath("//table[@id='table-cdfdd-layout-tree']/tbody/tr[7]/td"), "FreeForm"); assertEquals("FreeForm", freeform1); String row3 = this.elemHelper.WaitForTextPresence(driver, By.xpath("//table[@id='table-cdfdd-layout-tree']/tbody/tr[8]/td"), "Row"); assertEquals("Row", row3); String column1 = this.elemHelper.WaitForTextPresence(driver, By.xpath("//table[@id='table-cdfdd-layout-tree']/tbody/tr[9]/td"), "Column"); assertEquals("Column", column1); String column2 = this.elemHelper.WaitForTextPresence(driver, By.xpath("//table[@id='table-cdfdd-layout-tree']/tbody/tr[10]/td"), "Column"); assertEquals("Column", column2); String freeform2 = this.elemHelper.WaitForTextPresence(driver, By.xpath("//table[@id='table-cdfdd-layout-tree']/tbody/tr[11]/td"), "FreeForm"); assertEquals("FreeForm", freeform2); //Assert bootstrap and freeform are parent elements String bootstrapClass = this.elemHelper.GetAttribute(driver, By.xpath("//table[@id='table-cdfdd-layout-tree']/tbody/tr[2]"), "class"); assertTrue(bootstrapClass.contains("parent")); String freeformClass = this.elemHelper.GetAttribute(driver, By.xpath("//table[@id='table-cdfdd-layout-tree']/tbody/tr[7]"), "class"); assertTrue(freeformClass.contains("parent")); //Move elements this.elemHelper.DragAndDrop(driver, By.xpath("//table[@id='table-cdfdd-layout-tree']/tbody/tr[11]/td"), By.xpath("//table[@id='table-cdfdd-layout-tree']/tbody/tr[1]/td")); this.elemHelper.DragAndDrop(driver, By.xpath("//table[@id='table-cdfdd-layout-tree']/tbody/tr[8]/td"), By.xpath("//table[@id='table-cdfdd-layout-tree']/tbody/tr[2]/td")); //Assert new positions freeform1 = this.elemHelper.WaitForTextPresence(driver, By.xpath("//table[@id='table-cdfdd-layout-tree']/tbody/tr/td"), "FreeForm"); assertEquals("FreeForm", freeform1); freeform2 = this.elemHelper.WaitForTextPresence(driver, By.xpath("//table[@id='table-cdfdd-layout-tree']/tbody/tr[2]/td"), "FreeForm"); assertEquals("FreeForm", freeform2); row1 = this.elemHelper.WaitForTextPresence(driver, By.xpath("//table[@id='table-cdfdd-layout-tree']/tbody/tr[3]/td"), "Row"); assertEquals("Row", row1); column1 = this.elemHelper.WaitForTextPresence(driver, By.xpath("//table[@id='table-cdfdd-layout-tree']/tbody/tr[4]/td"), "Column"); assertEquals("Column", column1); column2 = this.elemHelper.WaitForTextPresence(driver, By.xpath("//table[@id='table-cdfdd-layout-tree']/tbody/tr[5]/td"), "Column"); assertEquals("Column", column2); row2 = this.elemHelper.WaitForTextPresence(driver, By.xpath("//table[@id='table-cdfdd-layout-tree']/tbody/tr[6]/td"), "Row"); assertEquals("Row", row2); bootstrap = this.elemHelper.WaitForTextPresence(driver, By.xpath("//table[@id='table-cdfdd-layout-tree']/tbody/tr[7]/td"), "Bootstrap Panel"); assertEquals("Bootstrap Panel", bootstrap); row3 = this.elemHelper.WaitForTextPresence(driver, By.xpath("//table[@id='table-cdfdd-layout-tree']/tbody/tr[11]/td"), "Row"); assertEquals("Row", row3); /* * ## Step 4 */ //Apply template WebElement templateButton = this.elemHelper.WaitForElementPresenceAndVisible(driver, By.xpath("//a[@title='Apply Template']")); assertNotNull(templateButton); templateButton.click(); this.elemHelper.WaitForFrameReady(driver, By.id("popup")); WebElement templatePopup = this.elemHelper.WaitForElementPresenceAndVisible(driver, By.id("popup")); assertNotNull(templatePopup); String templateText = this.elemHelper .FindElement(driver, By.xpath("//div[@class='template-scroll']/div[2]/span")).getText(); assertEquals("2 Columns Template", templateText); this.elemHelper.Click(driver, By.xpath("//div[@class='template-scroll']/div[2]/div/img")); WebElement templateOk = this.elemHelper.WaitForElementPresenceAndVisible(driver, By.id("popup_state0_buttonOk")); assertNotNull(templateOk); this.elemHelper.Click(driver, By.id("popup_state0_buttonOk")); assertTrue(this.elemHelper.WaitForElementNotPresent(driver, By.id("popup"))); WebElement confirmationPopup = this.elemHelper.WaitForElementPresenceAndVisible(driver, By.id("popup")); assertNotNull(confirmationPopup); String warningText = this.elemHelper.WaitForElementPresentGetText(driver, By.xpath("//div[@class='popup-body-container layout-popup']")); assertEquals("Are you sure you want to load the template?WARNING: Dashboard Layout will be overwritten!", warningText); WebElement confirmationOk = this.elemHelper.WaitForElementPresenceAndVisible(driver, By.id("popup_state0_buttonOk")); assertNotNull(confirmationOk); this.elemHelper.Click(driver, By.id("popup_state0_buttonOk")); this.elemHelper.WaitForElementNotPresent(driver, By.id("popup")); //Asset elements were created String trtdText = this.elemHelper.WaitForTextPresence(driver, By.xpath("//table[@id='table-cdfdd-layout-tree']/tbody/tr/td"), "Row"); String trtd2Text = this.elemHelper.WaitForTextPresence(driver, By.xpath("//table[@id='table-cdfdd-layout-tree']/tbody/tr/td[2]"), "Header"); String tr4tdText = this.elemHelper.WaitForTextPresence(driver, By.xpath("//table[@id='table-cdfdd-layout-tree']/tbody/tr[4]/td"), "Row"); String tr4td2Text = this.elemHelper.WaitForTextPresence(driver, By.xpath("//table[@id='table-cdfdd-layout-tree']/tbody/tr[4]/td[2]"), "Spacer"); assertEquals("Row", trtdText); assertEquals("Header", trtd2Text); assertEquals("Row", tr4tdText); assertEquals("Spacer", tr4td2Text); /* * ## Step 5 */ //Press down and assert second Row is selected this.elemHelper.Click(driver, By.xpath("//table[@id='table-cdfdd-layout-tree']/tbody/tr/td")); String firstRowClass = this.elemHelper .FindElement(driver, By.xpath("//table[@id='table-cdfdd-layout-tree']/tbody/tr")) .getAttribute("class"); assertEquals(firstRowClass, "ui-draggable ui-droppable initialized parent collapsed ui-state-active"); a.sendKeys(Keys.DOWN).build().perform(); this.elemHelper.WaitForAttributeValue(driver, By.xpath("//table[@id='table-cdfdd-layout-tree']/tbody/tr[4]"), "class", "ui-draggable ui-droppable initialized ui-state-active"); String secondRowClass = this.elemHelper.WaitForElementPresenceAndVisible(driver, By.xpath("//table[@id='table-cdfdd-layout-tree']/tbody/tr[4]")).getAttribute("class"); assertEquals(secondRowClass, "ui-draggable ui-droppable initialized ui-state-active"); //Assert columns aren't visible, go to row and expand it and then assert columns are visible this.elemHelper.WaitForElementInvisibility(driver, By.xpath("//table[@id='table-cdfdd-layout-tree']/tbody/tr[6]")); this.elemHelper.WaitForElementInvisibility(driver, By.xpath("//table[@id='table-cdfdd-layout-tree']/tbody/tr[7]")); a.sendKeys(Keys.DOWN).sendKeys(Keys.RIGHT).build().perform(); WebElement firstColumn = this.elemHelper.WaitForElementPresenceAndVisible(driver, By.xpath("//table[@id='table-cdfdd-layout-tree']/tbody/tr[6]")); assertNotNull(firstColumn); WebElement secondColumn = this.elemHelper.WaitForElementPresenceAndVisible(driver, By.xpath("//table[@id='table-cdfdd-layout-tree']/tbody/tr[7]")); assertNotNull(secondColumn); //Go to second column and back to first and assert first column is selected a.sendKeys(Keys.DOWN).sendKeys(Keys.DOWN).sendKeys("c").sendKeys(Keys.TAB).build().perform(); this.elemHelper.WaitForAttributeValue(driver, By.xpath("//table[@id='table-cdfdd-layout-tree']/tbody/tr[8]"), "class", "ui-state-active"); String firstColumnClass = this.elemHelper .FindElement(driver, By.xpath("//table[@id='table-cdfdd-layout-tree']/tbody/tr[8]")) .getAttribute("class"); assertTrue(firstColumnClass.contains("ui-state-active")); //Click tab key and assert focus has changed to properties table a.sendKeys(Keys.TAB).build().perform(); this.elemHelper.WaitForAttributeValue(driver, By.xpath("//table[@id='table-cdfdd-layout-properties']/tbody/tr"), "class", "initialized ui-state-active"); String firstPropertyClass = this.elemHelper .FindElement(driver, By.xpath("//table[@id='table-cdfdd-layout-properties']/tbody/tr")) .getAttribute("class"); assertEquals(firstPropertyClass, "initialized ui-state-active"); //Click enter to change following properties "Name", "Span size" and "Right border" a.sendKeys(Keys.ENTER).sendKeys("a").sendKeys(Keys.ENTER).sendKeys(Keys.DOWN).build().perform(); //assert name has changed String columnName = this.elemHelper.WaitForElementPresentGetText(driver, By.xpath("//table[@id='table-cdfdd-layout-properties']/tbody/tr/td[2]")); assertEquals(columnName, "a"); //Change "Extra Small Devices" and "Text Align" this.elemHelper.WaitForAttributeValue(driver, By.xpath("//table[@id='table-cdfdd-layout-properties']/tbody/tr[2]"), "class", "initialized ui-state-active"); String xsInput = this.elemHelper .FindElement(driver, By.xpath("//table[@id='table-cdfdd-layout-properties']/tbody/tr[2]")) .getAttribute("class"); assertEquals(xsInput, "initialized ui-state-active"); a.sendKeys(Keys.ENTER).build().perform(); this.elemHelper .FindElement(driver, By.xpath("//table[@id='table-cdfdd-layout-properties']/tbody/tr[2]/td[2]/form/input")) .clear(); a.sendKeys(Keys.ENTER).build().perform(); //assert values are changed String xsValue = this.elemHelper.WaitForElementPresentGetText(driver, By.xpath("//table[@id='table-cdfdd-layout-properties']/tbody/tr[2]/td[2]")); assertEquals(xsValue, "-"); a.sendKeys(Keys.DOWN).sendKeys(Keys.DOWN).sendKeys(Keys.DOWN).sendKeys(Keys.DOWN).sendKeys(Keys.DOWN) .sendKeys(Keys.DOWN).sendKeys(Keys.DOWN).sendKeys(Keys.DOWN).sendKeys(Keys.ENTER) .sendKeys(Keys.DOWN).sendKeys(Keys.DOWN).sendKeys(Keys.ENTER).sendKeys(Keys.ENTER).build() .perform(); String alignValue = this.elemHelper.WaitForElementPresentGetText(driver, By.xpath("//table[@id='table-cdfdd-layout-properties']/tbody/tr[10]/td[2]")); assertEquals(alignValue, "Left"); //Click tab and assert focus has gone back to first table a.sendKeys(Keys.TAB).build().perform(); this.elemHelper.WaitForAttributeValue(driver, By.xpath("//table[@id='table-cdfdd-layout-properties']/tbody/tr[8]"), "class", "initialized"); String columnClass = this.elemHelper .FindElement(driver, By.xpath("//table[@id='table-cdfdd-layout-properties']/tbody/tr[8]")) .getAttribute("class"); assertEquals(columnClass, "initialized"); //Collapse Row and assert columns aren't showing a.sendKeys(Keys.UP).sendKeys(Keys.UP).sendKeys(Keys.UP).sendKeys(Keys.LEFT).build().perform(); this.elemHelper.WaitForElementInvisibility(driver, By.xpath("//table[@id='table-cdfdd-layout-tree']/tbody/tr[6]")); this.elemHelper.WaitForElementInvisibility(driver, By.xpath("//table[@id='table-cdfdd-layout-tree']/tbody/tr[7]")); this.elemHelper.WaitForElementInvisibility(driver, By.xpath("//table[@id='table-cdfdd-layout-tree']/tbody/tr[8]")); /* * ## Step 6 */ //Save Dashboard WebElement saveDashboard = this.elemHelper.WaitForElementPresenceAndVisible(driver, By.xpath("//div[@id='headerLinks']//a[@id='Save']")); assertNotNull(saveDashboard); saveDashboard.click(); WebElement folderSelector = this.elemHelper.WaitForElementPresenceAndVisible(driver, By.xpath("//div[@id='saveAsFEContainer']//a[@rel='public/']")); assertNotNull(folderSelector); folderSelector.click(); WebElement inputName = this.elemHelper.WaitForElementPresenceAndVisible(driver, By.id("fileInput")); assertNotNull(inputName); inputName.sendKeys("CDE366"); WebElement okButton = this.elemHelper.WaitForElementPresenceAndVisible(driver, By.xpath("//div[@class='popupbuttons']/button[@id='popup_state0_buttonOk']")); okButton.click(); this.elemHelper.WaitForElementNotPresent(driver, By.xpath("//div[@class='popupbuttons']")); WebElement title = this.elemHelper.WaitForElementPresenceAndVisible(driver, By.xpath("//div[@title='CDE366']")); assertNotNull(title); this.failure = 0; //Open Dashboard Settings settingsLink = this.elemHelper.WaitForElementPresenceAndVisible(driver, By.xpath("//div[@id='headerLinks']//a[@onclick='cdfdd.saveSettings()']")); assertNotNull(settingsLink); settingsLink.click(); settingsPopup = this.elemHelper.WaitForElementPresenceAndVisible(driver, By.xpath("//div[@id='popup']//div[@id='popupstates']")); assertNotNull(settingsPopup); //Edit Style and Dashboard Type Select style = new Select(this.elemHelper.WaitForElementPresenceAndVisible(driver, By.id("styleInput"))); style.selectByVisibleText("WDDocs"); Select dashType = new Select( this.elemHelper.WaitForElementPresenceAndVisible(driver, By.id("rendererInput"))); dashType.selectByVisibleText("blueprint"); //Click save and assert user gets a message of "Saved Successfully" okButton = this.elemHelper.WaitForElementPresenceAndVisible(driver, By.id("popup_state0_buttonOk")); assertNotNull(okButton); okButton.click(); WebElement notifySuccess = this.elemHelper.WaitForElementPresenceAndVisible(driver, By.xpath("//div[@id='notifyBar']")); assertNotNull(notifySuccess); String successMessage = this.elemHelper.WaitForElementPresentGetText(driver, By.xpath("//div[@id='notifyBar']/div[@class='notify-bar-message']")); assertEquals("Dashboard Settings saved successfully", successMessage); //Open dashboard in preview mode this.elemHelper.Get(driver, PageUrl.ISSUES_CDE_366); this.elemHelper.WaitForElementInvisibility(driver, By.cssSelector("div.blockUI.blockOverlay")); //Assert Xs is set to 12 as default WebElement xsColumn = this.elemHelper.FindElement(driver, By.xpath("//div[@id='Body']/div[3]")); assertNotNull(xsColumn); String xsNumber = xsColumn.getAttribute("class"); assertEquals("col-xs-12 last", xsNumber); //Open dashboard in edit this.elemHelper.Get(driver, PageUrl.ISSUES_CDE_366_EDIT); //Open Settings and assert Style and Dashboard Type were saved settingsLink = this.elemHelper.WaitForElementPresenceAndVisible(driver, By.xpath("//div[@id='headerLinks']//a[@onclick='cdfdd.saveSettings()']")); assertNotNull(settingsLink); settingsLink.click(); settingsPopup = this.elemHelper.WaitForElementPresenceAndVisible(driver, By.xpath("//div[@id='popup']//div[@id='popupstates']")); assertNotNull(settingsPopup); WebElement selectedStyle = this.elemHelper.WaitForElementPresenceAndVisible(driver, By.xpath("//select[@id='styleInput']/option[@selected='']")); String selectedValue = selectedStyle.getAttribute("value"); assertEquals("WDDocs", selectedValue); WebElement selectedDash = this.elemHelper.WaitForElementPresenceAndVisible(driver, By.xpath("//select[@id='rendererInput']/option[@selected='']")); selectedValue = selectedDash.getAttribute("value"); assertEquals("blueprint", selectedValue); /* * ## Step 7 */ BrowseFiles browse = new BrowseFiles(driver); browse.DeleteMultipleFilesByName("/public", "CDE366"); browse.EmptyTrash(); this.failure = 1; }
From source file:com.thoughtworks.selenium.webdriven.commands.SendKeys.java
License:Apache License
@Override protected Void handleSeleneseCommand(WebDriver driver, String locator, String value) { alertOverride.replaceAlertMethod(driver); value = value.replace("${KEY_ALT}", Keys.ALT); value = value.replace("${KEY_CONTROL}", Keys.CONTROL); value = value.replace("${KEY_CTRL}", Keys.CONTROL); value = value.replace("${KEY_META}", Keys.META); value = value.replace("${KEY_COMMAND}", Keys.COMMAND); value = value.replace("${KEY_SHIFT}", Keys.SHIFT); value = value.replace("${KEY_BACKSPACE}", Keys.BACK_SPACE); value = value.replace("${KEY_BKSP}", Keys.BACK_SPACE); value = value.replace("${KEY_DELETE}", Keys.DELETE); value = value.replace("${KEY_DEL}", Keys.DELETE); value = value.replace("${KEY_ENTER}", Keys.ENTER); value = value.replace("${KEY_EQUALS}", Keys.EQUALS); value = value.replace("${KEY_ESCAPE}", Keys.ESCAPE); value = value.replace("${KEY_ESC}", Keys.ESCAPE); value = value.replace("${KEY_INSERT}", Keys.INSERT); value = value.replace("${KEY_INS}", Keys.INSERT); value = value.replace("${KEY_PAUSE}", Keys.PAUSE); value = value.replace("${KEY_SEMICOLON}", Keys.SEMICOLON); value = value.replace("${KEY_SPACE}", Keys.SPACE); value = value.replace("${KEY_TAB}", Keys.TAB); value = value.replace("${KEY_LEFT}", Keys.LEFT); value = value.replace("${KEY_UP}", Keys.UP); value = value.replace("${KEY_RIGHT}", Keys.RIGHT); value = value.replace("${KEY_DOWN}", Keys.DOWN); value = value.replace("${KEY_PAGE_UP}", Keys.PAGE_UP); value = value.replace("${KEY_PGUP}", Keys.PAGE_UP); value = value.replace("${KEY_PAGE_DOWN}", Keys.PAGE_DOWN); value = value.replace("${KEY_PGDN}", Keys.PAGE_DOWN); value = value.replace("${KEY_END}", Keys.END); value = value.replace("${KEY_HOME}", Keys.HOME); value = value.replace("${KEY_NUMPAD0}", Keys.NUMPAD0); value = value.replace("${KEY_N0}", Keys.NUMPAD0); value = value.replace("${KEY_NUMPAD1}", Keys.NUMPAD1); value = value.replace("${KEY_N1}", Keys.NUMPAD1); value = value.replace("${KEY_NUMPAD2}", Keys.NUMPAD2); value = value.replace("${KEY_N2}", Keys.NUMPAD2); value = value.replace("${KEY_NUMPAD3}", Keys.NUMPAD3); value = value.replace("${KEY_N3}", Keys.NUMPAD3); value = value.replace("${KEY_NUMPAD4}", Keys.NUMPAD4); value = value.replace("${KEY_N4}", Keys.NUMPAD4); value = value.replace("${KEY_NUMPAD5}", Keys.NUMPAD5); value = value.replace("${KEY_N5}", Keys.NUMPAD5); value = value.replace("${KEY_NUMPAD6}", Keys.NUMPAD6); value = value.replace("${KEY_N6}", Keys.NUMPAD6); value = value.replace("${KEY_NUMPAD7}", Keys.NUMPAD7); value = value.replace("${KEY_N7}", Keys.NUMPAD7); value = value.replace("${KEY_NUMPAD8}", Keys.NUMPAD8); value = value.replace("${KEY_N8}", Keys.NUMPAD8); value = value.replace("${KEY_NUMPAD9}", Keys.NUMPAD9); value = value.replace("${KEY_N9}", Keys.NUMPAD9); value = value.replace("${KEY_ADD}", Keys.ADD); value = value.replace("${KEY_NUM_PLUS}", Keys.ADD); value = value.replace("${KEY_DECIMAL}", Keys.DECIMAL); value = value.replace("${KEY_NUM_PERIOD}", Keys.DECIMAL); value = value.replace("${KEY_DIVIDE}", Keys.DIVIDE); value = value.replace("${KEY_NUM_DIVISION}", Keys.DIVIDE); value = value.replace("${KEY_MULTIPLY}", Keys.MULTIPLY); value = value.replace("${KEY_NUM_MULTIPLY}", Keys.MULTIPLY); value = value.replace("${KEY_SEPARATOR}", Keys.SEPARATOR); value = value.replace("${KEY_SEP}", Keys.SEPARATOR); value = value.replace("${KEY_SUBTRACT}", Keys.SUBTRACT); value = value.replace("${KEY_NUM_MINUS}", Keys.SUBTRACT); value = value.replace("${KEY_F1}", Keys.F1); value = value.replace("${KEY_F2}", Keys.F2); value = value.replace("${KEY_F3}", Keys.F3); value = value.replace("${KEY_F4}", Keys.F4); value = value.replace("${KEY_F5}", Keys.F5); value = value.replace("${KEY_F6}", Keys.F6); value = value.replace("${KEY_F7}", Keys.F7); value = value.replace("${KEY_F8}", Keys.F8); value = value.replace("${KEY_F9}", Keys.F9); value = value.replace("${KEY_F10}", Keys.F10); value = value.replace("${KEY_F11}", Keys.F11); value = value.replace("${KEY_F12}", Keys.F12); finder.findElement(driver, locator).sendKeys(value); return null;//from w w w . j a v a2 s . c o m }
From source file:com.vaadin.tests.components.grid.basicfeatures.server.GridCellFocusAdjustmentTest.java
License:Apache License
@Test public void testCellFocusOffsetWhileInDifferentSection() { openTestURL();/*from ww w .jav a 2s. c o m*/ getGridElement().getCell(0, 0).click(); new Actions(getDriver()).sendKeys(Keys.UP).perform(); assertTrue("Header 0,0 should've become focused", getGridElement().getHeaderCell(0, 0).isFocused()); selectMenuPath("Component", "Body rows", "Add first row"); assertTrue("Header 0,0 should've remained focused", getGridElement().getHeaderCell(0, 0).isFocused()); }
From source file:org.auraframework.components.ui.menu.MenuUITest.java
License:Apache License
private void testActionMenuViaKeyboardInteractionForApp(String appName) throws MalformedURLException, URISyntaxException { open(appName);//w ww . j a v a2 s . co m WebDriver driver = this.getDriver(); String label = "trigger"; String menuName = "actionMenu"; String menuItem1 = "actionItem1"; String menuItem3 = "actionItem3"; String menuItem4 = "actionItem4"; WebElement menuLabel = driver.findElement(By.className(label)); WebElement actionMenu = driver.findElement(By.className(menuName)); WebElement actionItem1 = driver.findElement(By.className(menuItem1)); WebElement actionItem1Element = actionItem1.findElement(By.tagName("a")); WebElement actionItem3 = driver.findElement(By.className(menuItem3)); WebElement actionItem3Element = actionItem3.findElement(By.tagName("a")); WebElement actionItem4 = driver.findElement(By.className(menuItem4)); WebElement actionItem4Element = actionItem4.findElement(By.tagName("a")); // click on menu list menuLabel.click(); // check menu list is visible after the click assertTrue("Menu list should be visible", actionMenu.getAttribute("class").contains("visible")); // default focus on action item1 assertEquals("Focus should be on actionItem1", actionItem1Element.getText(), auraUITestingUtil.getActiveElementText()); // press down key twice actionItem1Element.sendKeys(Keys.DOWN, Keys.DOWN); // verify focus on action item3 auraUITestingUtil.setHoverOverElement(menuItem3); assertEquals("Focus should be on actionItem3", actionItem3Element.getText(), auraUITestingUtil.getActiveElementText()); actionItem3.click(); assertEquals("Item3 unchecked after pressing Enter key", "Inter Milan", menuLabel.getText()); menuLabel.click(); // focus on action item4 auraUITestingUtil.setHoverOverElement(menuItem4); assertEquals("Focus should be on actionItem4", actionItem4Element.getText(), auraUITestingUtil.getActiveElementText()); actionItem4Element.sendKeys(Keys.UP); // verify focus on action item3 assertEquals("Focus should be on actionItem3", actionItem3Element.getText(), auraUITestingUtil.getActiveElementText()); // press space key and check if item3 got selected actionItem3Element.sendKeys(Keys.SPACE); assertEquals("Item3 not selected after pressing space key", "Inter Milan", menuLabel.getText()); menuLabel.click(); assertTrue("Menu list should be visible", actionMenu.getAttribute("class").contains("visible")); auraUITestingUtil.setHoverOverElement(menuItem1); actionItem1Element.sendKeys(Keys.ESCAPE); assertFalse("Menu list should not be visible", actionMenu.getAttribute("class").contains("visible")); }
From source file:org.auraframework.components.ui.menu.MenuUITest.java
License:Apache License
private void testMenuCheckboxForApp(String appName) throws MalformedURLException, URISyntaxException { open(appName);/*from w w w.j a v a 2s . co m*/ WebDriver driver = this.getDriver(); String label = "checkboxMenuLabel"; String menuName = "checkboxMenu"; String menuItem3 = "checkboxItem3"; String menuItem4 = "checkboxItem4"; String globalIdItem3 = auraUITestingUtil.getCmpGlobalIdGivenElementClassName(menuItem3); String globalIdItem4 = auraUITestingUtil.getCmpGlobalIdGivenElementClassName(menuItem4); String disableValueM4Exp = auraUITestingUtil.getValueFromCmpExpression(globalIdItem4, "v.disabled"); String selectedValueM4Exp = auraUITestingUtil.getValueFromCmpExpression(globalIdItem4, "v.selected"); String selectedValueM3Exp = auraUITestingUtil.getValueFromCmpExpression(globalIdItem3, "v.selected"); WebElement menuLabel = driver.findElement(By.className(label)); WebElement menu = driver.findElement(By.className(menuName)); WebElement item3 = driver.findElement(By.className(menuItem3)); WebElement item3Element = item3.findElement(By.tagName("a")); WebElement item4 = driver.findElement(By.className(menuItem4)); WebElement item4Element = item4.findElement(By.tagName("a")); WebElement button = driver.findElement(By.className("checkboxButton")); WebElement result = driver.findElement(By.className("result")); // check for default label present assertEquals("label is wrong", "NFC West Teams", menuLabel.getText()); assertFalse("Default: CheckboxMenu list should not be visible", menu.getAttribute("class").contains("visible")); // click on label menuLabel.click(); // verify menu list is visible assertTrue("CheckboxMenu list should be visible", menu.getAttribute("class").contains("visible")); // verify aria attribute item4 which is used for accessibility is disabled and selected assertTrue("Item4 aria attribute should be disabled", Boolean.valueOf(item4Element.getAttribute("aria-disabled"))); assertTrue("Item4 aria attribute should be selected", Boolean.valueOf(item4Element.getAttribute("aria-checked"))); // verify item4 is disabled and selected assertTrue("Item4 should be disabled", (Boolean) auraUITestingUtil.getEval(disableValueM4Exp)); assertTrue("Item4 should be selected", (Boolean) auraUITestingUtil.getEval(selectedValueM4Exp)); // click on item4 item4Element.click(); assertTrue("Item4 aria attribute should be Selected even when clicked", Boolean.valueOf(item4Element.getAttribute("aria-checked"))); assertTrue("Item4 should be Selected even when clicked", (Boolean) auraUITestingUtil.getEval(selectedValueM4Exp)); assertFalse("default: Item3 aria attribute should be Uncheked", Boolean.valueOf(item3Element.getAttribute("aria-checked"))); assertFalse("default: Item3 should be Uncheked", (Boolean) auraUITestingUtil.getEval(selectedValueM3Exp)); // click on item3 item3Element.click(); assertTrue("Item3 aria attribute should be Selected after the click", Boolean.valueOf(item3Element.getAttribute("aria-checked"))); assertTrue("Item3 should be Selected after the click", (Boolean) auraUITestingUtil.getEval(selectedValueM3Exp)); // click on item3 again auraUITestingUtil.pressEnter(item3Element); // verify not selected assertFalse("Item3 aria attribute should be Uncheked after Pressing Enter", Boolean.valueOf(item3Element.getAttribute("aria-checked"))); assertFalse("Item3 should be Uncheked after Pressing Enter", (Boolean) auraUITestingUtil.getEval(selectedValueM3Exp)); item3Element.sendKeys(Keys.SPACE); assertTrue("Item3 aria attribute should be checked after Pressing Space", Boolean.valueOf(item3Element.getAttribute("aria-checked"))); assertTrue("Item3 should be checked after Pressing Space", (Boolean) auraUITestingUtil.getEval(selectedValueM3Exp)); // check if focus changes when you use up and down arrow using keyboard item3Element.sendKeys(Keys.DOWN); assertEquals("Focus should be on item 4", item4Element.getText(), auraUITestingUtil.getActiveElementText()); item4Element.sendKeys(Keys.UP); assertEquals("Focus should be back to item 3", item3Element.getText(), auraUITestingUtil.getActiveElementText()); // press Tab to close to menu item3Element.sendKeys(Keys.TAB); // verify menu not visible assertFalse("CheckboxMenu list should not be visible after escape", menu.getAttribute("class").contains("visible")); // click on submit button and verify the results assertEquals("label value should not get updated", "NFC West Teams", menuLabel.getText()); button.click(); assertEquals("Checkbox items selected are not correct", "St. Louis Rams,Arizona Cardinals", result.getText()); }
From source file:org.auraframework.integration.test.components.ui.menu.MenuUITest.java
License:Apache License
private void testActionMenuViaKeyboardInteractionForApp(String appName, String appendString, boolean verifyLabelUpdate) throws Exception { open(appName);/*from ww w . j ava 2s . c om*/ WebDriver driver = this.getDriver(); String label = "trigger" + appendString; String menuName = "actionMenu" + appendString; String menuItem1 = "actionItem1" + appendString; String menuItem3 = "actionItem3" + appendString; String menuItem4 = "actionItem4" + appendString; WebElement menuLabel = driver.findElement(By.className(label)); WebElement actionMenu = driver.findElement(By.className(menuName)); openMenu(menuLabel, actionMenu); WebElement actionItem1 = driver.findElement(By.className(menuItem1)); WebElement actionItem1Element = getAnchor(actionItem1); WebElement actionItem3 = driver.findElement(By.className(menuItem3)); WebElement actionItem3Element = getAnchor(actionItem3); WebElement actionItem4 = driver.findElement(By.className(menuItem4)); WebElement actionItem4Element = getAnchor(actionItem4); // default focus on trigger assertEquals("Focus should be on the trigger", menuLabel.getText(), getAuraUITestingUtil().getActiveElementText()); // press down key once menuLabel.sendKeys(Keys.DOWN); // focus should be one the first item waitForFocusOnElement(actionItem1Element); actionItem1Element.sendKeys(Keys.DOWN, Keys.DOWN); // verify focus on action item3 getAuraUITestingUtil().setHoverOverElement(menuItem3); waitForFocusOnElement(actionItem3Element); actionItem3Element.click(); if (verifyLabelUpdate) { waitForMenuText(menuLabel, "Inter Milan"); } openMenu(menuLabel, actionMenu); getAuraUITestingUtil().setHoverOverElement(menuItem4); waitForFocusOnElement(actionItem4Element); actionItem4Element.sendKeys(Keys.UP); // verify focus on action item3 waitForFocusOnElement(actionItem3Element); // press space key and check if item3 got selected actionItem3Element.sendKeys(Keys.SPACE); if (verifyLabelUpdate) { waitForMenuText(menuLabel, "Inter Milan"); } openMenu(menuLabel, actionMenu); getAuraUITestingUtil().setHoverOverElement(menuItem1); waitForFocusOnElement(actionItem1Element); actionItem1Element.sendKeys(Keys.ESCAPE); waitForMenuClose(actionMenu); }
From source file:org.auraframework.integration.test.components.ui.menu.MenuUITest.java
License:Apache License
private void testMenuCheckboxForApp(String appName) throws Exception { open(appName);/*from w w w. j av a 2 s. com*/ WebDriver driver = this.getDriver(); String label = "checkboxMenuLabel"; String menuName = "checkboxMenu"; String menuItem3 = "checkboxItem3"; String menuItem4 = "checkboxItem4"; WebElement menuLabel = driver.findElement(By.className(label)); WebElement menu = driver.findElement(By.className(menuName)); WebElement button = driver.findElement(By.className("checkboxButton")); By resultLocator = By.className("checkboxMenuResult"); // check for default label present assertEquals("label is wrong", "NFC West Teams", menuLabel.getText()); assertFalse("Default: CheckboxMenu list should not be visible", menu.getAttribute("class").contains("visible")); openMenu(menuLabel, menu); WebElement item3 = driver.findElement(By.className(menuItem3)); WebElement item3Element = getAnchor(item3); WebElement item4 = driver.findElement(By.className(menuItem4)); WebElement item4Element = getAnchor(item4); // verify aria attribute item4 which is used for accessibility is disabled and selected assertTrue("Item4 aria attribute should be disabled", Boolean.valueOf(item4Element.getAttribute("aria-disabled"))); assertTrue("Item4 aria attribute should be selected", Boolean.valueOf(item4Element.getAttribute("aria-checked"))); // verify item4 is disabled and selected assertTrue("Item4 should be disabled", getCmpBoolAttribute(menuItem4, "v.disabled")); assertTrue("Item4 should be selected", getCmpBoolAttribute(menuItem4, "v.selected")); // item4Element is not clickable as it's disabled via markup tryToClickDisabledElm(item4Element); assertTrue("Item4 aria attribute should be Selected even when clicked", Boolean.valueOf(item4Element.getAttribute("aria-checked"))); assertTrue("Item4 should be Selected even when clicked", getCmpBoolAttribute(menuItem4, "v.selected")); assertFalse("default: Item3 aria attribute should be Unchecked", Boolean.valueOf(item3Element.getAttribute("aria-checked"))); assertFalse("default: Item3 should be Unchecked", getCmpBoolAttribute(menuItem3, "v.selected")); // check item3 with click item3Element.click(); getAuraUITestingUtil().waitUntil(check -> Boolean.valueOf(item3Element.getAttribute("aria-checked")), "Item3 aria attribute should be checked after the click"); assertTrue("Item3 v.selected should be true after the click", getCmpBoolAttribute(menuItem3, "v.selected")); // uncheck item3 with ENTER key item3Element.sendKeys(Keys.ENTER); getAuraUITestingUtil().waitUntil(check -> !Boolean.valueOf(item3Element.getAttribute("aria-checked")), "Item3 aria attribute should be uncheked after pressing ENTER"); assertFalse("Item3 v.selected should be false after pressing ENTER", getCmpBoolAttribute(menuItem3, "v.selected")); // check item3 with SPACE key item3Element.sendKeys(Keys.SPACE); getAuraUITestingUtil().waitUntil(check -> Boolean.valueOf(item3Element.getAttribute("aria-checked")), "Item3 aria attribute should be checked after pressing SPACE"); assertTrue("Item3 v.selected should be true after pressing SPACE", getCmpBoolAttribute(menuItem3, "v.selected")); // check if focus changes when you use up and down arrow using keyboard item3Element.sendKeys(Keys.DOWN); waitForFocusOnElement(item4Element); item4Element.sendKeys(Keys.UP); waitForFocusOnElement(item3Element); // press Tab to close to menu item3Element.sendKeys(Keys.TAB); waitForMenuClose(menu); // click on submit button and verify the results assertEquals("label value should not get updated", "NFC West Teams", menuLabel.getText()); button.click(); getAuraUITestingUtil().waitForElementText(resultLocator, "St. Louis Rams,Arizona Cardinals", true); }