Skip to content

Commit 7b6b9fc

Browse files
browser: add global send keys (#1596)
1 parent b8d4f5d commit 7b6b9fc

8 files changed

Lines changed: 64 additions & 5 deletions

File tree

webtau-browser/src/main/java/org/testingisdocumenting/webtau/browser/Browser.java

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,12 @@
1919

2020
import org.openqa.selenium.OutputType;
2121
import org.openqa.selenium.WebDriver;
22+
import org.openqa.selenium.interactions.Actions;
2223
import org.testingisdocumenting.webtau.browser.documentation.BrowserDocumentation;
2324
import org.testingisdocumenting.webtau.browser.driver.CurrentWebDriver;
2425
import org.testingisdocumenting.webtau.browser.driver.WebDriverCreator;
2526
import org.testingisdocumenting.webtau.browser.navigation.BrowserPageNavigation;
26-
import org.testingisdocumenting.webtau.browser.page.TablePageElement;
27-
import org.testingisdocumenting.webtau.browser.page.PageElement;
28-
import org.testingisdocumenting.webtau.browser.page.PageElementValue;
29-
import org.testingisdocumenting.webtau.browser.page.PageUrl;
27+
import org.testingisdocumenting.webtau.browser.page.*;
3028
import org.testingisdocumenting.webtau.browser.page.path.PageElementPath;
3129
import org.testingisdocumenting.webtau.cache.Cache;
3230
import org.testingisdocumenting.webtau.reporter.TokenizedMessage;
@@ -182,6 +180,14 @@ public TablePageElement table(PageElement pageElement) {
182180
return new TablePageElement(pageElement);
183181
}
184182

183+
public void sendKeys(CharSequence keys) {
184+
String renderedKeys = BrowserKeysRenderer.renderKeys(keys);
185+
186+
createAndExecuteStep(tokenizedMessage().action("sending keys").string(renderedKeys).to().id("browser"),
187+
() -> tokenizedMessage().action("sent keys").string(renderedKeys).to().id("browser"),
188+
() -> new Actions(driver).sendKeys(keys).perform());
189+
}
190+
185191
public boolean hasActiveBrowsers() {
186192
return WebDriverCreator.hasActiveBrowsers();
187193
}

webtau-browser/src/main/java/org/testingisdocumenting/webtau/browser/page/PageElement.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -402,7 +402,6 @@ private void clickWithKey(String label, CharSequence key) {
402402
.perform());
403403
}
404404

405-
406405
private Object extractSingleValue() {
407406
List<WebElement> elements = path.find(driver);
408407
if (elements.isEmpty()) {
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
* Add: [browser](browser/introduction)`.sendKeys` to send keys to the window instead of a specific element

webtau-docs/znai/release-notes/2.4/add-2024-05-14-http-contain-exactly-markers.md renamed to webtau-docs/znai/release-notes/2.4/fix-2024-05-14-http-contain-exactly-markers.md

File renamed without changes.
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package scenarios.ui
2+
3+
import static org.testingisdocumenting.webtau.WebTauGroovyDsl.*
4+
5+
def searchBox = $("#search-box")
6+
def numberOfResults = $(".result").count
7+
8+
scenario('send keys to browser') {
9+
browser.open("/search")
10+
searchBox.click()
11+
12+
browser.sendKeys("search this")
13+
browser.sendKeys(browser.keys.enter)
14+
15+
numberOfResults.shouldBe > 1
16+
}

webtau-feature-testing/src/test/groovy/org/testingisdocumenting/webtau/featuretesting/WebTauBrowserFeaturesTestBase.groovy

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -370,6 +370,11 @@ class WebTauBrowserFeaturesTestBase {
370370
runCli("searchWithPersonas.groovy", "webtau.cfg.groovy")
371371
}
372372

373+
@Test
374+
void "global send keys"() {
375+
runCli("globalSendKeys.groovy", "webtau.cfg.groovy")
376+
}
377+
373378
@Test
374379
void "ag grid multi select"() {
375380
runCli("agGridMultiSelect.groovy", "webtau.cfg.groovy")
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
{
2+
"scenarioDetails" : [ {
3+
"scenario" : "after all tests",
4+
"shortContainerId" : "Teardown",
5+
"stepsSummary" : {
6+
"numberOfSuccessful" : 1
7+
}
8+
}, {
9+
"scenario" : "send keys to browser",
10+
"shortContainerId" : "globalSendKeys.groovy",
11+
"stepsSummary" : {
12+
"numberOfSuccessful" : 6
13+
}
14+
} ],
15+
"exitCode" : 0
16+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
{
2+
"scenarioDetails" : [ {
3+
"scenario" : "after all tests",
4+
"shortContainerId" : "Teardown",
5+
"stepsSummary" : {
6+
"numberOfSuccessful" : 1
7+
}
8+
}, {
9+
"scenario" : "send keys to browser",
10+
"shortContainerId" : "globalSendKeys.groovy",
11+
"stepsSummary" : {
12+
"numberOfSuccessful" : 6
13+
}
14+
} ],
15+
"exitCode" : 0
16+
}

0 commit comments

Comments
 (0)