From 7ca378f70ece0fd4b73ff777da737c3a1735520f Mon Sep 17 00:00:00 2001 From: dharshi Date: Mon, 2 Dec 2024 14:20:29 +0530 Subject: [PATCH 01/43] [Automated] Update the toml files --- ballerina/Dependencies.toml | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/ballerina/Dependencies.toml b/ballerina/Dependencies.toml index 20d94f8..1c5fdab 100644 --- a/ballerina/Dependencies.toml +++ b/ballerina/Dependencies.toml @@ -7,6 +7,18 @@ dependencies-toml-version = "2" distribution-version = "2201.10.2" +[[package]] +org = "ballerina" +name = "io" +version = "1.6.1" +dependencies = [ + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "lang.value"} +] +modules = [ + {org = "ballerina", packageName = "io", moduleName = "io"} +] + [[package]] org = "ballerina" name = "jballerina.java" @@ -28,14 +40,11 @@ modules = [ [[package]] org = "ballerina" -name = "lang.runtime" +name = "lang.value" version = "0.0.0" dependencies = [ {org = "ballerina", name = "jballerina.java"} ] -modules = [ - {org = "ballerina", packageName = "lang.runtime", moduleName = "lang.runtime"} -] [[package]] org = "ballerina" @@ -62,9 +71,9 @@ org = "xlibb" name = "selenium" version = "0.1.0" dependencies = [ + {org = "ballerina", name = "io"}, {org = "ballerina", name = "jballerina.java"}, {org = "ballerina", name = "jballerina.java.arrays"}, - {org = "ballerina", name = "lang.runtime"}, {org = "ballerinai", name = "observe"} ] modules = [ From c05b1af11215834f8c774e43716507e529bc7e69 Mon Sep 17 00:00:00 2001 From: dharshi Date: Mon, 2 Dec 2024 14:23:44 +0530 Subject: [PATCH 02/43] add selenium modules --- ballerina/Ballerina.toml | 234 ++++ ballerina/Module.md | 155 +- ballerina/client.bal | 5 + ballerina/icon.png | Bin 0 -> 2040 bytes ballerina/modules/java.io/IOException.bal | 10 + ballerina/modules/java.lang/Boolean.bal | 39 + ballerina/modules/java.lang/CharSequence.bal | 39 + ballerina/modules/java.lang/Class.bal | 39 + .../java.lang/InterruptedException.bal | 10 + ballerina/modules/java.lang/Object.bal | 159 +++ ballerina/modules/java.net/URL.bal | 39 + ballerina/modules/java.nio.file/Path.bal | 39 + .../modules/java.util.function/BiFunction.bal | 39 + .../modules/java.util.function/Predicate.bal | 39 + .../modules/java.util.function/Supplier.bal | 39 + ballerina/modules/java.util.logging/Level.bal | 39 + ballerina/modules/java.util/Collection.bal | 39 + ballerina/modules/java.util/List.bal | 39 + ballerina/modules/java.util/Map.bal | 39 + ballerina/modules/java.util/Optional.bal | 39 + ballerina/modules/java.util/Set.bal | 39 + .../modules/org.openqa.selenium.bidi/BiDi.bal | 39 + .../ChromeDriver.bal | 1242 +++++++++++++++++ .../ChromeDriverService.bal | 39 + .../ChromeOptions.bal | 39 + .../ChromiumDriver.bal | 1163 +++++++++++++++ .../ChromiumNetworkConditions.bal | 39 + .../org.openqa.selenium.devtools/DevTools.bal | 39 + .../org.openqa.selenium.edge/EdgeDriver.bal | 1242 +++++++++++++++++ .../EdgeDriverService.bal | 39 + .../org.openqa.selenium.edge/EdgeOptions.bal | 39 + .../FederatedCredentialManagementDialog.bal | 39 + .../FirefoxCommandContext.bal | 39 + .../FirefoxDriver.bal | 1049 ++++++++++++++ .../FirefoxDriverService.bal | 39 + .../FirefoxOptions.bal | 39 + .../LocalStorage.bal | 39 + .../org.openqa.selenium.html5/Location.bal | 39 + .../SessionStorage.bal | 39 + .../org.openqa.selenium.logging/EventType.bal | 39 + .../ConnectionType.bal | 39 + .../PrintOptions.bal | 39 + .../ClientConfig.bal | 39 + .../DriverService.bal | 39 + .../CommandExecutor.bal | 39 + .../ErrorHandler.bal | 39 + .../FileDetector.bal | 39 + .../org.openqa.selenium.remote/Network.bal | 39 + .../RemoteWebDriver.bal | 872 ++++++++++++ .../RemoteWebDriverBuilder.bal | 39 + .../org.openqa.selenium.remote/Script.bal | 39 + .../org.openqa.selenium.remote/SessionId.bal | 39 + .../SafariDriver.bal | 911 ++++++++++++ .../SafariDriverService.bal | 39 + .../SafariOptions.bal | 39 + .../VirtualAuthenticator.bal | 39 + .../VirtualAuthenticatorOptions.bal | 39 + ballerina/modules/org.openqa.selenium/By.bal | 309 ++++ .../org.openqa.selenium/Capabilities.bal | 39 + .../modules/org.openqa.selenium/Dimension.bal | 190 +++ .../org.openqa.selenium/Navigation.bal | 39 + .../modules/org.openqa.selenium/Options.bal | 39 + .../org.openqa.selenium/OutputType.bal | 39 + ballerina/modules/org.openqa.selenium/Pdf.bal | 39 + .../modules/org.openqa.selenium/Point.bal | 39 + .../modules/org.openqa.selenium/Rectangle.bal | 39 + .../modules/org.openqa.selenium/ScriptKey.bal | 39 + .../org.openqa.selenium/SearchContext.bal | 39 + .../org.openqa.selenium/TargetLocator.bal | 39 + .../modules/org.openqa.selenium/WebDriver.bal | 208 +++ .../org.openqa.selenium/WebElement.bal | 333 +++++ ballerina/resources/enter base url - side.png | Bin 0 -> 76545 bytes ballerina/resources/find locators.png | Bin 0 -> 104997 bytes ballerina/resources/new project - side.png | Bin 0 -> 84398 bytes .../resources/start recording - side.png | Bin 0 -> 57883 bytes .../.devcontainer.json | 8 + .../.gitignore | 11 + .../Ballerina.toml | 14 + .../Dependencies.toml | 126 ++ .../README.md | 0 .../student_application_form_filling/main.bal | 121 ++ .../modules/resources/data.json | 84 ++ .../records.bal | 64 + .../utils.bal | 7 + 84 files changed, 10628 insertions(+), 5 deletions(-) create mode 100644 ballerina/icon.png create mode 100644 ballerina/modules/java.io/IOException.bal create mode 100644 ballerina/modules/java.lang/Boolean.bal create mode 100644 ballerina/modules/java.lang/CharSequence.bal create mode 100644 ballerina/modules/java.lang/Class.bal create mode 100644 ballerina/modules/java.lang/InterruptedException.bal create mode 100644 ballerina/modules/java.lang/Object.bal create mode 100644 ballerina/modules/java.net/URL.bal create mode 100644 ballerina/modules/java.nio.file/Path.bal create mode 100644 ballerina/modules/java.util.function/BiFunction.bal create mode 100644 ballerina/modules/java.util.function/Predicate.bal create mode 100644 ballerina/modules/java.util.function/Supplier.bal create mode 100644 ballerina/modules/java.util.logging/Level.bal create mode 100644 ballerina/modules/java.util/Collection.bal create mode 100644 ballerina/modules/java.util/List.bal create mode 100644 ballerina/modules/java.util/Map.bal create mode 100644 ballerina/modules/java.util/Optional.bal create mode 100644 ballerina/modules/java.util/Set.bal create mode 100644 ballerina/modules/org.openqa.selenium.bidi/BiDi.bal create mode 100644 ballerina/modules/org.openqa.selenium.chrome/ChromeDriver.bal create mode 100644 ballerina/modules/org.openqa.selenium.chrome/ChromeDriverService.bal create mode 100644 ballerina/modules/org.openqa.selenium.chrome/ChromeOptions.bal create mode 100644 ballerina/modules/org.openqa.selenium.chromium/ChromiumDriver.bal create mode 100644 ballerina/modules/org.openqa.selenium.chromium/ChromiumNetworkConditions.bal create mode 100644 ballerina/modules/org.openqa.selenium.devtools/DevTools.bal create mode 100644 ballerina/modules/org.openqa.selenium.edge/EdgeDriver.bal create mode 100644 ballerina/modules/org.openqa.selenium.edge/EdgeDriverService.bal create mode 100644 ballerina/modules/org.openqa.selenium.edge/EdgeOptions.bal create mode 100644 ballerina/modules/org.openqa.selenium.federatedcredentialmanagement/FederatedCredentialManagementDialog.bal create mode 100644 ballerina/modules/org.openqa.selenium.firefox/FirefoxCommandContext.bal create mode 100644 ballerina/modules/org.openqa.selenium.firefox/FirefoxDriver.bal create mode 100644 ballerina/modules/org.openqa.selenium.firefox/FirefoxDriverService.bal create mode 100644 ballerina/modules/org.openqa.selenium.firefox/FirefoxOptions.bal create mode 100644 ballerina/modules/org.openqa.selenium.html5/LocalStorage.bal create mode 100644 ballerina/modules/org.openqa.selenium.html5/Location.bal create mode 100644 ballerina/modules/org.openqa.selenium.html5/SessionStorage.bal create mode 100644 ballerina/modules/org.openqa.selenium.logging/EventType.bal create mode 100644 ballerina/modules/org.openqa.selenium.mobile/ConnectionType.bal create mode 100644 ballerina/modules/org.openqa.selenium.print/PrintOptions.bal create mode 100644 ballerina/modules/org.openqa.selenium.remote.http/ClientConfig.bal create mode 100644 ballerina/modules/org.openqa.selenium.remote.service/DriverService.bal create mode 100644 ballerina/modules/org.openqa.selenium.remote/CommandExecutor.bal create mode 100644 ballerina/modules/org.openqa.selenium.remote/ErrorHandler.bal create mode 100644 ballerina/modules/org.openqa.selenium.remote/FileDetector.bal create mode 100644 ballerina/modules/org.openqa.selenium.remote/Network.bal create mode 100644 ballerina/modules/org.openqa.selenium.remote/RemoteWebDriver.bal create mode 100644 ballerina/modules/org.openqa.selenium.remote/RemoteWebDriverBuilder.bal create mode 100644 ballerina/modules/org.openqa.selenium.remote/Script.bal create mode 100644 ballerina/modules/org.openqa.selenium.remote/SessionId.bal create mode 100644 ballerina/modules/org.openqa.selenium.safari/SafariDriver.bal create mode 100644 ballerina/modules/org.openqa.selenium.safari/SafariDriverService.bal create mode 100644 ballerina/modules/org.openqa.selenium.safari/SafariOptions.bal create mode 100644 ballerina/modules/org.openqa.selenium.virtualauthenticator/VirtualAuthenticator.bal create mode 100644 ballerina/modules/org.openqa.selenium.virtualauthenticator/VirtualAuthenticatorOptions.bal create mode 100644 ballerina/modules/org.openqa.selenium/By.bal create mode 100644 ballerina/modules/org.openqa.selenium/Capabilities.bal create mode 100644 ballerina/modules/org.openqa.selenium/Dimension.bal create mode 100644 ballerina/modules/org.openqa.selenium/Navigation.bal create mode 100644 ballerina/modules/org.openqa.selenium/Options.bal create mode 100644 ballerina/modules/org.openqa.selenium/OutputType.bal create mode 100644 ballerina/modules/org.openqa.selenium/Pdf.bal create mode 100644 ballerina/modules/org.openqa.selenium/Point.bal create mode 100644 ballerina/modules/org.openqa.selenium/Rectangle.bal create mode 100644 ballerina/modules/org.openqa.selenium/ScriptKey.bal create mode 100644 ballerina/modules/org.openqa.selenium/SearchContext.bal create mode 100644 ballerina/modules/org.openqa.selenium/TargetLocator.bal create mode 100644 ballerina/modules/org.openqa.selenium/WebDriver.bal create mode 100644 ballerina/modules/org.openqa.selenium/WebElement.bal create mode 100644 ballerina/resources/enter base url - side.png create mode 100644 ballerina/resources/find locators.png create mode 100644 ballerina/resources/new project - side.png create mode 100644 ballerina/resources/start recording - side.png create mode 100644 examples/student_application_form_filling/.devcontainer.json create mode 100644 examples/student_application_form_filling/.gitignore create mode 100644 examples/student_application_form_filling/Ballerina.toml create mode 100644 examples/student_application_form_filling/Dependencies.toml create mode 100644 examples/student_application_form_filling/README.md create mode 100644 examples/student_application_form_filling/main.bal create mode 100644 examples/student_application_form_filling/modules/resources/data.json create mode 100644 examples/student_application_form_filling/records.bal create mode 100644 examples/student_application_form_filling/utils.bal diff --git a/ballerina/Ballerina.toml b/ballerina/Ballerina.toml index 6dd9a28..4b97cb8 100644 --- a/ballerina/Ballerina.toml +++ b/ballerina/Ballerina.toml @@ -14,3 +14,237 @@ observabilityIncluded = true [platform.java17] graalvmCompatible = true + +# transitive dependency of org.seleniumhq.selenium:selenium-api:4.25.0 +[[platform.java17.dependency]] +groupId = "org.jspecify" +artifactId = "jspecify" +version = "1.0.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-chrome-driver:4.25.0 +[[platform.java17.dependency]] +groupId = "com.google.auto.service" +artifactId = "auto-service-annotations" +version = "1.1.1" + +# transitive dependency of org.seleniumhq.selenium:selenium-java:4.25.0 +[[platform.java17.dependency]] +groupId = "org.seleniumhq.selenium" +artifactId = "selenium-devtools-v127" +version = "4.25.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-java:4.25.0 +[[platform.java17.dependency]] +groupId = "org.seleniumhq.selenium" +artifactId = "selenium-devtools-v128" +version = "4.25.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-java:4.25.0 +[[platform.java17.dependency]] +groupId = "org.seleniumhq.selenium" +artifactId = "selenium-devtools-v129" +version = "4.25.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-java:4.25.0 +[[platform.java17.dependency]] +groupId = "org.seleniumhq.selenium" +artifactId = "selenium-devtools-v85" +version = "4.25.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-firefox-driver:4.25.0 +[[platform.java17.dependency]] +groupId = "dev.failsafe" +artifactId = "failsafe" +version = "3.3.2" + +# transitive dependency of org.seleniumhq.selenium:selenium-java:4.25.0 +[[platform.java17.dependency]] +groupId = "org.seleniumhq.selenium" +artifactId = "selenium-ie-driver" +version = "4.25.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.25.0 +[[platform.java17.dependency]] +groupId = "com.google.guava" +artifactId = "guava" +version = "33.3.0-jre" + +# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.25.0 +[[platform.java17.dependency]] +groupId = "com.google.guava" +artifactId = "failureaccess" +version = "1.0.2" + +# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.25.0 +[[platform.java17.dependency]] +groupId = "com.google.guava" +artifactId = "listenablefuture" +version = "9999.0-empty-to-avoid-conflict-with-guava" + +# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.25.0 +[[platform.java17.dependency]] +groupId = "com.google.code.findbugs" +artifactId = "jsr305" +version = "3.0.2" + +# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.25.0 +[[platform.java17.dependency]] +groupId = "org.checkerframework" +artifactId = "checker-qual" +version = "3.43.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.25.0 +[[platform.java17.dependency]] +groupId = "com.google.errorprone" +artifactId = "error_prone_annotations" +version = "2.28.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.25.0 +[[platform.java17.dependency]] +groupId = "com.google.j2objc" +artifactId = "j2objc-annotations" +version = "3.0.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.25.0 +[[platform.java17.dependency]] +groupId = "net.bytebuddy" +artifactId = "byte-buddy" +version = "1.15.1" + +# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.25.0 +[[platform.java17.dependency]] +groupId = "org.seleniumhq.selenium" +artifactId = "selenium-os" +version = "4.25.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.25.0 +[[platform.java17.dependency]] +groupId = "org.apache.commons" +artifactId = "commons-exec" +version = "1.4.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-java:4.25.0 +[[platform.java17.dependency]] +groupId = "org.seleniumhq.selenium" +artifactId = "selenium-safari-driver" +version = "4.25.0" + +[[platform.java17.dependency]] +groupId = "org.seleniumhq.selenium" +artifactId = "selenium-java" +version = "4.27.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-java:4.27.0 +[[platform.java17.dependency]] +groupId = "org.seleniumhq.selenium" +artifactId = "selenium-api" +version = "4.27.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-java:4.27.0 +[[platform.java17.dependency]] +groupId = "org.seleniumhq.selenium" +artifactId = "selenium-chrome-driver" +version = "4.27.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-chrome-driver:4.27.0 +[[platform.java17.dependency]] +groupId = "org.seleniumhq.selenium" +artifactId = "selenium-chromium-driver" +version = "4.27.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-chrome-driver:4.27.0 +[[platform.java17.dependency]] +groupId = "org.seleniumhq.selenium" +artifactId = "selenium-json" +version = "4.27.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-chrome-driver:4.27.0 +[[platform.java17.dependency]] +groupId = "org.seleniumhq.selenium" +artifactId = "selenium-manager" +version = "4.27.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-java:4.27.0 +[[platform.java17.dependency]] +groupId = "org.seleniumhq.selenium" +artifactId = "selenium-devtools-v129" +version = "4.27.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-java:4.27.0 +[[platform.java17.dependency]] +groupId = "org.seleniumhq.selenium" +artifactId = "selenium-devtools-v130" +version = "4.27.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-java:4.27.0 +[[platform.java17.dependency]] +groupId = "org.seleniumhq.selenium" +artifactId = "selenium-devtools-v131" +version = "4.27.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-java:4.27.0 +[[platform.java17.dependency]] +groupId = "org.seleniumhq.selenium" +artifactId = "selenium-devtools-v85" +version = "4.27.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-java:4.27.0 +[[platform.java17.dependency]] +groupId = "org.seleniumhq.selenium" +artifactId = "selenium-edge-driver" +version = "4.27.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-java:4.27.0 +[[platform.java17.dependency]] +groupId = "org.seleniumhq.selenium" +artifactId = "selenium-firefox-driver" +version = "4.27.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-firefox-driver:4.27.0 +[[platform.java17.dependency]] +groupId = "org.seleniumhq.selenium" +artifactId = "selenium-http" +version = "4.27.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-java:4.27.0 +[[platform.java17.dependency]] +groupId = "org.seleniumhq.selenium" +artifactId = "selenium-ie-driver" +version = "4.27.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-java:4.27.0 +[[platform.java17.dependency]] +groupId = "org.seleniumhq.selenium" +artifactId = "selenium-remote-driver" +version = "4.27.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.27.0 +[[platform.java17.dependency]] +groupId = "com.google.guava" +artifactId = "guava" +version = "33.3.1-jre" + +# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.27.0 +[[platform.java17.dependency]] +groupId = "net.bytebuddy" +artifactId = "byte-buddy" +version = "1.15.10" + +# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.27.0 +[[platform.java17.dependency]] +groupId = "org.seleniumhq.selenium" +artifactId = "selenium-os" +version = "4.27.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-java:4.27.0 +[[platform.java17.dependency]] +groupId = "org.seleniumhq.selenium" +artifactId = "selenium-safari-driver" +version = "4.27.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-java:4.27.0 +[[platform.java17.dependency]] +groupId = "org.seleniumhq.selenium" +artifactId = "selenium-support" +version = "4.27.0" + diff --git a/ballerina/Module.md b/ballerina/Module.md index 1f4ba23..aedb090 100644 --- a/ballerina/Module.md +++ b/ballerina/Module.md @@ -1,14 +1,159 @@ ## Overview -[//]: # (TODO: Add overview mentioning the purpose of the module, supported REST API versions, and other high-level details.) +This module automates web applications across various browsers. Selenium interacts with web browsers directly, simulating user actions such as clicks, text input, page navigation, and more. -## Setup guide +## Quickstart -[//]: # (TODO: Add detailed steps to obtain credentials and configure the module.) +#### Web driver + +The core component of Selenium is the WebDriver. It is an interface for controlling a web browser instance and communicates with the browser through its native API. You can create a web driver based on the browser you want to automate. + +```ballerina +import xlibb/selenium.org.openqa.selenium.chrome; +import xlibb/selenium.org.openqa.selenium.safari; +import xlibb/selenium.org.openqa.selenium.edge; +import xlibb/selenium.org.openqa.selenium.firefox; + +public function main() { + + // Web driver for Chrome browsers + chrome:ChromeDriver driver1 = chrome:newChromeDriver1(); + + // Web driver for Firefox browsers + firefox:FirefoxDriver driver2 = firefox:newFirefoxDriver1(); + + // Webdriver for edge browsers + edge:EdgeDriver driver3 = edge:newEdgeDriver1(); + + // Web driver for Safari browsers + safari:SafariDriver driver4 = safari:newSafariDriver1(); + +} +``` + +#### Launching website. + +```ballerina +import xlibb/selenium.org.openqa.selenium.chrome; + +public function main() { + + chrome:ChromeDriver driver = chrome:newChromeDriver1(); + + // Navigate to the desired website. + driver.get("https://central.ballerina.io/"); + +} +``` + +#### Locating elements + +A locator is a way to identify elements on a page. Selenium provides support for several location strategies in WebDriver, such as class name, ID, CSS selector, name, tag name, and XPath. + +```html +
+ + + +
+``` + +```ballerina +import xlibb/selenium.org.openqa.selenium.chrome; +import xlibb/selenium.org.openqa.selenium; +import ballerina/io; + +public function main() { + + chrome:ChromeDriver driver = chrome:newChromeDriver1(); + selenium:WebElement form = driver.findElement(selenium:By_id("form")); // By ID + selenium:WebElement searchboxByName = driver.findElement(selenium:By_name("q")); // By Name + selenium:WebElement searchboxbyCss = driver.findElement(selenium:By_cssSelector("#form .search-box")); // By CSS Selector + selenium:WebElement searchboxbyXpath = driver.findElement(selenium:By_xpath("//input[@id='search']")); // By XPath + selenium:WebElement searchboxbyClassName = driver.findElement(selenium:By_className("search-box")); // By Class Name + selenium:WebElement searchboxbyTagName = driver.findElement(selenium:By_tagName("input")); // By Tag Name + selenium:WebElement nestedElement = form.findElement(selenium:By_name("q")); // Locating a WebElement inside another WebElement +} + +``` + +#### Fetching data over any web element + +```ballerina +string labelText = driver.findElement(selenium:By_className("input-label")).getText(); +io:println(labelText); // outputs: 'Search:' +``` + +#### Sending user inputs to web element + +```ballerina +check driver.findElement(selenium:By_className("search-box")).sendKeys(["ballerina"]); +``` + +#### Performing Click event + +```ballerina +driver.findElement(selenium:By_className("submit-btn")).click(); +``` + +#### Closing the browser + +```ballerina +driver.quit(); +``` + +#### Complete example + +The below code will do the following, +1. Opens Chrome browser. +2. Navigates to ballerina central page. +3. Search for 'http' module. + +```ballerina +import xlibb/selenium.org.openqa.selenium.chrome; +import xlibb/selenium.org.openqa.selenium; +import ballerina/lang.runtime; + +public function main() returns error? { + chrome:ChromeDriver driver = chrome:newChromeDriver1(); + driver.get("https://central.ballerina.io/"); + + // Wait for some time, till the page completely loads. + runtime:sleep(2); + + check driver.findElement(selenium:By_id("downshift-search-bar-input")).sendKeys(["http"]); + driver.findElement(selenium:By_className("Search_searchButton__iLPLB")).click(); +} +``` + +#### Selenium IDE for Finding Locators + +Selenium IDE is a handy tool for finding locators for web elements. Here's how to use it effectively: + +1. Install Selenium IDE: Download and install the Selenium IDE extension for your browser (Chrome or Firefox) [here](https://www.selenium.dev/selenium-ide/). +2. Launch Selenium IDE: Open the Selenium IDE extension from your browser's toolbar. + +new project - side + +3. Start a New Project: Click on Create a New Project and name your project. + +start recording - side + +4. Start Recording: + - Click on the Record a New Test in a New Project option. + - Enter the URL of the web application you want to test. + - Selenium IDE will open the URL in a new tab and start recording your actions. +5. Perform Actions on the Webpage: Interact with the web elements (e.g., click buttons, fill out forms) on the page. Selenium IDE will record these actions as steps in your test case. +6. View Recorded Steps: Once done, stop the recording. The recorded steps will appear in the Selenium IDE window. Each step will include information about the action and the locator used. + +find locators + +7. Inspect Locators: + - In the list of recorded steps, click on a step to view details. + - The Target field shows the locator for the web element (e.g., XPath, ID, Name, CSS selector, etc.). + - You can switch between different locator strategies by clicking the dropdown next to the locator. Selenium IDE will display alternatives if available. -## Quickstart -[//]: # (TODO: Add a quickstart guide to demonstrate a basic functionality of the module, including sample code snippets.) ## Examples diff --git a/ballerina/client.bal b/ballerina/client.bal index 66cdc3f..fbab8cd 100644 --- a/ballerina/client.bal +++ b/ballerina/client.bal @@ -13,3 +13,8 @@ // KIND, either express or implied. See the License for the // specific language governing permissions and limitations // under the License. +import ballerina/io; + +public function main() { + io:println("works"); +} \ No newline at end of file diff --git a/ballerina/icon.png b/ballerina/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..4ee5b06dd6de7eb03f2ff39567adefa7ed790bd5 GIT binary patch literal 2040 zcmVA-fN04xIb%axKG z`U6{pjG}x3bWQM{GK)UI1`ioU`3&eD*TfxwF+e@A8u-(26KR#lG&<=Ctn;}}>FRLT zWQ+!y+JI6D3CRqg#-o#ifK>sn|6bmt$fyM#XafopUbG~m z85rzh@-dn>Bg7GK7g8s3ap7Q%b?GN7 zfde&Tz2;hfZGn&zBr8gz^a{Ih;!^FYj5B z@hfmlnK4sENKZLG@Kefzj)H~W<;73b5_*!)xTzteyPU8ERnF5IQ!~zB;m&}@MQR9H zY^fk6Gc^ZDLGY;MJiEnnCrgC%1%3)a%GzXQ@h40;UrcA4F~b-SsUxJg!G9itl+_0RAWX1urY74YvxF!d z0DKgJ6czqBn*UIzIa2VGw?Y~VsU`%86TKgTl#ReZ;CPM4A12$x2B{_lv7i=&AVuZd z{%m>8ih#yJrU@yAI9?4wij64i?ogs56ND5)9n)hXL%m78af8edf>=FII3{DOloYr^ zrU)tG9!F&S1q{b6GD(QSEfLAs1)Pg}WR?(x8$#qw737*LhzFS_MB%a!`BM{#51A)K z;bK{Wf{<}H@ggTgFtVf))+EmnKiU)_o#km&S$qu=SK1~^$_7asn=Na9PuydKSWY@J z=0!MRtU5w^$kS(&@wW$<4-CL9hKp}eI@dz+_Q?VvnQ`$;>t+q*Z#|uX;js zR+V~dY|%pq@Q$UD5~>vyC!~{MsTmq_zPZ2}k2tMjO*CakOs}~)RTA)l|>CO)q)7G zEQz7>TOx!^DdR^x3-qEgWV{@KjM8jJm6TW2gmm=@B(_Kl=~fA0gh|Qt!vw?Je*@1; zI9_GcA1TG7lglJ>&v$r_i4dZ2iN#a6Nt%I8k_x1#f4;9_A6wy*&eK79x9IM1ELBd3 z!i@pqQ>IkU8PZ-g3^~&cA)BE4fo`c&R#?>&f^6h#BCO%7q*Nd%4l%qPHtmqQ84|Du zr-6`S{_XgXbsdG0jPoFQwc|9`DxV{28>)ird8r`8yS`7BZU(kx0AENXxg1{5T&Fg1 zTU@UhMbvVxB5di4h zcXaHm1E>R3Jt22$=2U)$314b{e=Qj%MAvamSyEwfzh*qOaohM0v&b+Z%N*y-F4v5w z!uuv%qxt<-IXKHCAyW<6ho^>^YqY`IQFEBk%U}qoj|bS`DBvuQD5tjS2s0hBun3+9Bl#hG}s`p>?0lQ(r5{Q6Bv@olli6iR;6XIVonGD4(z>)mf9v zatGa~R~7qD$~u{E^!%%XA+k()-;CBcK0uT8j}sRnh&lyzj#?QwOoOnjN~`EB)+RTj zGX8=4LO^MX`8!$vLkF=K>g909HfJ}D(ky2@vqU#>)GOx5kt0Wr96562$dMxluJI49 WK?lscpx2}T0000 literal 0 HcmV?d00001 diff --git a/ballerina/modules/java.io/IOException.bal b/ballerina/modules/java.io/IOException.bal new file mode 100644 index 0000000..e7748f8 --- /dev/null +++ b/ballerina/modules/java.io/IOException.bal @@ -0,0 +1,10 @@ +// Ballerina error type for `java.io.IOException`. + +public const IOEXCEPTION = "IOException"; + +type IOExceptionData record { + string message; +}; + +public type IOException distinct error; + diff --git a/ballerina/modules/java.lang/Boolean.bal b/ballerina/modules/java.lang/Boolean.bal new file mode 100644 index 0000000..caeb04f --- /dev/null +++ b/ballerina/modules/java.lang/Boolean.bal @@ -0,0 +1,39 @@ +// This is an empty Ballerina class autogenerated to represent the `java.lang.Boolean` Java class. +// +// If you need the implementation of this class generated, please use the following command. +// +// $ bal bindgen [(-cp|--classpath) ...] +// [(-mvn|--maven) ::] +// [(-o|--output) ] +// [--public] +// (...) +// +// E.g. $ bal bindgen java.lang.Boolean + +import ballerina/jballerina.java; + +# Ballerina class mapping for the Java `java.lang.Boolean` class. +@java:Binding {'class: "java.lang.Boolean"} +public distinct class Boolean { + + *java:JObject; + + # The `handle` field that stores the reference to the `java.lang.Boolean` object. + public handle jObj; + + # The init function of the Ballerina class mapping the `java.lang.Boolean` Java class. + # + # + obj - The `handle` value containing the Java reference of the object. + public isolated function init(handle obj) { + self.jObj = obj; + } + + # The function to retrieve the string representation of the Ballerina class mapping the `java.lang.Boolean` Java class. + # + # + return - The `string` form of the Java object instance. + public isolated function toString() returns string { + return java:toString(self.jObj) ?: ""; + } + +} + diff --git a/ballerina/modules/java.lang/CharSequence.bal b/ballerina/modules/java.lang/CharSequence.bal new file mode 100644 index 0000000..ad5f437 --- /dev/null +++ b/ballerina/modules/java.lang/CharSequence.bal @@ -0,0 +1,39 @@ +// This is an empty Ballerina class autogenerated to represent the `java.lang.CharSequence` Java interface. +// +// If you need the implementation of this class generated, please use the following command. +// +// $ bal bindgen [(-cp|--classpath) ...] +// [(-mvn|--maven) ::] +// [(-o|--output) ] +// [--public] +// (...) +// +// E.g. $ bal bindgen java.lang.CharSequence + +import ballerina/jballerina.java; + +# Ballerina class mapping for the Java `java.lang.CharSequence` interface. +@java:Binding {'class: "java.lang.CharSequence"} +public distinct class CharSequence { + + *java:JObject; + + # The `handle` field that stores the reference to the `java.lang.CharSequence` object. + public handle jObj; + + # The init function of the Ballerina class mapping the `java.lang.CharSequence` Java interface. + # + # + obj - The `handle` value containing the Java reference of the object. + public isolated function init(handle obj) { + self.jObj = obj; + } + + # The function to retrieve the string representation of the Ballerina class mapping the `java.lang.CharSequence` Java interface. + # + # + return - The `string` form of the Java object instance. + public isolated function toString() returns string { + return java:toString(self.jObj) ?: ""; + } + +} + diff --git a/ballerina/modules/java.lang/Class.bal b/ballerina/modules/java.lang/Class.bal new file mode 100644 index 0000000..098cf03 --- /dev/null +++ b/ballerina/modules/java.lang/Class.bal @@ -0,0 +1,39 @@ +// This is an empty Ballerina class autogenerated to represent the `java.lang.Class` Java class. +// +// If you need the implementation of this class generated, please use the following command. +// +// $ bal bindgen [(-cp|--classpath) ...] +// [(-mvn|--maven) ::] +// [(-o|--output) ] +// [--public] +// (...) +// +// E.g. $ bal bindgen java.lang.Class + +import ballerina/jballerina.java; + +# Ballerina class mapping for the Java `java.lang.Class` class. +@java:Binding {'class: "java.lang.Class"} +public distinct class Class { + + *java:JObject; + + # The `handle` field that stores the reference to the `java.lang.Class` object. + public handle jObj; + + # The init function of the Ballerina class mapping the `java.lang.Class` Java class. + # + # + obj - The `handle` value containing the Java reference of the object. + public isolated function init(handle obj) { + self.jObj = obj; + } + + # The function to retrieve the string representation of the Ballerina class mapping the `java.lang.Class` Java class. + # + # + return - The `string` form of the Java object instance. + public isolated function toString() returns string { + return java:toString(self.jObj) ?: ""; + } + +} + diff --git a/ballerina/modules/java.lang/InterruptedException.bal b/ballerina/modules/java.lang/InterruptedException.bal new file mode 100644 index 0000000..17cae57 --- /dev/null +++ b/ballerina/modules/java.lang/InterruptedException.bal @@ -0,0 +1,10 @@ +// Ballerina error type for `java.lang.InterruptedException`. + +public const INTERRUPTEDEXCEPTION = "InterruptedException"; + +type InterruptedExceptionData record { + string message; +}; + +public type InterruptedException distinct error; + diff --git a/ballerina/modules/java.lang/Object.bal b/ballerina/modules/java.lang/Object.bal new file mode 100644 index 0000000..4ec07a1 --- /dev/null +++ b/ballerina/modules/java.lang/Object.bal @@ -0,0 +1,159 @@ +import ballerina/jballerina.java; + +# Ballerina class mapping for the Java `java.lang.Object` class. +@java:Binding {'class: "java.lang.Object"} +public distinct class Object { + + *java:JObject; + + # The `handle` field that stores the reference to the `java.lang.Object` object. + public handle jObj; + + # The init function of the Ballerina class mapping the `java.lang.Object` Java class. + # + # + obj - The `handle` value containing the Java reference of the object. + public isolated function init(handle obj) { + self.jObj = obj; + } + + # The function to retrieve the string representation of the Ballerina class mapping the `java.lang.Object` Java class. + # + # + return - The `string` form of the Java object instance. + public isolated function toString() returns string { + return java:toString(self.jObj) ?: ""; + } + + # The function that maps to the `equals` method of `java.lang.Object`. + # + # + arg0 - The `Object` value required to map with the Java method parameter. + # + return - The `boolean` value returning from the Java mapping. + public isolated function 'equals(Object arg0) returns boolean { + return java_lang_Object_equals(self.jObj, arg0.jObj); + } + + # The function that maps to the `getClass` method of `java.lang.Object`. + # + # + return - The `Class` value returning from the Java mapping. + public isolated function getClass() returns Class { + handle externalObj = java_lang_Object_getClass(self.jObj); + Class newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `hashCode` method of `java.lang.Object`. + # + # + return - The `int` value returning from the Java mapping. + public isolated function hashCode() returns int { + return java_lang_Object_hashCode(self.jObj); + } + + # The function that maps to the `notify` method of `java.lang.Object`. + public isolated function notify() { + java_lang_Object_notify(self.jObj); + } + + # The function that maps to the `notifyAll` method of `java.lang.Object`. + public isolated function notifyAll() { + java_lang_Object_notifyAll(self.jObj); + } + + # The function that maps to the `wait` method of `java.lang.Object`. + # + # + return - The `InterruptedException` value returning from the Java mapping. + public isolated function 'wait() returns InterruptedException? { + error|() externalObj = java_lang_Object_wait(self.jObj); + if (externalObj is error) { + InterruptedException e = error InterruptedException(INTERRUPTEDEXCEPTION, externalObj, message = externalObj.message()); + return e; + } + } + + # The function that maps to the `wait` method of `java.lang.Object`. + # + # + arg0 - The `int` value required to map with the Java method parameter. + # + return - The `InterruptedException` value returning from the Java mapping. + public isolated function wait2(int arg0) returns InterruptedException? { + error|() externalObj = java_lang_Object_wait2(self.jObj, arg0); + if (externalObj is error) { + InterruptedException e = error InterruptedException(INTERRUPTEDEXCEPTION, externalObj, message = externalObj.message()); + return e; + } + } + + # The function that maps to the `wait` method of `java.lang.Object`. + # + # + arg0 - The `int` value required to map with the Java method parameter. + # + arg1 - The `int` value required to map with the Java method parameter. + # + return - The `InterruptedException` value returning from the Java mapping. + public isolated function wait3(int arg0, int arg1) returns InterruptedException? { + error|() externalObj = java_lang_Object_wait3(self.jObj, arg0, arg1); + if (externalObj is error) { + InterruptedException e = error InterruptedException(INTERRUPTEDEXCEPTION, externalObj, message = externalObj.message()); + return e; + } + } + +} + +# The constructor function to generate an object of `java.lang.Object`. +# +# + return - The new `Object` class generated. +public isolated function newObject1() returns Object { + handle externalObj = java_lang_Object_newObject1(); + Object newObj = new (externalObj); + return newObj; +} + +isolated function java_lang_Object_equals(handle receiver, handle arg0) returns boolean = @java:Method { + name: "equals", + 'class: "java.lang.Object", + paramTypes: ["java.lang.Object"] +} external; + +isolated function java_lang_Object_getClass(handle receiver) returns handle = @java:Method { + name: "getClass", + 'class: "java.lang.Object", + paramTypes: [] +} external; + +isolated function java_lang_Object_hashCode(handle receiver) returns int = @java:Method { + name: "hashCode", + 'class: "java.lang.Object", + paramTypes: [] +} external; + +isolated function java_lang_Object_notify(handle receiver) = @java:Method { + name: "notify", + 'class: "java.lang.Object", + paramTypes: [] +} external; + +isolated function java_lang_Object_notifyAll(handle receiver) = @java:Method { + name: "notifyAll", + 'class: "java.lang.Object", + paramTypes: [] +} external; + +isolated function java_lang_Object_wait(handle receiver) returns error? = @java:Method { + name: "wait", + 'class: "java.lang.Object", + paramTypes: [] +} external; + +isolated function java_lang_Object_wait2(handle receiver, int arg0) returns error? = @java:Method { + name: "wait", + 'class: "java.lang.Object", + paramTypes: ["long"] +} external; + +isolated function java_lang_Object_wait3(handle receiver, int arg0, int arg1) returns error? = @java:Method { + name: "wait", + 'class: "java.lang.Object", + paramTypes: ["long", "int"] +} external; + +isolated function java_lang_Object_newObject1() returns handle = @java:Constructor { + 'class: "java.lang.Object", + paramTypes: [] +} external; + diff --git a/ballerina/modules/java.net/URL.bal b/ballerina/modules/java.net/URL.bal new file mode 100644 index 0000000..3489f2e --- /dev/null +++ b/ballerina/modules/java.net/URL.bal @@ -0,0 +1,39 @@ +// This is an empty Ballerina class autogenerated to represent the `java.net.URL` Java class. +// +// If you need the implementation of this class generated, please use the following command. +// +// $ bal bindgen [(-cp|--classpath) ...] +// [(-mvn|--maven) ::] +// [(-o|--output) ] +// [--public] +// (...) +// +// E.g. $ bal bindgen java.net.URL + +import ballerina/jballerina.java; + +# Ballerina class mapping for the Java `java.net.URL` class. +@java:Binding {'class: "java.net.URL"} +public distinct class URL { + + *java:JObject; + + # The `handle` field that stores the reference to the `java.net.URL` object. + public handle jObj; + + # The init function of the Ballerina class mapping the `java.net.URL` Java class. + # + # + obj - The `handle` value containing the Java reference of the object. + public isolated function init(handle obj) { + self.jObj = obj; + } + + # The function to retrieve the string representation of the Ballerina class mapping the `java.net.URL` Java class. + # + # + return - The `string` form of the Java object instance. + public isolated function toString() returns string { + return java:toString(self.jObj) ?: ""; + } + +} + diff --git a/ballerina/modules/java.nio.file/Path.bal b/ballerina/modules/java.nio.file/Path.bal new file mode 100644 index 0000000..337d479 --- /dev/null +++ b/ballerina/modules/java.nio.file/Path.bal @@ -0,0 +1,39 @@ +// This is an empty Ballerina class autogenerated to represent the `java.nio.file.Path` Java interface. +// +// If you need the implementation of this class generated, please use the following command. +// +// $ bal bindgen [(-cp|--classpath) ...] +// [(-mvn|--maven) ::] +// [(-o|--output) ] +// [--public] +// (...) +// +// E.g. $ bal bindgen java.nio.file.Path + +import ballerina/jballerina.java; + +# Ballerina class mapping for the Java `java.nio.file.Path` interface. +@java:Binding {'class: "java.nio.file.Path"} +public distinct class Path { + + *java:JObject; + + # The `handle` field that stores the reference to the `java.nio.file.Path` object. + public handle jObj; + + # The init function of the Ballerina class mapping the `java.nio.file.Path` Java interface. + # + # + obj - The `handle` value containing the Java reference of the object. + public isolated function init(handle obj) { + self.jObj = obj; + } + + # The function to retrieve the string representation of the Ballerina class mapping the `java.nio.file.Path` Java interface. + # + # + return - The `string` form of the Java object instance. + public isolated function toString() returns string { + return java:toString(self.jObj) ?: ""; + } + +} + diff --git a/ballerina/modules/java.util.function/BiFunction.bal b/ballerina/modules/java.util.function/BiFunction.bal new file mode 100644 index 0000000..4dbeafa --- /dev/null +++ b/ballerina/modules/java.util.function/BiFunction.bal @@ -0,0 +1,39 @@ +// This is an empty Ballerina class autogenerated to represent the `java.util.function.BiFunction` Java interface. +// +// If you need the implementation of this class generated, please use the following command. +// +// $ bal bindgen [(-cp|--classpath) ...] +// [(-mvn|--maven) ::] +// [(-o|--output) ] +// [--public] +// (...) +// +// E.g. $ bal bindgen java.util.function.BiFunction + +import ballerina/jballerina.java; + +# Ballerina class mapping for the Java `java.util.function.BiFunction` interface. +@java:Binding {'class: "java.util.function.BiFunction"} +public distinct class BiFunction { + + *java:JObject; + + # The `handle` field that stores the reference to the `java.util.function.BiFunction` object. + public handle jObj; + + # The init function of the Ballerina class mapping the `java.util.function.BiFunction` Java interface. + # + # + obj - The `handle` value containing the Java reference of the object. + public isolated function init(handle obj) { + self.jObj = obj; + } + + # The function to retrieve the string representation of the Ballerina class mapping the `java.util.function.BiFunction` Java interface. + # + # + return - The `string` form of the Java object instance. + public isolated function toString() returns string { + return java:toString(self.jObj) ?: ""; + } + +} + diff --git a/ballerina/modules/java.util.function/Predicate.bal b/ballerina/modules/java.util.function/Predicate.bal new file mode 100644 index 0000000..4eb55a0 --- /dev/null +++ b/ballerina/modules/java.util.function/Predicate.bal @@ -0,0 +1,39 @@ +// This is an empty Ballerina class autogenerated to represent the `java.util.function.Predicate` Java interface. +// +// If you need the implementation of this class generated, please use the following command. +// +// $ bal bindgen [(-cp|--classpath) ...] +// [(-mvn|--maven) ::] +// [(-o|--output) ] +// [--public] +// (...) +// +// E.g. $ bal bindgen java.util.function.Predicate + +import ballerina/jballerina.java; + +# Ballerina class mapping for the Java `java.util.function.Predicate` interface. +@java:Binding {'class: "java.util.function.Predicate"} +public distinct class Predicate { + + *java:JObject; + + # The `handle` field that stores the reference to the `java.util.function.Predicate` object. + public handle jObj; + + # The init function of the Ballerina class mapping the `java.util.function.Predicate` Java interface. + # + # + obj - The `handle` value containing the Java reference of the object. + public isolated function init(handle obj) { + self.jObj = obj; + } + + # The function to retrieve the string representation of the Ballerina class mapping the `java.util.function.Predicate` Java interface. + # + # + return - The `string` form of the Java object instance. + public isolated function toString() returns string { + return java:toString(self.jObj) ?: ""; + } + +} + diff --git a/ballerina/modules/java.util.function/Supplier.bal b/ballerina/modules/java.util.function/Supplier.bal new file mode 100644 index 0000000..56a80bc --- /dev/null +++ b/ballerina/modules/java.util.function/Supplier.bal @@ -0,0 +1,39 @@ +// This is an empty Ballerina class autogenerated to represent the `java.util.function.Supplier` Java interface. +// +// If you need the implementation of this class generated, please use the following command. +// +// $ bal bindgen [(-cp|--classpath) ...] +// [(-mvn|--maven) ::] +// [(-o|--output) ] +// [--public] +// (...) +// +// E.g. $ bal bindgen java.util.function.Supplier + +import ballerina/jballerina.java; + +# Ballerina class mapping for the Java `java.util.function.Supplier` interface. +@java:Binding {'class: "java.util.function.Supplier"} +public distinct class Supplier { + + *java:JObject; + + # The `handle` field that stores the reference to the `java.util.function.Supplier` object. + public handle jObj; + + # The init function of the Ballerina class mapping the `java.util.function.Supplier` Java interface. + # + # + obj - The `handle` value containing the Java reference of the object. + public isolated function init(handle obj) { + self.jObj = obj; + } + + # The function to retrieve the string representation of the Ballerina class mapping the `java.util.function.Supplier` Java interface. + # + # + return - The `string` form of the Java object instance. + public isolated function toString() returns string { + return java:toString(self.jObj) ?: ""; + } + +} + diff --git a/ballerina/modules/java.util.logging/Level.bal b/ballerina/modules/java.util.logging/Level.bal new file mode 100644 index 0000000..4ddb716 --- /dev/null +++ b/ballerina/modules/java.util.logging/Level.bal @@ -0,0 +1,39 @@ +// This is an empty Ballerina class autogenerated to represent the `java.util.logging.Level` Java class. +// +// If you need the implementation of this class generated, please use the following command. +// +// $ bal bindgen [(-cp|--classpath) ...] +// [(-mvn|--maven) ::] +// [(-o|--output) ] +// [--public] +// (...) +// +// E.g. $ bal bindgen java.util.logging.Level + +import ballerina/jballerina.java; + +# Ballerina class mapping for the Java `java.util.logging.Level` class. +@java:Binding {'class: "java.util.logging.Level"} +public distinct class Level { + + *java:JObject; + + # The `handle` field that stores the reference to the `java.util.logging.Level` object. + public handle jObj; + + # The init function of the Ballerina class mapping the `java.util.logging.Level` Java class. + # + # + obj - The `handle` value containing the Java reference of the object. + public isolated function init(handle obj) { + self.jObj = obj; + } + + # The function to retrieve the string representation of the Ballerina class mapping the `java.util.logging.Level` Java class. + # + # + return - The `string` form of the Java object instance. + public isolated function toString() returns string { + return java:toString(self.jObj) ?: ""; + } + +} + diff --git a/ballerina/modules/java.util/Collection.bal b/ballerina/modules/java.util/Collection.bal new file mode 100644 index 0000000..c43395e --- /dev/null +++ b/ballerina/modules/java.util/Collection.bal @@ -0,0 +1,39 @@ +// This is an empty Ballerina class autogenerated to represent the `java.util.Collection` Java interface. +// +// If you need the implementation of this class generated, please use the following command. +// +// $ bal bindgen [(-cp|--classpath) ...] +// [(-mvn|--maven) ::] +// [(-o|--output) ] +// [--public] +// (...) +// +// E.g. $ bal bindgen java.util.Collection + +import ballerina/jballerina.java; + +# Ballerina class mapping for the Java `java.util.Collection` interface. +@java:Binding {'class: "java.util.Collection"} +public distinct class Collection { + + *java:JObject; + + # The `handle` field that stores the reference to the `java.util.Collection` object. + public handle jObj; + + # The init function of the Ballerina class mapping the `java.util.Collection` Java interface. + # + # + obj - The `handle` value containing the Java reference of the object. + public isolated function init(handle obj) { + self.jObj = obj; + } + + # The function to retrieve the string representation of the Ballerina class mapping the `java.util.Collection` Java interface. + # + # + return - The `string` form of the Java object instance. + public isolated function toString() returns string { + return java:toString(self.jObj) ?: ""; + } + +} + diff --git a/ballerina/modules/java.util/List.bal b/ballerina/modules/java.util/List.bal new file mode 100644 index 0000000..874dbe1 --- /dev/null +++ b/ballerina/modules/java.util/List.bal @@ -0,0 +1,39 @@ +// This is an empty Ballerina class autogenerated to represent the `java.util.List` Java interface. +// +// If you need the implementation of this class generated, please use the following command. +// +// $ bal bindgen [(-cp|--classpath) ...] +// [(-mvn|--maven) ::] +// [(-o|--output) ] +// [--public] +// (...) +// +// E.g. $ bal bindgen java.util.List + +import ballerina/jballerina.java; + +# Ballerina class mapping for the Java `java.util.List` interface. +@java:Binding {'class: "java.util.List"} +public distinct class List { + + *java:JObject; + + # The `handle` field that stores the reference to the `java.util.List` object. + public handle jObj; + + # The init function of the Ballerina class mapping the `java.util.List` Java interface. + # + # + obj - The `handle` value containing the Java reference of the object. + public isolated function init(handle obj) { + self.jObj = obj; + } + + # The function to retrieve the string representation of the Ballerina class mapping the `java.util.List` Java interface. + # + # + return - The `string` form of the Java object instance. + public isolated function toString() returns string { + return java:toString(self.jObj) ?: ""; + } + +} + diff --git a/ballerina/modules/java.util/Map.bal b/ballerina/modules/java.util/Map.bal new file mode 100644 index 0000000..3162de3 --- /dev/null +++ b/ballerina/modules/java.util/Map.bal @@ -0,0 +1,39 @@ +// This is an empty Ballerina class autogenerated to represent the `java.util.Map` Java interface. +// +// If you need the implementation of this class generated, please use the following command. +// +// $ bal bindgen [(-cp|--classpath) ...] +// [(-mvn|--maven) ::] +// [(-o|--output) ] +// [--public] +// (...) +// +// E.g. $ bal bindgen java.util.Map + +import ballerina/jballerina.java; + +# Ballerina class mapping for the Java `java.util.Map` interface. +@java:Binding {'class: "java.util.Map"} +public distinct class Map { + + *java:JObject; + + # The `handle` field that stores the reference to the `java.util.Map` object. + public handle jObj; + + # The init function of the Ballerina class mapping the `java.util.Map` Java interface. + # + # + obj - The `handle` value containing the Java reference of the object. + public isolated function init(handle obj) { + self.jObj = obj; + } + + # The function to retrieve the string representation of the Ballerina class mapping the `java.util.Map` Java interface. + # + # + return - The `string` form of the Java object instance. + public isolated function toString() returns string { + return java:toString(self.jObj) ?: ""; + } + +} + diff --git a/ballerina/modules/java.util/Optional.bal b/ballerina/modules/java.util/Optional.bal new file mode 100644 index 0000000..cc89314 --- /dev/null +++ b/ballerina/modules/java.util/Optional.bal @@ -0,0 +1,39 @@ +// This is an empty Ballerina class autogenerated to represent the `java.util.Optional` Java class. +// +// If you need the implementation of this class generated, please use the following command. +// +// $ bal bindgen [(-cp|--classpath) ...] +// [(-mvn|--maven) ::] +// [(-o|--output) ] +// [--public] +// (...) +// +// E.g. $ bal bindgen java.util.Optional + +import ballerina/jballerina.java; + +# Ballerina class mapping for the Java `java.util.Optional` class. +@java:Binding {'class: "java.util.Optional"} +public distinct class Optional { + + *java:JObject; + + # The `handle` field that stores the reference to the `java.util.Optional` object. + public handle jObj; + + # The init function of the Ballerina class mapping the `java.util.Optional` Java class. + # + # + obj - The `handle` value containing the Java reference of the object. + public isolated function init(handle obj) { + self.jObj = obj; + } + + # The function to retrieve the string representation of the Ballerina class mapping the `java.util.Optional` Java class. + # + # + return - The `string` form of the Java object instance. + public isolated function toString() returns string { + return java:toString(self.jObj) ?: ""; + } + +} + diff --git a/ballerina/modules/java.util/Set.bal b/ballerina/modules/java.util/Set.bal new file mode 100644 index 0000000..9f14e3f --- /dev/null +++ b/ballerina/modules/java.util/Set.bal @@ -0,0 +1,39 @@ +// This is an empty Ballerina class autogenerated to represent the `java.util.Set` Java interface. +// +// If you need the implementation of this class generated, please use the following command. +// +// $ bal bindgen [(-cp|--classpath) ...] +// [(-mvn|--maven) ::] +// [(-o|--output) ] +// [--public] +// (...) +// +// E.g. $ bal bindgen java.util.Set + +import ballerina/jballerina.java; + +# Ballerina class mapping for the Java `java.util.Set` interface. +@java:Binding {'class: "java.util.Set"} +public distinct class Set { + + *java:JObject; + + # The `handle` field that stores the reference to the `java.util.Set` object. + public handle jObj; + + # The init function of the Ballerina class mapping the `java.util.Set` Java interface. + # + # + obj - The `handle` value containing the Java reference of the object. + public isolated function init(handle obj) { + self.jObj = obj; + } + + # The function to retrieve the string representation of the Ballerina class mapping the `java.util.Set` Java interface. + # + # + return - The `string` form of the Java object instance. + public isolated function toString() returns string { + return java:toString(self.jObj) ?: ""; + } + +} + diff --git a/ballerina/modules/org.openqa.selenium.bidi/BiDi.bal b/ballerina/modules/org.openqa.selenium.bidi/BiDi.bal new file mode 100644 index 0000000..c0b905a --- /dev/null +++ b/ballerina/modules/org.openqa.selenium.bidi/BiDi.bal @@ -0,0 +1,39 @@ +// This is an empty Ballerina class autogenerated to represent the `org.openqa.selenium.bidi.BiDi` Java class. +// +// If you need the implementation of this class generated, please use the following command. +// +// $ bal bindgen [(-cp|--classpath) ...] +// [(-mvn|--maven) ::] +// [(-o|--output) ] +// [--public] +// (...) +// +// E.g. $ bal bindgen org.openqa.selenium.bidi.BiDi + +import ballerina/jballerina.java; + +# Ballerina class mapping for the Java `org.openqa.selenium.bidi.BiDi` class. +@java:Binding {'class: "org.openqa.selenium.bidi.BiDi"} +public distinct class BiDi { + + *java:JObject; + + # The `handle` field that stores the reference to the `org.openqa.selenium.bidi.BiDi` object. + public handle jObj; + + # The init function of the Ballerina class mapping the `org.openqa.selenium.bidi.BiDi` Java class. + # + # + obj - The `handle` value containing the Java reference of the object. + public isolated function init(handle obj) { + self.jObj = obj; + } + + # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.bidi.BiDi` Java class. + # + # + return - The `string` form of the Java object instance. + public isolated function toString() returns string { + return java:toString(self.jObj) ?: ""; + } + +} + diff --git a/ballerina/modules/org.openqa.selenium.chrome/ChromeDriver.bal b/ballerina/modules/org.openqa.selenium.chrome/ChromeDriver.bal new file mode 100644 index 0000000..a53e927 --- /dev/null +++ b/ballerina/modules/org.openqa.selenium.chrome/ChromeDriver.bal @@ -0,0 +1,1242 @@ +import selenium.java.io as javaio; +import selenium.java.lang as javalang; +import selenium.java.nio.file as javaniofile; +import selenium.java.util as javautil; +import selenium.java.util.'function as javautilfunction; +import selenium.java.util.logging as javautillogging; +import selenium.org.openqa.selenium as orgopenqaselenium; +import selenium.org.openqa.selenium.'remote as orgopenqaseleniumremote; +import selenium.org.openqa.selenium.'remote.http as orgopenqaseleniumremotehttp; +import selenium.org.openqa.selenium.bidi as orgopenqaseleniumbidi; +import selenium.org.openqa.selenium.chromium as orgopenqaseleniumchromium; +import selenium.org.openqa.selenium.devtools as orgopenqaseleniumdevtools; +import selenium.org.openqa.selenium.federatedcredentialmanagement as orgopenqaseleniumfederatedcredentialmanagement; +import selenium.org.openqa.selenium.html5 as orgopenqaseleniumhtml5; +import selenium.org.openqa.selenium.logging as orgopenqaseleniumlogging; +import selenium.org.openqa.selenium.mobile as orgopenqaseleniummobile; +import selenium.org.openqa.selenium.print as orgopenqaseleniumprint; +import selenium.org.openqa.selenium.virtualauthenticator as orgopenqaseleniumvirtualauthenticator; + +import ballerina/jballerina.java; +import ballerina/jballerina.java.arrays as jarrays; + +# Ballerina class mapping for the Java `org.openqa.selenium.chrome.ChromeDriver` class. +@java:Binding {'class: "org.openqa.selenium.chrome.ChromeDriver"} +public distinct class ChromeDriver { + + *java:JObject; + *orgopenqaseleniumchromium:ChromiumDriver; + + # The `handle` field that stores the reference to the `org.openqa.selenium.chrome.ChromeDriver` object. + public handle jObj; + + # The init function of the Ballerina class mapping the `org.openqa.selenium.chrome.ChromeDriver` Java class. + # + # + obj - The `handle` value containing the Java reference of the object. + public isolated function init(handle obj) { + self.jObj = obj; + } + + # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.chrome.ChromeDriver` Java class. + # + # + return - The `string` form of the Java object instance. + public isolated function toString() returns string { + return java:toString(self.jObj) ?: ""; + } + + # The function that maps to the `addVirtualAuthenticator` method of `org.openqa.selenium.chrome.ChromeDriver`. + # + # + options - The `orgopenqaseleniumvirtualauthenticator:VirtualAuthenticatorOptions` value required to map with the Java method parameter. + # + return - The `orgopenqaseleniumvirtualauthenticator:VirtualAuthenticator` value returning from the Java mapping. + public isolated function addVirtualAuthenticator(orgopenqaseleniumvirtualauthenticator:VirtualAuthenticatorOptions options) returns orgopenqaseleniumvirtualauthenticator:VirtualAuthenticator { + handle externalObj = org_openqa_selenium_chrome_ChromeDriver_addVirtualAuthenticator(self.jObj, options.jObj); + orgopenqaseleniumvirtualauthenticator:VirtualAuthenticator newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `close` method of `org.openqa.selenium.chrome.ChromeDriver`. + public isolated function close() { + org_openqa_selenium_chrome_ChromeDriver_close(self.jObj); + } + + # The function that maps to the `deleteDownloadableFiles` method of `org.openqa.selenium.chrome.ChromeDriver`. + public isolated function deleteDownloadableFiles() { + org_openqa_selenium_chrome_ChromeDriver_deleteDownloadableFiles(self.jObj); + } + + # The function that maps to the `deleteNetworkConditions` method of `org.openqa.selenium.chrome.ChromeDriver`. + public isolated function deleteNetworkConditions() { + org_openqa_selenium_chrome_ChromeDriver_deleteNetworkConditions(self.jObj); + } + + # The function that maps to the `downloadFile` method of `org.openqa.selenium.chrome.ChromeDriver`. + # + # + fileName - The `string` value required to map with the Java method parameter. + # + targetLocation - The `javaniofile:Path` value required to map with the Java method parameter. + # + return - The `javaio:IOException` value returning from the Java mapping. + public isolated function downloadFile(string fileName, javaniofile:Path targetLocation) returns javaio:IOException? { + error|() externalObj = org_openqa_selenium_chrome_ChromeDriver_downloadFile(self.jObj, java:fromString(fileName), targetLocation.jObj); + if (externalObj is error) { + javaio:IOException e = error javaio:IOException(javaio:IOEXCEPTION, externalObj, message = externalObj.message()); + return e; + } + } + + # The function that maps to the `equals` method of `org.openqa.selenium.chrome.ChromeDriver`. + # + # + arg0 - The `javalang:Object` value required to map with the Java method parameter. + # + return - The `boolean` value returning from the Java mapping. + public isolated function 'equals(javalang:Object arg0) returns boolean { + return org_openqa_selenium_chrome_ChromeDriver_equals(self.jObj, arg0.jObj); + } + + # The function that maps to the `executeAsyncScript` method of `org.openqa.selenium.chrome.ChromeDriver`. + # + # + script - The `string` value required to map with the Java method parameter. + # + args - The `javalang:Object[]` value required to map with the Java method parameter. + # + return - The `javalang:Object` value returning from the Java mapping. + public isolated function executeAsyncScript(string script, javalang:Object[] args) returns javalang:Object|error { + handle externalObj = org_openqa_selenium_chrome_ChromeDriver_executeAsyncScript(self.jObj, java:fromString(script), check jarrays:toHandle(args, "java.lang.Object")); + javalang:Object newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `executeCdpCommand` method of `org.openqa.selenium.chrome.ChromeDriver`. + # + # + commandName - The `string` value required to map with the Java method parameter. + # + parameters - The `javautil:Map` value required to map with the Java method parameter. + # + return - The `javautil:Map` value returning from the Java mapping. + public isolated function executeCdpCommand(string commandName, javautil:Map parameters) returns javautil:Map { + handle externalObj = org_openqa_selenium_chrome_ChromeDriver_executeCdpCommand(self.jObj, java:fromString(commandName), parameters.jObj); + javautil:Map newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `executeScript` method of `org.openqa.selenium.chrome.ChromeDriver`. + # + # + 'key - The `orgopenqaselenium:ScriptKey` value required to map with the Java method parameter. + # + args - The `javalang:Object[]` value required to map with the Java method parameter. + # + return - The `javalang:Object` value returning from the Java mapping. + public isolated function executeScript(orgopenqaselenium:ScriptKey 'key, javalang:Object[] args) returns javalang:Object|error { + handle externalObj = org_openqa_selenium_chrome_ChromeDriver_executeScript(self.jObj, 'key.jObj, check jarrays:toHandle(args, "java.lang.Object")); + javalang:Object newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `executeScript` method of `org.openqa.selenium.chrome.ChromeDriver`. + # + # + script - The `string` value required to map with the Java method parameter. + # + args - The `javalang:Object[]` value required to map with the Java method parameter. + # + return - The `javalang:Object` value returning from the Java mapping. + public isolated function executeScript2(string script, javalang:Object[] args) returns javalang:Object|error { + handle externalObj = org_openqa_selenium_chrome_ChromeDriver_executeScript2(self.jObj, java:fromString(script), check jarrays:toHandle(args, "java.lang.Object")); + javalang:Object newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `findElement` method of `org.openqa.selenium.chrome.ChromeDriver`. + # + # + locator - The `orgopenqaselenium:By` value required to map with the Java method parameter. + # + return - The `orgopenqaselenium:WebElement` value returning from the Java mapping. + public isolated function findElement(orgopenqaselenium:By locator) returns orgopenqaselenium:WebElement { + handle externalObj = org_openqa_selenium_chrome_ChromeDriver_findElement(self.jObj, locator.jObj); + orgopenqaselenium:WebElement newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `findElements` method of `org.openqa.selenium.chrome.ChromeDriver`. + # + # + locator - The `orgopenqaselenium:By` value required to map with the Java method parameter. + # + return - The `javautil:List` value returning from the Java mapping. + public isolated function findElements(orgopenqaselenium:By locator) returns javautil:List { + handle externalObj = org_openqa_selenium_chrome_ChromeDriver_findElements(self.jObj, locator.jObj); + javautil:List newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `findElements` method of `org.openqa.selenium.chrome.ChromeDriver`. + # + # + context - The `orgopenqaselenium:SearchContext` value required to map with the Java method parameter. + # + findCommand - The `javautilfunction:BiFunction` value required to map with the Java method parameter. + # + locator - The `orgopenqaselenium:By` value required to map with the Java method parameter. + # + return - The `javautil:List` value returning from the Java mapping. + public isolated function findElements2(orgopenqaselenium:SearchContext context, javautilfunction:BiFunction findCommand, orgopenqaselenium:By locator) returns javautil:List { + handle externalObj = org_openqa_selenium_chrome_ChromeDriver_findElements2(self.jObj, context.jObj, findCommand.jObj, locator.jObj); + javautil:List newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `get` method of `org.openqa.selenium.chrome.ChromeDriver`. + # + # + url - The `string` value required to map with the Java method parameter. + public isolated function get(string url) { + org_openqa_selenium_chrome_ChromeDriver_get(self.jObj, java:fromString(url)); + } + + # The function that maps to the `getBiDi` method of `org.openqa.selenium.chrome.ChromeDriver`. + # + # + return - The `orgopenqaseleniumbidi:BiDi` value returning from the Java mapping. + public isolated function getBiDi() returns orgopenqaseleniumbidi:BiDi { + handle externalObj = org_openqa_selenium_chrome_ChromeDriver_getBiDi(self.jObj); + orgopenqaseleniumbidi:BiDi newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getCapabilities` method of `org.openqa.selenium.chrome.ChromeDriver`. + # + # + return - The `orgopenqaselenium:Capabilities` value returning from the Java mapping. + public isolated function getCapabilities() returns orgopenqaselenium:Capabilities { + handle externalObj = org_openqa_selenium_chrome_ChromeDriver_getCapabilities(self.jObj); + orgopenqaselenium:Capabilities newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getCastIssueMessage` method of `org.openqa.selenium.chrome.ChromeDriver`. + # + # + return - The `string` value returning from the Java mapping. + public isolated function getCastIssueMessage() returns string { + return java:toString(org_openqa_selenium_chrome_ChromeDriver_getCastIssueMessage(self.jObj)) ?: ""; + } + + # The function that maps to the `getCastSinks` method of `org.openqa.selenium.chrome.ChromeDriver`. + # + # + return - The `javautil:List` value returning from the Java mapping. + public isolated function getCastSinks() returns javautil:List { + handle externalObj = org_openqa_selenium_chrome_ChromeDriver_getCastSinks(self.jObj); + javautil:List newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getClass` method of `org.openqa.selenium.chrome.ChromeDriver`. + # + # + return - The `javalang:Class` value returning from the Java mapping. + public isolated function getClass() returns javalang:Class { + handle externalObj = org_openqa_selenium_chrome_ChromeDriver_getClass(self.jObj); + javalang:Class newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getCommandExecutor` method of `org.openqa.selenium.chrome.ChromeDriver`. + # + # + return - The `orgopenqaseleniumremote:CommandExecutor` value returning from the Java mapping. + public isolated function getCommandExecutor() returns orgopenqaseleniumremote:CommandExecutor { + handle externalObj = org_openqa_selenium_chrome_ChromeDriver_getCommandExecutor(self.jObj); + orgopenqaseleniumremote:CommandExecutor newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getCurrentUrl` method of `org.openqa.selenium.chrome.ChromeDriver`. + # + # + return - The `string` value returning from the Java mapping. + public isolated function getCurrentUrl() returns string { + return java:toString(org_openqa_selenium_chrome_ChromeDriver_getCurrentUrl(self.jObj)) ?: ""; + } + + # The function that maps to the `getDevTools` method of `org.openqa.selenium.chrome.ChromeDriver`. + # + # + return - The `orgopenqaseleniumdevtools:DevTools` value returning from the Java mapping. + public isolated function getDevTools() returns orgopenqaseleniumdevtools:DevTools { + handle externalObj = org_openqa_selenium_chrome_ChromeDriver_getDevTools(self.jObj); + orgopenqaseleniumdevtools:DevTools newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getDownloadableFiles` method of `org.openqa.selenium.chrome.ChromeDriver`. + # + # + return - The `javautil:List` value returning from the Java mapping. + public isolated function getDownloadableFiles() returns javautil:List { + handle externalObj = org_openqa_selenium_chrome_ChromeDriver_getDownloadableFiles(self.jObj); + javautil:List newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getErrorHandler` method of `org.openqa.selenium.chrome.ChromeDriver`. + # + # + return - The `orgopenqaseleniumremote:ErrorHandler` value returning from the Java mapping. + public isolated function getErrorHandler() returns orgopenqaseleniumremote:ErrorHandler { + handle externalObj = org_openqa_selenium_chrome_ChromeDriver_getErrorHandler(self.jObj); + orgopenqaseleniumremote:ErrorHandler newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getFederatedCredentialManagementDialog` method of `org.openqa.selenium.chrome.ChromeDriver`. + # + # + return - The `orgopenqaseleniumfederatedcredentialmanagement:FederatedCredentialManagementDialog` value returning from the Java mapping. + public isolated function getFederatedCredentialManagementDialog() returns orgopenqaseleniumfederatedcredentialmanagement:FederatedCredentialManagementDialog { + handle externalObj = org_openqa_selenium_chrome_ChromeDriver_getFederatedCredentialManagementDialog(self.jObj); + orgopenqaseleniumfederatedcredentialmanagement:FederatedCredentialManagementDialog newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getFileDetector` method of `org.openqa.selenium.chrome.ChromeDriver`. + # + # + return - The `orgopenqaseleniumremote:FileDetector` value returning from the Java mapping. + public isolated function getFileDetector() returns orgopenqaseleniumremote:FileDetector { + handle externalObj = org_openqa_selenium_chrome_ChromeDriver_getFileDetector(self.jObj); + orgopenqaseleniumremote:FileDetector newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getLocalStorage` method of `org.openqa.selenium.chrome.ChromeDriver`. + # + # + return - The `orgopenqaseleniumhtml5:LocalStorage` value returning from the Java mapping. + public isolated function getLocalStorage() returns orgopenqaseleniumhtml5:LocalStorage { + handle externalObj = org_openqa_selenium_chrome_ChromeDriver_getLocalStorage(self.jObj); + orgopenqaseleniumhtml5:LocalStorage newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getNetworkConditions` method of `org.openqa.selenium.chrome.ChromeDriver`. + # + # + return - The `orgopenqaseleniumchromium:ChromiumNetworkConditions` value returning from the Java mapping. + public isolated function getNetworkConditions() returns orgopenqaseleniumchromium:ChromiumNetworkConditions { + handle externalObj = org_openqa_selenium_chrome_ChromeDriver_getNetworkConditions(self.jObj); + orgopenqaseleniumchromium:ChromiumNetworkConditions newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getNetworkConnection` method of `org.openqa.selenium.chrome.ChromeDriver`. + # + # + return - The `orgopenqaseleniummobile:ConnectionType` value returning from the Java mapping. + public isolated function getNetworkConnection() returns orgopenqaseleniummobile:ConnectionType { + handle externalObj = org_openqa_selenium_chrome_ChromeDriver_getNetworkConnection(self.jObj); + orgopenqaseleniummobile:ConnectionType newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getPageSource` method of `org.openqa.selenium.chrome.ChromeDriver`. + # + # + return - The `string` value returning from the Java mapping. + public isolated function getPageSource() returns string { + return java:toString(org_openqa_selenium_chrome_ChromeDriver_getPageSource(self.jObj)) ?: ""; + } + + # The function that maps to the `getPinnedScripts` method of `org.openqa.selenium.chrome.ChromeDriver`. + # + # + return - The `javautil:Set` value returning from the Java mapping. + public isolated function getPinnedScripts() returns javautil:Set { + handle externalObj = org_openqa_selenium_chrome_ChromeDriver_getPinnedScripts(self.jObj); + javautil:Set newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getScreenshotAs` method of `org.openqa.selenium.chrome.ChromeDriver`. + # + # + outputType - The `orgopenqaselenium:OutputType` value required to map with the Java method parameter. + # + return - The `javalang:Object` value returning from the Java mapping. + public isolated function getScreenshotAs(orgopenqaselenium:OutputType outputType) returns javalang:Object { + handle externalObj = org_openqa_selenium_chrome_ChromeDriver_getScreenshotAs(self.jObj, outputType.jObj); + javalang:Object newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getSessionId` method of `org.openqa.selenium.chrome.ChromeDriver`. + # + # + return - The `orgopenqaseleniumremote:SessionId` value returning from the Java mapping. + public isolated function getSessionId() returns orgopenqaseleniumremote:SessionId { + handle externalObj = org_openqa_selenium_chrome_ChromeDriver_getSessionId(self.jObj); + orgopenqaseleniumremote:SessionId newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getSessionStorage` method of `org.openqa.selenium.chrome.ChromeDriver`. + # + # + return - The `orgopenqaseleniumhtml5:SessionStorage` value returning from the Java mapping. + public isolated function getSessionStorage() returns orgopenqaseleniumhtml5:SessionStorage { + handle externalObj = org_openqa_selenium_chrome_ChromeDriver_getSessionStorage(self.jObj); + orgopenqaseleniumhtml5:SessionStorage newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getTitle` method of `org.openqa.selenium.chrome.ChromeDriver`. + # + # + return - The `string` value returning from the Java mapping. + public isolated function getTitle() returns string { + return java:toString(org_openqa_selenium_chrome_ChromeDriver_getTitle(self.jObj)) ?: ""; + } + + # The function that maps to the `getWindowHandle` method of `org.openqa.selenium.chrome.ChromeDriver`. + # + # + return - The `string` value returning from the Java mapping. + public isolated function getWindowHandle() returns string { + return java:toString(org_openqa_selenium_chrome_ChromeDriver_getWindowHandle(self.jObj)) ?: ""; + } + + # The function that maps to the `getWindowHandles` method of `org.openqa.selenium.chrome.ChromeDriver`. + # + # + return - The `javautil:Set` value returning from the Java mapping. + public isolated function getWindowHandles() returns javautil:Set { + handle externalObj = org_openqa_selenium_chrome_ChromeDriver_getWindowHandles(self.jObj); + javautil:Set newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `hashCode` method of `org.openqa.selenium.chrome.ChromeDriver`. + # + # + return - The `int` value returning from the Java mapping. + public isolated function hashCode() returns int { + return org_openqa_selenium_chrome_ChromeDriver_hashCode(self.jObj); + } + + # The function that maps to the `launchApp` method of `org.openqa.selenium.chrome.ChromeDriver`. + # + # + id - The `string` value required to map with the Java method parameter. + public isolated function launchApp(string id) { + org_openqa_selenium_chrome_ChromeDriver_launchApp(self.jObj, java:fromString(id)); + } + + # The function that maps to the `location` method of `org.openqa.selenium.chrome.ChromeDriver`. + # + # + return - The `orgopenqaseleniumhtml5:Location` value returning from the Java mapping. + public isolated function location() returns orgopenqaseleniumhtml5:Location { + handle externalObj = org_openqa_selenium_chrome_ChromeDriver_location(self.jObj); + orgopenqaseleniumhtml5:Location newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `manage` method of `org.openqa.selenium.chrome.ChromeDriver`. + # + # + return - The `orgopenqaselenium:Options` value returning from the Java mapping. + public isolated function manage() returns orgopenqaselenium:Options { + handle externalObj = org_openqa_selenium_chrome_ChromeDriver_manage(self.jObj); + orgopenqaselenium:Options newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `maybeGetBiDi` method of `org.openqa.selenium.chrome.ChromeDriver`. + # + # + return - The `javautil:Optional` value returning from the Java mapping. + public isolated function maybeGetBiDi() returns javautil:Optional { + handle externalObj = org_openqa_selenium_chrome_ChromeDriver_maybeGetBiDi(self.jObj); + javautil:Optional newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `maybeGetDevTools` method of `org.openqa.selenium.chrome.ChromeDriver`. + # + # + return - The `javautil:Optional` value returning from the Java mapping. + public isolated function maybeGetDevTools() returns javautil:Optional { + handle externalObj = org_openqa_selenium_chrome_ChromeDriver_maybeGetDevTools(self.jObj); + javautil:Optional newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `navigate` method of `org.openqa.selenium.chrome.ChromeDriver`. + # + # + return - The `orgopenqaselenium:Navigation` value returning from the Java mapping. + public isolated function navigate() returns orgopenqaselenium:Navigation { + handle externalObj = org_openqa_selenium_chrome_ChromeDriver_navigate(self.jObj); + orgopenqaselenium:Navigation newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `network` method of `org.openqa.selenium.chrome.ChromeDriver`. + # + # + return - The `orgopenqaseleniumremote:Network` value returning from the Java mapping. + public isolated function network() returns orgopenqaseleniumremote:Network { + handle externalObj = org_openqa_selenium_chrome_ChromeDriver_network(self.jObj); + orgopenqaseleniumremote:Network newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `notify` method of `org.openqa.selenium.chrome.ChromeDriver`. + public isolated function notify() { + org_openqa_selenium_chrome_ChromeDriver_notify(self.jObj); + } + + # The function that maps to the `notifyAll` method of `org.openqa.selenium.chrome.ChromeDriver`. + public isolated function notifyAll() { + org_openqa_selenium_chrome_ChromeDriver_notifyAll(self.jObj); + } + + # The function that maps to the `onLogEvent` method of `org.openqa.selenium.chrome.ChromeDriver`. + # + # + kind - The `orgopenqaseleniumlogging:EventType` value required to map with the Java method parameter. + public isolated function onLogEvent(orgopenqaseleniumlogging:EventType kind) { + org_openqa_selenium_chrome_ChromeDriver_onLogEvent(self.jObj, kind.jObj); + } + + # The function that maps to the `perform` method of `org.openqa.selenium.chrome.ChromeDriver`. + # + # + actions - The `javautil:Collection` value required to map with the Java method parameter. + public isolated function perform(javautil:Collection actions) { + org_openqa_selenium_chrome_ChromeDriver_perform(self.jObj, actions.jObj); + } + + # The function that maps to the `pin` method of `org.openqa.selenium.chrome.ChromeDriver`. + # + # + script - The `string` value required to map with the Java method parameter. + # + return - The `orgopenqaselenium:ScriptKey` value returning from the Java mapping. + public isolated function pin(string script) returns orgopenqaselenium:ScriptKey { + handle externalObj = org_openqa_selenium_chrome_ChromeDriver_pin(self.jObj, java:fromString(script)); + orgopenqaselenium:ScriptKey newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `print` method of `org.openqa.selenium.chrome.ChromeDriver`. + # + # + printOptions - The `orgopenqaseleniumprint:PrintOptions` value required to map with the Java method parameter. + # + return - The `orgopenqaselenium:Pdf` value returning from the Java mapping. + public isolated function print(orgopenqaseleniumprint:PrintOptions printOptions) returns orgopenqaselenium:Pdf { + handle externalObj = org_openqa_selenium_chrome_ChromeDriver_print(self.jObj, printOptions.jObj); + orgopenqaselenium:Pdf newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `quit` method of `org.openqa.selenium.chrome.ChromeDriver`. + public isolated function quit() { + org_openqa_selenium_chrome_ChromeDriver_quit(self.jObj); + } + + # The function that maps to the `register` method of `org.openqa.selenium.chrome.ChromeDriver`. + # + # + whenThisMatches - The `javautilfunction:Predicate` value required to map with the Java method parameter. + # + useTheseCredentials - The `javautilfunction:Supplier` value required to map with the Java method parameter. + public isolated function register(javautilfunction:Predicate whenThisMatches, javautilfunction:Supplier useTheseCredentials) { + org_openqa_selenium_chrome_ChromeDriver_register(self.jObj, whenThisMatches.jObj, useTheseCredentials.jObj); + } + + # The function that maps to the `register` method of `org.openqa.selenium.chrome.ChromeDriver`. + # + # + alwaysUseTheseCredentials - The `javautilfunction:Supplier` value required to map with the Java method parameter. + public isolated function register2(javautilfunction:Supplier alwaysUseTheseCredentials) { + org_openqa_selenium_chrome_ChromeDriver_register2(self.jObj, alwaysUseTheseCredentials.jObj); + } + + # The function that maps to the `removeVirtualAuthenticator` method of `org.openqa.selenium.chrome.ChromeDriver`. + # + # + authenticator - The `orgopenqaseleniumvirtualauthenticator:VirtualAuthenticator` value required to map with the Java method parameter. + public isolated function removeVirtualAuthenticator(orgopenqaseleniumvirtualauthenticator:VirtualAuthenticator authenticator) { + org_openqa_selenium_chrome_ChromeDriver_removeVirtualAuthenticator(self.jObj, authenticator.jObj); + } + + # The function that maps to the `requireDownloadsEnabled` method of `org.openqa.selenium.chrome.ChromeDriver`. + # + # + capabilities - The `orgopenqaselenium:Capabilities` value required to map with the Java method parameter. + public isolated function requireDownloadsEnabled(orgopenqaselenium:Capabilities capabilities) { + org_openqa_selenium_chrome_ChromeDriver_requireDownloadsEnabled(self.jObj, capabilities.jObj); + } + + # The function that maps to the `resetCooldown` method of `org.openqa.selenium.chrome.ChromeDriver`. + public isolated function resetCooldown() { + org_openqa_selenium_chrome_ChromeDriver_resetCooldown(self.jObj); + } + + # The function that maps to the `resetInputState` method of `org.openqa.selenium.chrome.ChromeDriver`. + public isolated function resetInputState() { + org_openqa_selenium_chrome_ChromeDriver_resetInputState(self.jObj); + } + + # The function that maps to the `script` method of `org.openqa.selenium.chrome.ChromeDriver`. + # + # + return - The `orgopenqaseleniumremote:Script` value returning from the Java mapping. + public isolated function script() returns orgopenqaseleniumremote:Script { + handle externalObj = org_openqa_selenium_chrome_ChromeDriver_script(self.jObj); + orgopenqaseleniumremote:Script newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `selectCastSink` method of `org.openqa.selenium.chrome.ChromeDriver`. + # + # + deviceName - The `string` value required to map with the Java method parameter. + public isolated function selectCastSink(string deviceName) { + org_openqa_selenium_chrome_ChromeDriver_selectCastSink(self.jObj, java:fromString(deviceName)); + } + + # The function that maps to the `setDelayEnabled` method of `org.openqa.selenium.chrome.ChromeDriver`. + # + # + enabled - The `boolean` value required to map with the Java method parameter. + public isolated function setDelayEnabled(boolean enabled) { + org_openqa_selenium_chrome_ChromeDriver_setDelayEnabled(self.jObj, enabled); + } + + # The function that maps to the `setErrorHandler` method of `org.openqa.selenium.chrome.ChromeDriver`. + # + # + handler - The `orgopenqaseleniumremote:ErrorHandler` value required to map with the Java method parameter. + public isolated function setErrorHandler(orgopenqaseleniumremote:ErrorHandler handler) { + org_openqa_selenium_chrome_ChromeDriver_setErrorHandler(self.jObj, handler.jObj); + } + + # The function that maps to the `setFileDetector` method of `org.openqa.selenium.chrome.ChromeDriver`. + # + # + detector - The `orgopenqaseleniumremote:FileDetector` value required to map with the Java method parameter. + public isolated function setFileDetector(orgopenqaseleniumremote:FileDetector detector) { + org_openqa_selenium_chrome_ChromeDriver_setFileDetector(self.jObj, detector.jObj); + } + + # The function that maps to the `setLocation` method of `org.openqa.selenium.chrome.ChromeDriver`. + # + # + location - The `orgopenqaseleniumhtml5:Location` value required to map with the Java method parameter. + public isolated function setLocation(orgopenqaseleniumhtml5:Location location) { + org_openqa_selenium_chrome_ChromeDriver_setLocation(self.jObj, location.jObj); + } + + # The function that maps to the `setLogLevel` method of `org.openqa.selenium.chrome.ChromeDriver`. + # + # + level - The `javautillogging:Level` value required to map with the Java method parameter. + public isolated function setLogLevel(javautillogging:Level level) { + org_openqa_selenium_chrome_ChromeDriver_setLogLevel(self.jObj, level.jObj); + } + + # The function that maps to the `setNetworkConditions` method of `org.openqa.selenium.chrome.ChromeDriver`. + # + # + networkConditions - The `orgopenqaseleniumchromium:ChromiumNetworkConditions` value required to map with the Java method parameter. + public isolated function setNetworkConditions(orgopenqaseleniumchromium:ChromiumNetworkConditions networkConditions) { + org_openqa_selenium_chrome_ChromeDriver_setNetworkConditions(self.jObj, networkConditions.jObj); + } + + # The function that maps to the `setNetworkConnection` method of `org.openqa.selenium.chrome.ChromeDriver`. + # + # + 'type - The `orgopenqaseleniummobile:ConnectionType` value required to map with the Java method parameter. + # + return - The `orgopenqaseleniummobile:ConnectionType` value returning from the Java mapping. + public isolated function setNetworkConnection(orgopenqaseleniummobile:ConnectionType 'type) returns orgopenqaseleniummobile:ConnectionType { + handle externalObj = org_openqa_selenium_chrome_ChromeDriver_setNetworkConnection(self.jObj, 'type.jObj); + orgopenqaseleniummobile:ConnectionType newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `setPermission` method of `org.openqa.selenium.chrome.ChromeDriver`. + # + # + name - The `string` value required to map with the Java method parameter. + # + value - The `string` value required to map with the Java method parameter. + public isolated function setPermission(string name, string value) { + org_openqa_selenium_chrome_ChromeDriver_setPermission(self.jObj, java:fromString(name), java:fromString(value)); + } + + # The function that maps to the `startDesktopMirroring` method of `org.openqa.selenium.chrome.ChromeDriver`. + # + # + deviceName - The `string` value required to map with the Java method parameter. + public isolated function startDesktopMirroring(string deviceName) { + org_openqa_selenium_chrome_ChromeDriver_startDesktopMirroring(self.jObj, java:fromString(deviceName)); + } + + # The function that maps to the `startTabMirroring` method of `org.openqa.selenium.chrome.ChromeDriver`. + # + # + deviceName - The `string` value required to map with the Java method parameter. + public isolated function startTabMirroring(string deviceName) { + org_openqa_selenium_chrome_ChromeDriver_startTabMirroring(self.jObj, java:fromString(deviceName)); + } + + # The function that maps to the `stopCasting` method of `org.openqa.selenium.chrome.ChromeDriver`. + # + # + deviceName - The `string` value required to map with the Java method parameter. + public isolated function stopCasting(string deviceName) { + org_openqa_selenium_chrome_ChromeDriver_stopCasting(self.jObj, java:fromString(deviceName)); + } + + # The function that maps to the `switchTo` method of `org.openqa.selenium.chrome.ChromeDriver`. + # + # + return - The `orgopenqaselenium:TargetLocator` value returning from the Java mapping. + public isolated function switchTo() returns orgopenqaselenium:TargetLocator { + handle externalObj = org_openqa_selenium_chrome_ChromeDriver_switchTo(self.jObj); + orgopenqaselenium:TargetLocator newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `unpin` method of `org.openqa.selenium.chrome.ChromeDriver`. + # + # + 'key - The `orgopenqaselenium:ScriptKey` value required to map with the Java method parameter. + public isolated function unpin(orgopenqaselenium:ScriptKey 'key) { + org_openqa_selenium_chrome_ChromeDriver_unpin(self.jObj, 'key.jObj); + } + + # The function that maps to the `wait` method of `org.openqa.selenium.chrome.ChromeDriver`. + # + # + return - The `javalang:InterruptedException` value returning from the Java mapping. + public isolated function 'wait() returns javalang:InterruptedException? { + error|() externalObj = org_openqa_selenium_chrome_ChromeDriver_wait(self.jObj); + if (externalObj is error) { + javalang:InterruptedException e = error javalang:InterruptedException(javalang:INTERRUPTEDEXCEPTION, externalObj, message = externalObj.message()); + return e; + } + } + + # The function that maps to the `wait` method of `org.openqa.selenium.chrome.ChromeDriver`. + # + # + arg0 - The `int` value required to map with the Java method parameter. + # + return - The `javalang:InterruptedException` value returning from the Java mapping. + public isolated function wait2(int arg0) returns javalang:InterruptedException? { + error|() externalObj = org_openqa_selenium_chrome_ChromeDriver_wait2(self.jObj, arg0); + if (externalObj is error) { + javalang:InterruptedException e = error javalang:InterruptedException(javalang:INTERRUPTEDEXCEPTION, externalObj, message = externalObj.message()); + return e; + } + } + + # The function that maps to the `wait` method of `org.openqa.selenium.chrome.ChromeDriver`. + # + # + arg0 - The `int` value required to map with the Java method parameter. + # + arg1 - The `int` value required to map with the Java method parameter. + # + return - The `javalang:InterruptedException` value returning from the Java mapping. + public isolated function wait3(int arg0, int arg1) returns javalang:InterruptedException? { + error|() externalObj = org_openqa_selenium_chrome_ChromeDriver_wait3(self.jObj, arg0, arg1); + if (externalObj is error) { + javalang:InterruptedException e = error javalang:InterruptedException(javalang:INTERRUPTEDEXCEPTION, externalObj, message = externalObj.message()); + return e; + } + } + +} + +# The constructor function to generate an object of `org.openqa.selenium.chrome.ChromeDriver`. +# +# + return - The new `ChromeDriver` class generated. +public isolated function newChromeDriver1() returns ChromeDriver { + handle externalObj = org_openqa_selenium_chrome_ChromeDriver_newChromeDriver1(); + ChromeDriver newObj = new (externalObj); + return newObj; +} + +# The constructor function to generate an object of `org.openqa.selenium.chrome.ChromeDriver`. +# +# + 'service - The `ChromeDriverService` value required to map with the Java constructor parameter. +# + return - The new `ChromeDriver` class generated. +public isolated function newChromeDriver2(ChromeDriverService 'service) returns ChromeDriver { + handle externalObj = org_openqa_selenium_chrome_ChromeDriver_newChromeDriver2('service.jObj); + ChromeDriver newObj = new (externalObj); + return newObj; +} + +# The constructor function to generate an object of `org.openqa.selenium.chrome.ChromeDriver`. +# +# + 'service - The `ChromeDriverService` value required to map with the Java constructor parameter. +# + options - The `ChromeOptions` value required to map with the Java constructor parameter. +# + return - The new `ChromeDriver` class generated. +public isolated function newChromeDriver3(ChromeDriverService 'service, ChromeOptions options) returns ChromeDriver { + handle externalObj = org_openqa_selenium_chrome_ChromeDriver_newChromeDriver3('service.jObj, options.jObj); + ChromeDriver newObj = new (externalObj); + return newObj; +} + +# The constructor function to generate an object of `org.openqa.selenium.chrome.ChromeDriver`. +# +# + 'service - The `ChromeDriverService` value required to map with the Java constructor parameter. +# + options - The `ChromeOptions` value required to map with the Java constructor parameter. +# + clientConfig - The `orgopenqaseleniumremotehttp:ClientConfig` value required to map with the Java constructor parameter. +# + return - The new `ChromeDriver` class generated. +public isolated function newChromeDriver4(ChromeDriverService 'service, ChromeOptions options, orgopenqaseleniumremotehttp:ClientConfig clientConfig) returns ChromeDriver { + handle externalObj = org_openqa_selenium_chrome_ChromeDriver_newChromeDriver4('service.jObj, options.jObj, clientConfig.jObj); + ChromeDriver newObj = new (externalObj); + return newObj; +} + +# The constructor function to generate an object of `org.openqa.selenium.chrome.ChromeDriver`. +# +# + options - The `ChromeOptions` value required to map with the Java constructor parameter. +# + return - The new `ChromeDriver` class generated. +public isolated function newChromeDriver5(ChromeOptions options) returns ChromeDriver { + handle externalObj = org_openqa_selenium_chrome_ChromeDriver_newChromeDriver5(options.jObj); + ChromeDriver newObj = new (externalObj); + return newObj; +} + +# The function that maps to the `builder` method of `org.openqa.selenium.chrome.ChromeDriver`. +# +# + return - The `orgopenqaseleniumremote:RemoteWebDriverBuilder` value returning from the Java mapping. +public isolated function ChromeDriver_builder() returns orgopenqaseleniumremote:RemoteWebDriverBuilder { + handle externalObj = org_openqa_selenium_chrome_ChromeDriver_builder(); + orgopenqaseleniumremote:RemoteWebDriverBuilder newObj = new (externalObj); + return newObj; +} + +# The function that retrieves the value of the public field `IS_CHROMIUM_BROWSER`. +# +# + return - The `Predicate` value of the field. +public isolated function ChromeDriver_getIS_CHROMIUM_BROWSER() returns javautilfunction:Predicate { + handle externalObj = org_openqa_selenium_chrome_ChromeDriver_getIS_CHROMIUM_BROWSER(); + javautilfunction:Predicate newObj = new (externalObj); + return newObj; +} + +isolated function org_openqa_selenium_chrome_ChromeDriver_addVirtualAuthenticator(handle receiver, handle options) returns handle = @java:Method { + name: "addVirtualAuthenticator", + 'class: "org.openqa.selenium.chrome.ChromeDriver", + paramTypes: ["org.openqa.selenium.virtualauthenticator.VirtualAuthenticatorOptions"] +} external; + +isolated function org_openqa_selenium_chrome_ChromeDriver_builder() returns handle = @java:Method { + name: "builder", + 'class: "org.openqa.selenium.chrome.ChromeDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_chrome_ChromeDriver_close(handle receiver) = @java:Method { + name: "close", + 'class: "org.openqa.selenium.chrome.ChromeDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_chrome_ChromeDriver_deleteDownloadableFiles(handle receiver) = @java:Method { + name: "deleteDownloadableFiles", + 'class: "org.openqa.selenium.chrome.ChromeDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_chrome_ChromeDriver_deleteNetworkConditions(handle receiver) = @java:Method { + name: "deleteNetworkConditions", + 'class: "org.openqa.selenium.chrome.ChromeDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_chrome_ChromeDriver_downloadFile(handle receiver, handle fileName, handle targetLocation) returns error? = @java:Method { + name: "downloadFile", + 'class: "org.openqa.selenium.chrome.ChromeDriver", + paramTypes: ["java.lang.String", "java.nio.file.Path"] +} external; + +isolated function org_openqa_selenium_chrome_ChromeDriver_equals(handle receiver, handle arg0) returns boolean = @java:Method { + name: "equals", + 'class: "org.openqa.selenium.chrome.ChromeDriver", + paramTypes: ["java.lang.Object"] +} external; + +isolated function org_openqa_selenium_chrome_ChromeDriver_executeAsyncScript(handle receiver, handle script, handle args) returns handle = @java:Method { + name: "executeAsyncScript", + 'class: "org.openqa.selenium.chrome.ChromeDriver", + paramTypes: ["java.lang.String", "[Ljava.lang.Object;"] +} external; + +isolated function org_openqa_selenium_chrome_ChromeDriver_executeCdpCommand(handle receiver, handle commandName, handle parameters) returns handle = @java:Method { + name: "executeCdpCommand", + 'class: "org.openqa.selenium.chrome.ChromeDriver", + paramTypes: ["java.lang.String", "java.util.Map"] +} external; + +isolated function org_openqa_selenium_chrome_ChromeDriver_executeScript(handle receiver, handle 'key, handle args) returns handle = @java:Method { + name: "executeScript", + 'class: "org.openqa.selenium.chrome.ChromeDriver", + paramTypes: ["org.openqa.selenium.ScriptKey", "[Ljava.lang.Object;"] +} external; + +isolated function org_openqa_selenium_chrome_ChromeDriver_executeScript2(handle receiver, handle script, handle args) returns handle = @java:Method { + name: "executeScript", + 'class: "org.openqa.selenium.chrome.ChromeDriver", + paramTypes: ["java.lang.String", "[Ljava.lang.Object;"] +} external; + +isolated function org_openqa_selenium_chrome_ChromeDriver_findElement(handle receiver, handle locator) returns handle = @java:Method { + name: "findElement", + 'class: "org.openqa.selenium.chrome.ChromeDriver", + paramTypes: ["org.openqa.selenium.By"] +} external; + +isolated function org_openqa_selenium_chrome_ChromeDriver_findElements(handle receiver, handle locator) returns handle = @java:Method { + name: "findElements", + 'class: "org.openqa.selenium.chrome.ChromeDriver", + paramTypes: ["org.openqa.selenium.By"] +} external; + +isolated function org_openqa_selenium_chrome_ChromeDriver_findElements2(handle receiver, handle context, handle findCommand, handle locator) returns handle = @java:Method { + name: "findElements", + 'class: "org.openqa.selenium.chrome.ChromeDriver", + paramTypes: ["org.openqa.selenium.SearchContext", "java.util.function.BiFunction", "org.openqa.selenium.By"] +} external; + +isolated function org_openqa_selenium_chrome_ChromeDriver_get(handle receiver, handle url) = @java:Method { + name: "get", + 'class: "org.openqa.selenium.chrome.ChromeDriver", + paramTypes: ["java.lang.String"] +} external; + +isolated function org_openqa_selenium_chrome_ChromeDriver_getBiDi(handle receiver) returns handle = @java:Method { + name: "getBiDi", + 'class: "org.openqa.selenium.chrome.ChromeDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_chrome_ChromeDriver_getCapabilities(handle receiver) returns handle = @java:Method { + name: "getCapabilities", + 'class: "org.openqa.selenium.chrome.ChromeDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_chrome_ChromeDriver_getCastIssueMessage(handle receiver) returns handle = @java:Method { + name: "getCastIssueMessage", + 'class: "org.openqa.selenium.chrome.ChromeDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_chrome_ChromeDriver_getCastSinks(handle receiver) returns handle = @java:Method { + name: "getCastSinks", + 'class: "org.openqa.selenium.chrome.ChromeDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_chrome_ChromeDriver_getClass(handle receiver) returns handle = @java:Method { + name: "getClass", + 'class: "org.openqa.selenium.chrome.ChromeDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_chrome_ChromeDriver_getCommandExecutor(handle receiver) returns handle = @java:Method { + name: "getCommandExecutor", + 'class: "org.openqa.selenium.chrome.ChromeDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_chrome_ChromeDriver_getCurrentUrl(handle receiver) returns handle = @java:Method { + name: "getCurrentUrl", + 'class: "org.openqa.selenium.chrome.ChromeDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_chrome_ChromeDriver_getDevTools(handle receiver) returns handle = @java:Method { + name: "getDevTools", + 'class: "org.openqa.selenium.chrome.ChromeDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_chrome_ChromeDriver_getDownloadableFiles(handle receiver) returns handle = @java:Method { + name: "getDownloadableFiles", + 'class: "org.openqa.selenium.chrome.ChromeDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_chrome_ChromeDriver_getErrorHandler(handle receiver) returns handle = @java:Method { + name: "getErrorHandler", + 'class: "org.openqa.selenium.chrome.ChromeDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_chrome_ChromeDriver_getFederatedCredentialManagementDialog(handle receiver) returns handle = @java:Method { + name: "getFederatedCredentialManagementDialog", + 'class: "org.openqa.selenium.chrome.ChromeDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_chrome_ChromeDriver_getFileDetector(handle receiver) returns handle = @java:Method { + name: "getFileDetector", + 'class: "org.openqa.selenium.chrome.ChromeDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_chrome_ChromeDriver_getLocalStorage(handle receiver) returns handle = @java:Method { + name: "getLocalStorage", + 'class: "org.openqa.selenium.chrome.ChromeDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_chrome_ChromeDriver_getNetworkConditions(handle receiver) returns handle = @java:Method { + name: "getNetworkConditions", + 'class: "org.openqa.selenium.chrome.ChromeDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_chrome_ChromeDriver_getNetworkConnection(handle receiver) returns handle = @java:Method { + name: "getNetworkConnection", + 'class: "org.openqa.selenium.chrome.ChromeDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_chrome_ChromeDriver_getPageSource(handle receiver) returns handle = @java:Method { + name: "getPageSource", + 'class: "org.openqa.selenium.chrome.ChromeDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_chrome_ChromeDriver_getPinnedScripts(handle receiver) returns handle = @java:Method { + name: "getPinnedScripts", + 'class: "org.openqa.selenium.chrome.ChromeDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_chrome_ChromeDriver_getScreenshotAs(handle receiver, handle outputType) returns handle = @java:Method { + name: "getScreenshotAs", + 'class: "org.openqa.selenium.chrome.ChromeDriver", + paramTypes: ["org.openqa.selenium.OutputType"] +} external; + +isolated function org_openqa_selenium_chrome_ChromeDriver_getSessionId(handle receiver) returns handle = @java:Method { + name: "getSessionId", + 'class: "org.openqa.selenium.chrome.ChromeDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_chrome_ChromeDriver_getSessionStorage(handle receiver) returns handle = @java:Method { + name: "getSessionStorage", + 'class: "org.openqa.selenium.chrome.ChromeDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_chrome_ChromeDriver_getTitle(handle receiver) returns handle = @java:Method { + name: "getTitle", + 'class: "org.openqa.selenium.chrome.ChromeDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_chrome_ChromeDriver_getWindowHandle(handle receiver) returns handle = @java:Method { + name: "getWindowHandle", + 'class: "org.openqa.selenium.chrome.ChromeDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_chrome_ChromeDriver_getWindowHandles(handle receiver) returns handle = @java:Method { + name: "getWindowHandles", + 'class: "org.openqa.selenium.chrome.ChromeDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_chrome_ChromeDriver_hashCode(handle receiver) returns int = @java:Method { + name: "hashCode", + 'class: "org.openqa.selenium.chrome.ChromeDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_chrome_ChromeDriver_launchApp(handle receiver, handle id) = @java:Method { + name: "launchApp", + 'class: "org.openqa.selenium.chrome.ChromeDriver", + paramTypes: ["java.lang.String"] +} external; + +isolated function org_openqa_selenium_chrome_ChromeDriver_location(handle receiver) returns handle = @java:Method { + name: "location", + 'class: "org.openqa.selenium.chrome.ChromeDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_chrome_ChromeDriver_manage(handle receiver) returns handle = @java:Method { + name: "manage", + 'class: "org.openqa.selenium.chrome.ChromeDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_chrome_ChromeDriver_maybeGetBiDi(handle receiver) returns handle = @java:Method { + name: "maybeGetBiDi", + 'class: "org.openqa.selenium.chrome.ChromeDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_chrome_ChromeDriver_maybeGetDevTools(handle receiver) returns handle = @java:Method { + name: "maybeGetDevTools", + 'class: "org.openqa.selenium.chrome.ChromeDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_chrome_ChromeDriver_navigate(handle receiver) returns handle = @java:Method { + name: "navigate", + 'class: "org.openqa.selenium.chrome.ChromeDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_chrome_ChromeDriver_network(handle receiver) returns handle = @java:Method { + name: "network", + 'class: "org.openqa.selenium.chrome.ChromeDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_chrome_ChromeDriver_notify(handle receiver) = @java:Method { + name: "notify", + 'class: "org.openqa.selenium.chrome.ChromeDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_chrome_ChromeDriver_notifyAll(handle receiver) = @java:Method { + name: "notifyAll", + 'class: "org.openqa.selenium.chrome.ChromeDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_chrome_ChromeDriver_onLogEvent(handle receiver, handle kind) = @java:Method { + name: "onLogEvent", + 'class: "org.openqa.selenium.chrome.ChromeDriver", + paramTypes: ["org.openqa.selenium.logging.EventType"] +} external; + +isolated function org_openqa_selenium_chrome_ChromeDriver_perform(handle receiver, handle actions) = @java:Method { + name: "perform", + 'class: "org.openqa.selenium.chrome.ChromeDriver", + paramTypes: ["java.util.Collection"] +} external; + +isolated function org_openqa_selenium_chrome_ChromeDriver_pin(handle receiver, handle script) returns handle = @java:Method { + name: "pin", + 'class: "org.openqa.selenium.chrome.ChromeDriver", + paramTypes: ["java.lang.String"] +} external; + +isolated function org_openqa_selenium_chrome_ChromeDriver_print(handle receiver, handle printOptions) returns handle = @java:Method { + name: "print", + 'class: "org.openqa.selenium.chrome.ChromeDriver", + paramTypes: ["org.openqa.selenium.print.PrintOptions"] +} external; + +isolated function org_openqa_selenium_chrome_ChromeDriver_quit(handle receiver) = @java:Method { + name: "quit", + 'class: "org.openqa.selenium.chrome.ChromeDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_chrome_ChromeDriver_register(handle receiver, handle whenThisMatches, handle useTheseCredentials) = @java:Method { + name: "register", + 'class: "org.openqa.selenium.chrome.ChromeDriver", + paramTypes: ["java.util.function.Predicate", "java.util.function.Supplier"] +} external; + +isolated function org_openqa_selenium_chrome_ChromeDriver_register2(handle receiver, handle alwaysUseTheseCredentials) = @java:Method { + name: "register", + 'class: "org.openqa.selenium.chrome.ChromeDriver", + paramTypes: ["java.util.function.Supplier"] +} external; + +isolated function org_openqa_selenium_chrome_ChromeDriver_removeVirtualAuthenticator(handle receiver, handle authenticator) = @java:Method { + name: "removeVirtualAuthenticator", + 'class: "org.openqa.selenium.chrome.ChromeDriver", + paramTypes: ["org.openqa.selenium.virtualauthenticator.VirtualAuthenticator"] +} external; + +isolated function org_openqa_selenium_chrome_ChromeDriver_requireDownloadsEnabled(handle receiver, handle capabilities) = @java:Method { + name: "requireDownloadsEnabled", + 'class: "org.openqa.selenium.chrome.ChromeDriver", + paramTypes: ["org.openqa.selenium.Capabilities"] +} external; + +isolated function org_openqa_selenium_chrome_ChromeDriver_resetCooldown(handle receiver) = @java:Method { + name: "resetCooldown", + 'class: "org.openqa.selenium.chrome.ChromeDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_chrome_ChromeDriver_resetInputState(handle receiver) = @java:Method { + name: "resetInputState", + 'class: "org.openqa.selenium.chrome.ChromeDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_chrome_ChromeDriver_script(handle receiver) returns handle = @java:Method { + name: "script", + 'class: "org.openqa.selenium.chrome.ChromeDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_chrome_ChromeDriver_selectCastSink(handle receiver, handle deviceName) = @java:Method { + name: "selectCastSink", + 'class: "org.openqa.selenium.chrome.ChromeDriver", + paramTypes: ["java.lang.String"] +} external; + +isolated function org_openqa_selenium_chrome_ChromeDriver_setDelayEnabled(handle receiver, boolean enabled) = @java:Method { + name: "setDelayEnabled", + 'class: "org.openqa.selenium.chrome.ChromeDriver", + paramTypes: ["boolean"] +} external; + +isolated function org_openqa_selenium_chrome_ChromeDriver_setErrorHandler(handle receiver, handle handler) = @java:Method { + name: "setErrorHandler", + 'class: "org.openqa.selenium.chrome.ChromeDriver", + paramTypes: ["org.openqa.selenium.remote.ErrorHandler"] +} external; + +isolated function org_openqa_selenium_chrome_ChromeDriver_setFileDetector(handle receiver, handle detector) = @java:Method { + name: "setFileDetector", + 'class: "org.openqa.selenium.chrome.ChromeDriver", + paramTypes: ["org.openqa.selenium.remote.FileDetector"] +} external; + +isolated function org_openqa_selenium_chrome_ChromeDriver_setLocation(handle receiver, handle location) = @java:Method { + name: "setLocation", + 'class: "org.openqa.selenium.chrome.ChromeDriver", + paramTypes: ["org.openqa.selenium.html5.Location"] +} external; + +isolated function org_openqa_selenium_chrome_ChromeDriver_setLogLevel(handle receiver, handle level) = @java:Method { + name: "setLogLevel", + 'class: "org.openqa.selenium.chrome.ChromeDriver", + paramTypes: ["java.util.logging.Level"] +} external; + +isolated function org_openqa_selenium_chrome_ChromeDriver_setNetworkConditions(handle receiver, handle networkConditions) = @java:Method { + name: "setNetworkConditions", + 'class: "org.openqa.selenium.chrome.ChromeDriver", + paramTypes: ["org.openqa.selenium.chromium.ChromiumNetworkConditions"] +} external; + +isolated function org_openqa_selenium_chrome_ChromeDriver_setNetworkConnection(handle receiver, handle 'type) returns handle = @java:Method { + name: "setNetworkConnection", + 'class: "org.openqa.selenium.chrome.ChromeDriver", + paramTypes: ["org.openqa.selenium.mobile.NetworkConnection$ConnectionType"] +} external; + +isolated function org_openqa_selenium_chrome_ChromeDriver_setPermission(handle receiver, handle name, handle value) = @java:Method { + name: "setPermission", + 'class: "org.openqa.selenium.chrome.ChromeDriver", + paramTypes: ["java.lang.String", "java.lang.String"] +} external; + +isolated function org_openqa_selenium_chrome_ChromeDriver_startDesktopMirroring(handle receiver, handle deviceName) = @java:Method { + name: "startDesktopMirroring", + 'class: "org.openqa.selenium.chrome.ChromeDriver", + paramTypes: ["java.lang.String"] +} external; + +isolated function org_openqa_selenium_chrome_ChromeDriver_startTabMirroring(handle receiver, handle deviceName) = @java:Method { + name: "startTabMirroring", + 'class: "org.openqa.selenium.chrome.ChromeDriver", + paramTypes: ["java.lang.String"] +} external; + +isolated function org_openqa_selenium_chrome_ChromeDriver_stopCasting(handle receiver, handle deviceName) = @java:Method { + name: "stopCasting", + 'class: "org.openqa.selenium.chrome.ChromeDriver", + paramTypes: ["java.lang.String"] +} external; + +isolated function org_openqa_selenium_chrome_ChromeDriver_switchTo(handle receiver) returns handle = @java:Method { + name: "switchTo", + 'class: "org.openqa.selenium.chrome.ChromeDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_chrome_ChromeDriver_unpin(handle receiver, handle 'key) = @java:Method { + name: "unpin", + 'class: "org.openqa.selenium.chrome.ChromeDriver", + paramTypes: ["org.openqa.selenium.ScriptKey"] +} external; + +isolated function org_openqa_selenium_chrome_ChromeDriver_wait(handle receiver) returns error? = @java:Method { + name: "wait", + 'class: "org.openqa.selenium.chrome.ChromeDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_chrome_ChromeDriver_wait2(handle receiver, int arg0) returns error? = @java:Method { + name: "wait", + 'class: "org.openqa.selenium.chrome.ChromeDriver", + paramTypes: ["long"] +} external; + +isolated function org_openqa_selenium_chrome_ChromeDriver_wait3(handle receiver, int arg0, int arg1) returns error? = @java:Method { + name: "wait", + 'class: "org.openqa.selenium.chrome.ChromeDriver", + paramTypes: ["long", "int"] +} external; + +isolated function org_openqa_selenium_chrome_ChromeDriver_getIS_CHROMIUM_BROWSER() returns handle = @java:FieldGet { + name: "IS_CHROMIUM_BROWSER", + 'class: "org.openqa.selenium.chrome.ChromeDriver" +} external; + +isolated function org_openqa_selenium_chrome_ChromeDriver_newChromeDriver1() returns handle = @java:Constructor { + 'class: "org.openqa.selenium.chrome.ChromeDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_chrome_ChromeDriver_newChromeDriver2(handle 'service) returns handle = @java:Constructor { + 'class: "org.openqa.selenium.chrome.ChromeDriver", + paramTypes: ["org.openqa.selenium.chrome.ChromeDriverService"] +} external; + +isolated function org_openqa_selenium_chrome_ChromeDriver_newChromeDriver3(handle 'service, handle options) returns handle = @java:Constructor { + 'class: "org.openqa.selenium.chrome.ChromeDriver", + paramTypes: ["org.openqa.selenium.chrome.ChromeDriverService", "org.openqa.selenium.chrome.ChromeOptions"] +} external; + +isolated function org_openqa_selenium_chrome_ChromeDriver_newChromeDriver4(handle 'service, handle options, handle clientConfig) returns handle = @java:Constructor { + 'class: "org.openqa.selenium.chrome.ChromeDriver", + paramTypes: ["org.openqa.selenium.chrome.ChromeDriverService", "org.openqa.selenium.chrome.ChromeOptions", "org.openqa.selenium.remote.http.ClientConfig"] +} external; + +isolated function org_openqa_selenium_chrome_ChromeDriver_newChromeDriver5(handle options) returns handle = @java:Constructor { + 'class: "org.openqa.selenium.chrome.ChromeDriver", + paramTypes: ["org.openqa.selenium.chrome.ChromeOptions"] +} external; + diff --git a/ballerina/modules/org.openqa.selenium.chrome/ChromeDriverService.bal b/ballerina/modules/org.openqa.selenium.chrome/ChromeDriverService.bal new file mode 100644 index 0000000..984ebb8 --- /dev/null +++ b/ballerina/modules/org.openqa.selenium.chrome/ChromeDriverService.bal @@ -0,0 +1,39 @@ +// This is an empty Ballerina class autogenerated to represent the `org.openqa.selenium.chrome.ChromeDriverService` Java class. +// +// If you need the implementation of this class generated, please use the following command. +// +// $ bal bindgen [(-cp|--classpath) ...] +// [(-mvn|--maven) ::] +// [(-o|--output) ] +// [--public] +// (...) +// +// E.g. $ bal bindgen org.openqa.selenium.chrome.ChromeDriverService + +import ballerina/jballerina.java; + +# Ballerina class mapping for the Java `org.openqa.selenium.chrome.ChromeDriverService` class. +@java:Binding {'class: "org.openqa.selenium.chrome.ChromeDriverService"} +public distinct class ChromeDriverService { + + *java:JObject; + + # The `handle` field that stores the reference to the `org.openqa.selenium.chrome.ChromeDriverService` object. + public handle jObj; + + # The init function of the Ballerina class mapping the `org.openqa.selenium.chrome.ChromeDriverService` Java class. + # + # + obj - The `handle` value containing the Java reference of the object. + public isolated function init(handle obj) { + self.jObj = obj; + } + + # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.chrome.ChromeDriverService` Java class. + # + # + return - The `string` form of the Java object instance. + public isolated function toString() returns string { + return java:toString(self.jObj) ?: ""; + } + +} + diff --git a/ballerina/modules/org.openqa.selenium.chrome/ChromeOptions.bal b/ballerina/modules/org.openqa.selenium.chrome/ChromeOptions.bal new file mode 100644 index 0000000..d4286fe --- /dev/null +++ b/ballerina/modules/org.openqa.selenium.chrome/ChromeOptions.bal @@ -0,0 +1,39 @@ +// This is an empty Ballerina class autogenerated to represent the `org.openqa.selenium.chrome.ChromeOptions` Java class. +// +// If you need the implementation of this class generated, please use the following command. +// +// $ bal bindgen [(-cp|--classpath) ...] +// [(-mvn|--maven) ::] +// [(-o|--output) ] +// [--public] +// (...) +// +// E.g. $ bal bindgen org.openqa.selenium.chrome.ChromeOptions + +import ballerina/jballerina.java; + +# Ballerina class mapping for the Java `org.openqa.selenium.chrome.ChromeOptions` class. +@java:Binding {'class: "org.openqa.selenium.chrome.ChromeOptions"} +public distinct class ChromeOptions { + + *java:JObject; + + # The `handle` field that stores the reference to the `org.openqa.selenium.chrome.ChromeOptions` object. + public handle jObj; + + # The init function of the Ballerina class mapping the `org.openqa.selenium.chrome.ChromeOptions` Java class. + # + # + obj - The `handle` value containing the Java reference of the object. + public isolated function init(handle obj) { + self.jObj = obj; + } + + # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.chrome.ChromeOptions` Java class. + # + # + return - The `string` form of the Java object instance. + public isolated function toString() returns string { + return java:toString(self.jObj) ?: ""; + } + +} + diff --git a/ballerina/modules/org.openqa.selenium.chromium/ChromiumDriver.bal b/ballerina/modules/org.openqa.selenium.chromium/ChromiumDriver.bal new file mode 100644 index 0000000..8716da8 --- /dev/null +++ b/ballerina/modules/org.openqa.selenium.chromium/ChromiumDriver.bal @@ -0,0 +1,1163 @@ +import selenium.java.io as javaio; +import selenium.java.lang as javalang; +import selenium.java.nio.file as javaniofile; +import selenium.java.util as javautil; +import selenium.java.util.'function as javautilfunction; +import selenium.java.util.logging as javautillogging; +import selenium.org.openqa.selenium as orgopenqaselenium; +import selenium.org.openqa.selenium.'remote as orgopenqaseleniumremote; +import selenium.org.openqa.selenium.bidi as orgopenqaseleniumbidi; +import selenium.org.openqa.selenium.devtools as orgopenqaseleniumdevtools; +import selenium.org.openqa.selenium.federatedcredentialmanagement as orgopenqaseleniumfederatedcredentialmanagement; +import selenium.org.openqa.selenium.html5 as orgopenqaseleniumhtml5; +import selenium.org.openqa.selenium.logging as orgopenqaseleniumlogging; +import selenium.org.openqa.selenium.mobile as orgopenqaseleniummobile; +import selenium.org.openqa.selenium.print as orgopenqaseleniumprint; +import selenium.org.openqa.selenium.virtualauthenticator as orgopenqaseleniumvirtualauthenticator; + +import ballerina/jballerina.java; +import ballerina/jballerina.java.arrays as jarrays; + +# Ballerina class mapping for the Java `org.openqa.selenium.chromium.ChromiumDriver` class. +@java:Binding {'class: "org.openqa.selenium.chromium.ChromiumDriver"} +public distinct class ChromiumDriver { + + *java:JObject; + *orgopenqaseleniumremote:RemoteWebDriver; + + # The `handle` field that stores the reference to the `org.openqa.selenium.chromium.ChromiumDriver` object. + public handle jObj; + + # The init function of the Ballerina class mapping the `org.openqa.selenium.chromium.ChromiumDriver` Java class. + # + # + obj - The `handle` value containing the Java reference of the object. + public isolated function init(handle obj) { + self.jObj = obj; + } + + # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.chromium.ChromiumDriver` Java class. + # + # + return - The `string` form of the Java object instance. + public isolated function toString() returns string { + return java:toString(self.jObj) ?: ""; + } + + # The function that maps to the `addVirtualAuthenticator` method of `org.openqa.selenium.chromium.ChromiumDriver`. + # + # + options - The `orgopenqaseleniumvirtualauthenticator:VirtualAuthenticatorOptions` value required to map with the Java method parameter. + # + return - The `orgopenqaseleniumvirtualauthenticator:VirtualAuthenticator` value returning from the Java mapping. + public isolated function addVirtualAuthenticator(orgopenqaseleniumvirtualauthenticator:VirtualAuthenticatorOptions options) returns orgopenqaseleniumvirtualauthenticator:VirtualAuthenticator { + handle externalObj = org_openqa_selenium_chromium_ChromiumDriver_addVirtualAuthenticator(self.jObj, options.jObj); + orgopenqaseleniumvirtualauthenticator:VirtualAuthenticator newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `close` method of `org.openqa.selenium.chromium.ChromiumDriver`. + public isolated function close() { + org_openqa_selenium_chromium_ChromiumDriver_close(self.jObj); + } + + # The function that maps to the `deleteDownloadableFiles` method of `org.openqa.selenium.chromium.ChromiumDriver`. + public isolated function deleteDownloadableFiles() { + org_openqa_selenium_chromium_ChromiumDriver_deleteDownloadableFiles(self.jObj); + } + + # The function that maps to the `deleteNetworkConditions` method of `org.openqa.selenium.chromium.ChromiumDriver`. + public isolated function deleteNetworkConditions() { + org_openqa_selenium_chromium_ChromiumDriver_deleteNetworkConditions(self.jObj); + } + + # The function that maps to the `downloadFile` method of `org.openqa.selenium.chromium.ChromiumDriver`. + # + # + fileName - The `string` value required to map with the Java method parameter. + # + targetLocation - The `javaniofile:Path` value required to map with the Java method parameter. + # + return - The `javaio:IOException` value returning from the Java mapping. + public isolated function downloadFile(string fileName, javaniofile:Path targetLocation) returns javaio:IOException? { + error|() externalObj = org_openqa_selenium_chromium_ChromiumDriver_downloadFile(self.jObj, java:fromString(fileName), targetLocation.jObj); + if (externalObj is error) { + javaio:IOException e = error javaio:IOException(javaio:IOEXCEPTION, externalObj, message = externalObj.message()); + return e; + } + } + + # The function that maps to the `equals` method of `org.openqa.selenium.chromium.ChromiumDriver`. + # + # + arg0 - The `javalang:Object` value required to map with the Java method parameter. + # + return - The `boolean` value returning from the Java mapping. + public isolated function 'equals(javalang:Object arg0) returns boolean { + return org_openqa_selenium_chromium_ChromiumDriver_equals(self.jObj, arg0.jObj); + } + + # The function that maps to the `executeAsyncScript` method of `org.openqa.selenium.chromium.ChromiumDriver`. + # + # + script - The `string` value required to map with the Java method parameter. + # + args - The `javalang:Object[]` value required to map with the Java method parameter. + # + return - The `javalang:Object` value returning from the Java mapping. + public isolated function executeAsyncScript(string script, javalang:Object[] args) returns javalang:Object|error { + handle externalObj = org_openqa_selenium_chromium_ChromiumDriver_executeAsyncScript(self.jObj, java:fromString(script), check jarrays:toHandle(args, "java.lang.Object")); + javalang:Object newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `executeCdpCommand` method of `org.openqa.selenium.chromium.ChromiumDriver`. + # + # + commandName - The `string` value required to map with the Java method parameter. + # + parameters - The `javautil:Map` value required to map with the Java method parameter. + # + return - The `javautil:Map` value returning from the Java mapping. + public isolated function executeCdpCommand(string commandName, javautil:Map parameters) returns javautil:Map { + handle externalObj = org_openqa_selenium_chromium_ChromiumDriver_executeCdpCommand(self.jObj, java:fromString(commandName), parameters.jObj); + javautil:Map newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `executeScript` method of `org.openqa.selenium.chromium.ChromiumDriver`. + # + # + 'key - The `orgopenqaselenium:ScriptKey` value required to map with the Java method parameter. + # + args - The `javalang:Object[]` value required to map with the Java method parameter. + # + return - The `javalang:Object` value returning from the Java mapping. + public isolated function executeScript(orgopenqaselenium:ScriptKey 'key, javalang:Object[] args) returns javalang:Object|error { + handle externalObj = org_openqa_selenium_chromium_ChromiumDriver_executeScript(self.jObj, 'key.jObj, check jarrays:toHandle(args, "java.lang.Object")); + javalang:Object newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `executeScript` method of `org.openqa.selenium.chromium.ChromiumDriver`. + # + # + script - The `string` value required to map with the Java method parameter. + # + args - The `javalang:Object[]` value required to map with the Java method parameter. + # + return - The `javalang:Object` value returning from the Java mapping. + public isolated function executeScript2(string script, javalang:Object[] args) returns javalang:Object|error { + handle externalObj = org_openqa_selenium_chromium_ChromiumDriver_executeScript2(self.jObj, java:fromString(script), check jarrays:toHandle(args, "java.lang.Object")); + javalang:Object newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `findElement` method of `org.openqa.selenium.chromium.ChromiumDriver`. + # + # + locator - The `orgopenqaselenium:By` value required to map with the Java method parameter. + # + return - The `orgopenqaselenium:WebElement` value returning from the Java mapping. + public isolated function findElement(orgopenqaselenium:By locator) returns orgopenqaselenium:WebElement { + handle externalObj = org_openqa_selenium_chromium_ChromiumDriver_findElement(self.jObj, locator.jObj); + orgopenqaselenium:WebElement newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `findElements` method of `org.openqa.selenium.chromium.ChromiumDriver`. + # + # + locator - The `orgopenqaselenium:By` value required to map with the Java method parameter. + # + return - The `javautil:List` value returning from the Java mapping. + public isolated function findElements(orgopenqaselenium:By locator) returns javautil:List { + handle externalObj = org_openqa_selenium_chromium_ChromiumDriver_findElements(self.jObj, locator.jObj); + javautil:List newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `findElements` method of `org.openqa.selenium.chromium.ChromiumDriver`. + # + # + context - The `orgopenqaselenium:SearchContext` value required to map with the Java method parameter. + # + findCommand - The `javautilfunction:BiFunction` value required to map with the Java method parameter. + # + locator - The `orgopenqaselenium:By` value required to map with the Java method parameter. + # + return - The `javautil:List` value returning from the Java mapping. + public isolated function findElements2(orgopenqaselenium:SearchContext context, javautilfunction:BiFunction findCommand, orgopenqaselenium:By locator) returns javautil:List { + handle externalObj = org_openqa_selenium_chromium_ChromiumDriver_findElements2(self.jObj, context.jObj, findCommand.jObj, locator.jObj); + javautil:List newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `get` method of `org.openqa.selenium.chromium.ChromiumDriver`. + # + # + url - The `string` value required to map with the Java method parameter. + public isolated function get(string url) { + org_openqa_selenium_chromium_ChromiumDriver_get(self.jObj, java:fromString(url)); + } + + # The function that maps to the `getBiDi` method of `org.openqa.selenium.chromium.ChromiumDriver`. + # + # + return - The `orgopenqaseleniumbidi:BiDi` value returning from the Java mapping. + public isolated function getBiDi() returns orgopenqaseleniumbidi:BiDi { + handle externalObj = org_openqa_selenium_chromium_ChromiumDriver_getBiDi(self.jObj); + orgopenqaseleniumbidi:BiDi newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getCapabilities` method of `org.openqa.selenium.chromium.ChromiumDriver`. + # + # + return - The `orgopenqaselenium:Capabilities` value returning from the Java mapping. + public isolated function getCapabilities() returns orgopenqaselenium:Capabilities { + handle externalObj = org_openqa_selenium_chromium_ChromiumDriver_getCapabilities(self.jObj); + orgopenqaselenium:Capabilities newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getCastIssueMessage` method of `org.openqa.selenium.chromium.ChromiumDriver`. + # + # + return - The `string` value returning from the Java mapping. + public isolated function getCastIssueMessage() returns string { + return java:toString(org_openqa_selenium_chromium_ChromiumDriver_getCastIssueMessage(self.jObj)) ?: ""; + } + + # The function that maps to the `getCastSinks` method of `org.openqa.selenium.chromium.ChromiumDriver`. + # + # + return - The `javautil:List` value returning from the Java mapping. + public isolated function getCastSinks() returns javautil:List { + handle externalObj = org_openqa_selenium_chromium_ChromiumDriver_getCastSinks(self.jObj); + javautil:List newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getClass` method of `org.openqa.selenium.chromium.ChromiumDriver`. + # + # + return - The `javalang:Class` value returning from the Java mapping. + public isolated function getClass() returns javalang:Class { + handle externalObj = org_openqa_selenium_chromium_ChromiumDriver_getClass(self.jObj); + javalang:Class newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getCommandExecutor` method of `org.openqa.selenium.chromium.ChromiumDriver`. + # + # + return - The `orgopenqaseleniumremote:CommandExecutor` value returning from the Java mapping. + public isolated function getCommandExecutor() returns orgopenqaseleniumremote:CommandExecutor { + handle externalObj = org_openqa_selenium_chromium_ChromiumDriver_getCommandExecutor(self.jObj); + orgopenqaseleniumremote:CommandExecutor newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getCurrentUrl` method of `org.openqa.selenium.chromium.ChromiumDriver`. + # + # + return - The `string` value returning from the Java mapping. + public isolated function getCurrentUrl() returns string { + return java:toString(org_openqa_selenium_chromium_ChromiumDriver_getCurrentUrl(self.jObj)) ?: ""; + } + + # The function that maps to the `getDevTools` method of `org.openqa.selenium.chromium.ChromiumDriver`. + # + # + return - The `orgopenqaseleniumdevtools:DevTools` value returning from the Java mapping. + public isolated function getDevTools() returns orgopenqaseleniumdevtools:DevTools { + handle externalObj = org_openqa_selenium_chromium_ChromiumDriver_getDevTools(self.jObj); + orgopenqaseleniumdevtools:DevTools newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getDownloadableFiles` method of `org.openqa.selenium.chromium.ChromiumDriver`. + # + # + return - The `javautil:List` value returning from the Java mapping. + public isolated function getDownloadableFiles() returns javautil:List { + handle externalObj = org_openqa_selenium_chromium_ChromiumDriver_getDownloadableFiles(self.jObj); + javautil:List newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getErrorHandler` method of `org.openqa.selenium.chromium.ChromiumDriver`. + # + # + return - The `orgopenqaseleniumremote:ErrorHandler` value returning from the Java mapping. + public isolated function getErrorHandler() returns orgopenqaseleniumremote:ErrorHandler { + handle externalObj = org_openqa_selenium_chromium_ChromiumDriver_getErrorHandler(self.jObj); + orgopenqaseleniumremote:ErrorHandler newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getFederatedCredentialManagementDialog` method of `org.openqa.selenium.chromium.ChromiumDriver`. + # + # + return - The `orgopenqaseleniumfederatedcredentialmanagement:FederatedCredentialManagementDialog` value returning from the Java mapping. + public isolated function getFederatedCredentialManagementDialog() returns orgopenqaseleniumfederatedcredentialmanagement:FederatedCredentialManagementDialog { + handle externalObj = org_openqa_selenium_chromium_ChromiumDriver_getFederatedCredentialManagementDialog(self.jObj); + orgopenqaseleniumfederatedcredentialmanagement:FederatedCredentialManagementDialog newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getFileDetector` method of `org.openqa.selenium.chromium.ChromiumDriver`. + # + # + return - The `orgopenqaseleniumremote:FileDetector` value returning from the Java mapping. + public isolated function getFileDetector() returns orgopenqaseleniumremote:FileDetector { + handle externalObj = org_openqa_selenium_chromium_ChromiumDriver_getFileDetector(self.jObj); + orgopenqaseleniumremote:FileDetector newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getLocalStorage` method of `org.openqa.selenium.chromium.ChromiumDriver`. + # + # + return - The `orgopenqaseleniumhtml5:LocalStorage` value returning from the Java mapping. + public isolated function getLocalStorage() returns orgopenqaseleniumhtml5:LocalStorage { + handle externalObj = org_openqa_selenium_chromium_ChromiumDriver_getLocalStorage(self.jObj); + orgopenqaseleniumhtml5:LocalStorage newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getNetworkConditions` method of `org.openqa.selenium.chromium.ChromiumDriver`. + # + # + return - The `ChromiumNetworkConditions` value returning from the Java mapping. + public isolated function getNetworkConditions() returns ChromiumNetworkConditions { + handle externalObj = org_openqa_selenium_chromium_ChromiumDriver_getNetworkConditions(self.jObj); + ChromiumNetworkConditions newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getNetworkConnection` method of `org.openqa.selenium.chromium.ChromiumDriver`. + # + # + return - The `orgopenqaseleniummobile:ConnectionType` value returning from the Java mapping. + public isolated function getNetworkConnection() returns orgopenqaseleniummobile:ConnectionType { + handle externalObj = org_openqa_selenium_chromium_ChromiumDriver_getNetworkConnection(self.jObj); + orgopenqaseleniummobile:ConnectionType newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getPageSource` method of `org.openqa.selenium.chromium.ChromiumDriver`. + # + # + return - The `string` value returning from the Java mapping. + public isolated function getPageSource() returns string { + return java:toString(org_openqa_selenium_chromium_ChromiumDriver_getPageSource(self.jObj)) ?: ""; + } + + # The function that maps to the `getPinnedScripts` method of `org.openqa.selenium.chromium.ChromiumDriver`. + # + # + return - The `javautil:Set` value returning from the Java mapping. + public isolated function getPinnedScripts() returns javautil:Set { + handle externalObj = org_openqa_selenium_chromium_ChromiumDriver_getPinnedScripts(self.jObj); + javautil:Set newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getScreenshotAs` method of `org.openqa.selenium.chromium.ChromiumDriver`. + # + # + outputType - The `orgopenqaselenium:OutputType` value required to map with the Java method parameter. + # + return - The `javalang:Object` value returning from the Java mapping. + public isolated function getScreenshotAs(orgopenqaselenium:OutputType outputType) returns javalang:Object { + handle externalObj = org_openqa_selenium_chromium_ChromiumDriver_getScreenshotAs(self.jObj, outputType.jObj); + javalang:Object newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getSessionId` method of `org.openqa.selenium.chromium.ChromiumDriver`. + # + # + return - The `orgopenqaseleniumremote:SessionId` value returning from the Java mapping. + public isolated function getSessionId() returns orgopenqaseleniumremote:SessionId { + handle externalObj = org_openqa_selenium_chromium_ChromiumDriver_getSessionId(self.jObj); + orgopenqaseleniumremote:SessionId newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getSessionStorage` method of `org.openqa.selenium.chromium.ChromiumDriver`. + # + # + return - The `orgopenqaseleniumhtml5:SessionStorage` value returning from the Java mapping. + public isolated function getSessionStorage() returns orgopenqaseleniumhtml5:SessionStorage { + handle externalObj = org_openqa_selenium_chromium_ChromiumDriver_getSessionStorage(self.jObj); + orgopenqaseleniumhtml5:SessionStorage newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getTitle` method of `org.openqa.selenium.chromium.ChromiumDriver`. + # + # + return - The `string` value returning from the Java mapping. + public isolated function getTitle() returns string { + return java:toString(org_openqa_selenium_chromium_ChromiumDriver_getTitle(self.jObj)) ?: ""; + } + + # The function that maps to the `getWindowHandle` method of `org.openqa.selenium.chromium.ChromiumDriver`. + # + # + return - The `string` value returning from the Java mapping. + public isolated function getWindowHandle() returns string { + return java:toString(org_openqa_selenium_chromium_ChromiumDriver_getWindowHandle(self.jObj)) ?: ""; + } + + # The function that maps to the `getWindowHandles` method of `org.openqa.selenium.chromium.ChromiumDriver`. + # + # + return - The `javautil:Set` value returning from the Java mapping. + public isolated function getWindowHandles() returns javautil:Set { + handle externalObj = org_openqa_selenium_chromium_ChromiumDriver_getWindowHandles(self.jObj); + javautil:Set newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `hashCode` method of `org.openqa.selenium.chromium.ChromiumDriver`. + # + # + return - The `int` value returning from the Java mapping. + public isolated function hashCode() returns int { + return org_openqa_selenium_chromium_ChromiumDriver_hashCode(self.jObj); + } + + # The function that maps to the `launchApp` method of `org.openqa.selenium.chromium.ChromiumDriver`. + # + # + id - The `string` value required to map with the Java method parameter. + public isolated function launchApp(string id) { + org_openqa_selenium_chromium_ChromiumDriver_launchApp(self.jObj, java:fromString(id)); + } + + # The function that maps to the `location` method of `org.openqa.selenium.chromium.ChromiumDriver`. + # + # + return - The `orgopenqaseleniumhtml5:Location` value returning from the Java mapping. + public isolated function location() returns orgopenqaseleniumhtml5:Location { + handle externalObj = org_openqa_selenium_chromium_ChromiumDriver_location(self.jObj); + orgopenqaseleniumhtml5:Location newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `manage` method of `org.openqa.selenium.chromium.ChromiumDriver`. + # + # + return - The `orgopenqaselenium:Options` value returning from the Java mapping. + public isolated function manage() returns orgopenqaselenium:Options { + handle externalObj = org_openqa_selenium_chromium_ChromiumDriver_manage(self.jObj); + orgopenqaselenium:Options newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `maybeGetBiDi` method of `org.openqa.selenium.chromium.ChromiumDriver`. + # + # + return - The `javautil:Optional` value returning from the Java mapping. + public isolated function maybeGetBiDi() returns javautil:Optional { + handle externalObj = org_openqa_selenium_chromium_ChromiumDriver_maybeGetBiDi(self.jObj); + javautil:Optional newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `maybeGetDevTools` method of `org.openqa.selenium.chromium.ChromiumDriver`. + # + # + return - The `javautil:Optional` value returning from the Java mapping. + public isolated function maybeGetDevTools() returns javautil:Optional { + handle externalObj = org_openqa_selenium_chromium_ChromiumDriver_maybeGetDevTools(self.jObj); + javautil:Optional newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `navigate` method of `org.openqa.selenium.chromium.ChromiumDriver`. + # + # + return - The `orgopenqaselenium:Navigation` value returning from the Java mapping. + public isolated function navigate() returns orgopenqaselenium:Navigation { + handle externalObj = org_openqa_selenium_chromium_ChromiumDriver_navigate(self.jObj); + orgopenqaselenium:Navigation newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `network` method of `org.openqa.selenium.chromium.ChromiumDriver`. + # + # + return - The `orgopenqaseleniumremote:Network` value returning from the Java mapping. + public isolated function network() returns orgopenqaseleniumremote:Network { + handle externalObj = org_openqa_selenium_chromium_ChromiumDriver_network(self.jObj); + orgopenqaseleniumremote:Network newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `notify` method of `org.openqa.selenium.chromium.ChromiumDriver`. + public isolated function notify() { + org_openqa_selenium_chromium_ChromiumDriver_notify(self.jObj); + } + + # The function that maps to the `notifyAll` method of `org.openqa.selenium.chromium.ChromiumDriver`. + public isolated function notifyAll() { + org_openqa_selenium_chromium_ChromiumDriver_notifyAll(self.jObj); + } + + # The function that maps to the `onLogEvent` method of `org.openqa.selenium.chromium.ChromiumDriver`. + # + # + kind - The `orgopenqaseleniumlogging:EventType` value required to map with the Java method parameter. + public isolated function onLogEvent(orgopenqaseleniumlogging:EventType kind) { + org_openqa_selenium_chromium_ChromiumDriver_onLogEvent(self.jObj, kind.jObj); + } + + # The function that maps to the `perform` method of `org.openqa.selenium.chromium.ChromiumDriver`. + # + # + actions - The `javautil:Collection` value required to map with the Java method parameter. + public isolated function perform(javautil:Collection actions) { + org_openqa_selenium_chromium_ChromiumDriver_perform(self.jObj, actions.jObj); + } + + # The function that maps to the `pin` method of `org.openqa.selenium.chromium.ChromiumDriver`. + # + # + script - The `string` value required to map with the Java method parameter. + # + return - The `orgopenqaselenium:ScriptKey` value returning from the Java mapping. + public isolated function pin(string script) returns orgopenqaselenium:ScriptKey { + handle externalObj = org_openqa_selenium_chromium_ChromiumDriver_pin(self.jObj, java:fromString(script)); + orgopenqaselenium:ScriptKey newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `print` method of `org.openqa.selenium.chromium.ChromiumDriver`. + # + # + printOptions - The `orgopenqaseleniumprint:PrintOptions` value required to map with the Java method parameter. + # + return - The `orgopenqaselenium:Pdf` value returning from the Java mapping. + public isolated function print(orgopenqaseleniumprint:PrintOptions printOptions) returns orgopenqaselenium:Pdf { + handle externalObj = org_openqa_selenium_chromium_ChromiumDriver_print(self.jObj, printOptions.jObj); + orgopenqaselenium:Pdf newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `quit` method of `org.openqa.selenium.chromium.ChromiumDriver`. + public isolated function quit() { + org_openqa_selenium_chromium_ChromiumDriver_quit(self.jObj); + } + + # The function that maps to the `register` method of `org.openqa.selenium.chromium.ChromiumDriver`. + # + # + whenThisMatches - The `javautilfunction:Predicate` value required to map with the Java method parameter. + # + useTheseCredentials - The `javautilfunction:Supplier` value required to map with the Java method parameter. + public isolated function register(javautilfunction:Predicate whenThisMatches, javautilfunction:Supplier useTheseCredentials) { + org_openqa_selenium_chromium_ChromiumDriver_register(self.jObj, whenThisMatches.jObj, useTheseCredentials.jObj); + } + + # The function that maps to the `register` method of `org.openqa.selenium.chromium.ChromiumDriver`. + # + # + alwaysUseTheseCredentials - The `javautilfunction:Supplier` value required to map with the Java method parameter. + public isolated function register2(javautilfunction:Supplier alwaysUseTheseCredentials) { + org_openqa_selenium_chromium_ChromiumDriver_register2(self.jObj, alwaysUseTheseCredentials.jObj); + } + + # The function that maps to the `removeVirtualAuthenticator` method of `org.openqa.selenium.chromium.ChromiumDriver`. + # + # + authenticator - The `orgopenqaseleniumvirtualauthenticator:VirtualAuthenticator` value required to map with the Java method parameter. + public isolated function removeVirtualAuthenticator(orgopenqaseleniumvirtualauthenticator:VirtualAuthenticator authenticator) { + org_openqa_selenium_chromium_ChromiumDriver_removeVirtualAuthenticator(self.jObj, authenticator.jObj); + } + + # The function that maps to the `requireDownloadsEnabled` method of `org.openqa.selenium.chromium.ChromiumDriver`. + # + # + capabilities - The `orgopenqaselenium:Capabilities` value required to map with the Java method parameter. + public isolated function requireDownloadsEnabled(orgopenqaselenium:Capabilities capabilities) { + org_openqa_selenium_chromium_ChromiumDriver_requireDownloadsEnabled(self.jObj, capabilities.jObj); + } + + # The function that maps to the `resetCooldown` method of `org.openqa.selenium.chromium.ChromiumDriver`. + public isolated function resetCooldown() { + org_openqa_selenium_chromium_ChromiumDriver_resetCooldown(self.jObj); + } + + # The function that maps to the `resetInputState` method of `org.openqa.selenium.chromium.ChromiumDriver`. + public isolated function resetInputState() { + org_openqa_selenium_chromium_ChromiumDriver_resetInputState(self.jObj); + } + + # The function that maps to the `script` method of `org.openqa.selenium.chromium.ChromiumDriver`. + # + # + return - The `orgopenqaseleniumremote:Script` value returning from the Java mapping. + public isolated function script() returns orgopenqaseleniumremote:Script { + handle externalObj = org_openqa_selenium_chromium_ChromiumDriver_script(self.jObj); + orgopenqaseleniumremote:Script newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `selectCastSink` method of `org.openqa.selenium.chromium.ChromiumDriver`. + # + # + deviceName - The `string` value required to map with the Java method parameter. + public isolated function selectCastSink(string deviceName) { + org_openqa_selenium_chromium_ChromiumDriver_selectCastSink(self.jObj, java:fromString(deviceName)); + } + + # The function that maps to the `setDelayEnabled` method of `org.openqa.selenium.chromium.ChromiumDriver`. + # + # + enabled - The `boolean` value required to map with the Java method parameter. + public isolated function setDelayEnabled(boolean enabled) { + org_openqa_selenium_chromium_ChromiumDriver_setDelayEnabled(self.jObj, enabled); + } + + # The function that maps to the `setErrorHandler` method of `org.openqa.selenium.chromium.ChromiumDriver`. + # + # + handler - The `orgopenqaseleniumremote:ErrorHandler` value required to map with the Java method parameter. + public isolated function setErrorHandler(orgopenqaseleniumremote:ErrorHandler handler) { + org_openqa_selenium_chromium_ChromiumDriver_setErrorHandler(self.jObj, handler.jObj); + } + + # The function that maps to the `setFileDetector` method of `org.openqa.selenium.chromium.ChromiumDriver`. + # + # + detector - The `orgopenqaseleniumremote:FileDetector` value required to map with the Java method parameter. + public isolated function setFileDetector(orgopenqaseleniumremote:FileDetector detector) { + org_openqa_selenium_chromium_ChromiumDriver_setFileDetector(self.jObj, detector.jObj); + } + + # The function that maps to the `setLocation` method of `org.openqa.selenium.chromium.ChromiumDriver`. + # + # + location - The `orgopenqaseleniumhtml5:Location` value required to map with the Java method parameter. + public isolated function setLocation(orgopenqaseleniumhtml5:Location location) { + org_openqa_selenium_chromium_ChromiumDriver_setLocation(self.jObj, location.jObj); + } + + # The function that maps to the `setLogLevel` method of `org.openqa.selenium.chromium.ChromiumDriver`. + # + # + level - The `javautillogging:Level` value required to map with the Java method parameter. + public isolated function setLogLevel(javautillogging:Level level) { + org_openqa_selenium_chromium_ChromiumDriver_setLogLevel(self.jObj, level.jObj); + } + + # The function that maps to the `setNetworkConditions` method of `org.openqa.selenium.chromium.ChromiumDriver`. + # + # + networkConditions - The `ChromiumNetworkConditions` value required to map with the Java method parameter. + public isolated function setNetworkConditions(ChromiumNetworkConditions networkConditions) { + org_openqa_selenium_chromium_ChromiumDriver_setNetworkConditions(self.jObj, networkConditions.jObj); + } + + # The function that maps to the `setNetworkConnection` method of `org.openqa.selenium.chromium.ChromiumDriver`. + # + # + 'type - The `orgopenqaseleniummobile:ConnectionType` value required to map with the Java method parameter. + # + return - The `orgopenqaseleniummobile:ConnectionType` value returning from the Java mapping. + public isolated function setNetworkConnection(orgopenqaseleniummobile:ConnectionType 'type) returns orgopenqaseleniummobile:ConnectionType { + handle externalObj = org_openqa_selenium_chromium_ChromiumDriver_setNetworkConnection(self.jObj, 'type.jObj); + orgopenqaseleniummobile:ConnectionType newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `setPermission` method of `org.openqa.selenium.chromium.ChromiumDriver`. + # + # + name - The `string` value required to map with the Java method parameter. + # + value - The `string` value required to map with the Java method parameter. + public isolated function setPermission(string name, string value) { + org_openqa_selenium_chromium_ChromiumDriver_setPermission(self.jObj, java:fromString(name), java:fromString(value)); + } + + # The function that maps to the `startDesktopMirroring` method of `org.openqa.selenium.chromium.ChromiumDriver`. + # + # + deviceName - The `string` value required to map with the Java method parameter. + public isolated function startDesktopMirroring(string deviceName) { + org_openqa_selenium_chromium_ChromiumDriver_startDesktopMirroring(self.jObj, java:fromString(deviceName)); + } + + # The function that maps to the `startTabMirroring` method of `org.openqa.selenium.chromium.ChromiumDriver`. + # + # + deviceName - The `string` value required to map with the Java method parameter. + public isolated function startTabMirroring(string deviceName) { + org_openqa_selenium_chromium_ChromiumDriver_startTabMirroring(self.jObj, java:fromString(deviceName)); + } + + # The function that maps to the `stopCasting` method of `org.openqa.selenium.chromium.ChromiumDriver`. + # + # + deviceName - The `string` value required to map with the Java method parameter. + public isolated function stopCasting(string deviceName) { + org_openqa_selenium_chromium_ChromiumDriver_stopCasting(self.jObj, java:fromString(deviceName)); + } + + # The function that maps to the `switchTo` method of `org.openqa.selenium.chromium.ChromiumDriver`. + # + # + return - The `orgopenqaselenium:TargetLocator` value returning from the Java mapping. + public isolated function switchTo() returns orgopenqaselenium:TargetLocator { + handle externalObj = org_openqa_selenium_chromium_ChromiumDriver_switchTo(self.jObj); + orgopenqaselenium:TargetLocator newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `unpin` method of `org.openqa.selenium.chromium.ChromiumDriver`. + # + # + 'key - The `orgopenqaselenium:ScriptKey` value required to map with the Java method parameter. + public isolated function unpin(orgopenqaselenium:ScriptKey 'key) { + org_openqa_selenium_chromium_ChromiumDriver_unpin(self.jObj, 'key.jObj); + } + + # The function that maps to the `wait` method of `org.openqa.selenium.chromium.ChromiumDriver`. + # + # + return - The `javalang:InterruptedException` value returning from the Java mapping. + public isolated function 'wait() returns javalang:InterruptedException? { + error|() externalObj = org_openqa_selenium_chromium_ChromiumDriver_wait(self.jObj); + if (externalObj is error) { + javalang:InterruptedException e = error javalang:InterruptedException(javalang:INTERRUPTEDEXCEPTION, externalObj, message = externalObj.message()); + return e; + } + } + + # The function that maps to the `wait` method of `org.openqa.selenium.chromium.ChromiumDriver`. + # + # + arg0 - The `int` value required to map with the Java method parameter. + # + return - The `javalang:InterruptedException` value returning from the Java mapping. + public isolated function wait2(int arg0) returns javalang:InterruptedException? { + error|() externalObj = org_openqa_selenium_chromium_ChromiumDriver_wait2(self.jObj, arg0); + if (externalObj is error) { + javalang:InterruptedException e = error javalang:InterruptedException(javalang:INTERRUPTEDEXCEPTION, externalObj, message = externalObj.message()); + return e; + } + } + + # The function that maps to the `wait` method of `org.openqa.selenium.chromium.ChromiumDriver`. + # + # + arg0 - The `int` value required to map with the Java method parameter. + # + arg1 - The `int` value required to map with the Java method parameter. + # + return - The `javalang:InterruptedException` value returning from the Java mapping. + public isolated function wait3(int arg0, int arg1) returns javalang:InterruptedException? { + error|() externalObj = org_openqa_selenium_chromium_ChromiumDriver_wait3(self.jObj, arg0, arg1); + if (externalObj is error) { + javalang:InterruptedException e = error javalang:InterruptedException(javalang:INTERRUPTEDEXCEPTION, externalObj, message = externalObj.message()); + return e; + } + } + +} + +# The function that maps to the `builder` method of `org.openqa.selenium.chromium.ChromiumDriver`. +# +# + return - The `orgopenqaseleniumremote:RemoteWebDriverBuilder` value returning from the Java mapping. +public isolated function ChromiumDriver_builder() returns orgopenqaseleniumremote:RemoteWebDriverBuilder { + handle externalObj = org_openqa_selenium_chromium_ChromiumDriver_builder(); + orgopenqaseleniumremote:RemoteWebDriverBuilder newObj = new (externalObj); + return newObj; +} + +# The function that retrieves the value of the public field `IS_CHROMIUM_BROWSER`. +# +# + return - The `Predicate` value of the field. +public isolated function ChromiumDriver_getIS_CHROMIUM_BROWSER() returns javautilfunction:Predicate { + handle externalObj = org_openqa_selenium_chromium_ChromiumDriver_getIS_CHROMIUM_BROWSER(); + javautilfunction:Predicate newObj = new (externalObj); + return newObj; +} + +isolated function org_openqa_selenium_chromium_ChromiumDriver_addVirtualAuthenticator(handle receiver, handle options) returns handle = @java:Method { + name: "addVirtualAuthenticator", + 'class: "org.openqa.selenium.chromium.ChromiumDriver", + paramTypes: ["org.openqa.selenium.virtualauthenticator.VirtualAuthenticatorOptions"] +} external; + +isolated function org_openqa_selenium_chromium_ChromiumDriver_builder() returns handle = @java:Method { + name: "builder", + 'class: "org.openqa.selenium.chromium.ChromiumDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_chromium_ChromiumDriver_close(handle receiver) = @java:Method { + name: "close", + 'class: "org.openqa.selenium.chromium.ChromiumDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_chromium_ChromiumDriver_deleteDownloadableFiles(handle receiver) = @java:Method { + name: "deleteDownloadableFiles", + 'class: "org.openqa.selenium.chromium.ChromiumDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_chromium_ChromiumDriver_deleteNetworkConditions(handle receiver) = @java:Method { + name: "deleteNetworkConditions", + 'class: "org.openqa.selenium.chromium.ChromiumDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_chromium_ChromiumDriver_downloadFile(handle receiver, handle fileName, handle targetLocation) returns error? = @java:Method { + name: "downloadFile", + 'class: "org.openqa.selenium.chromium.ChromiumDriver", + paramTypes: ["java.lang.String", "java.nio.file.Path"] +} external; + +isolated function org_openqa_selenium_chromium_ChromiumDriver_equals(handle receiver, handle arg0) returns boolean = @java:Method { + name: "equals", + 'class: "org.openqa.selenium.chromium.ChromiumDriver", + paramTypes: ["java.lang.Object"] +} external; + +isolated function org_openqa_selenium_chromium_ChromiumDriver_executeAsyncScript(handle receiver, handle script, handle args) returns handle = @java:Method { + name: "executeAsyncScript", + 'class: "org.openqa.selenium.chromium.ChromiumDriver", + paramTypes: ["java.lang.String", "[Ljava.lang.Object;"] +} external; + +isolated function org_openqa_selenium_chromium_ChromiumDriver_executeCdpCommand(handle receiver, handle commandName, handle parameters) returns handle = @java:Method { + name: "executeCdpCommand", + 'class: "org.openqa.selenium.chromium.ChromiumDriver", + paramTypes: ["java.lang.String", "java.util.Map"] +} external; + +isolated function org_openqa_selenium_chromium_ChromiumDriver_executeScript(handle receiver, handle 'key, handle args) returns handle = @java:Method { + name: "executeScript", + 'class: "org.openqa.selenium.chromium.ChromiumDriver", + paramTypes: ["org.openqa.selenium.ScriptKey", "[Ljava.lang.Object;"] +} external; + +isolated function org_openqa_selenium_chromium_ChromiumDriver_executeScript2(handle receiver, handle script, handle args) returns handle = @java:Method { + name: "executeScript", + 'class: "org.openqa.selenium.chromium.ChromiumDriver", + paramTypes: ["java.lang.String", "[Ljava.lang.Object;"] +} external; + +isolated function org_openqa_selenium_chromium_ChromiumDriver_findElement(handle receiver, handle locator) returns handle = @java:Method { + name: "findElement", + 'class: "org.openqa.selenium.chromium.ChromiumDriver", + paramTypes: ["org.openqa.selenium.By"] +} external; + +isolated function org_openqa_selenium_chromium_ChromiumDriver_findElements(handle receiver, handle locator) returns handle = @java:Method { + name: "findElements", + 'class: "org.openqa.selenium.chromium.ChromiumDriver", + paramTypes: ["org.openqa.selenium.By"] +} external; + +isolated function org_openqa_selenium_chromium_ChromiumDriver_findElements2(handle receiver, handle context, handle findCommand, handle locator) returns handle = @java:Method { + name: "findElements", + 'class: "org.openqa.selenium.chromium.ChromiumDriver", + paramTypes: ["org.openqa.selenium.SearchContext", "java.util.function.BiFunction", "org.openqa.selenium.By"] +} external; + +isolated function org_openqa_selenium_chromium_ChromiumDriver_get(handle receiver, handle url) = @java:Method { + name: "get", + 'class: "org.openqa.selenium.chromium.ChromiumDriver", + paramTypes: ["java.lang.String"] +} external; + +isolated function org_openqa_selenium_chromium_ChromiumDriver_getBiDi(handle receiver) returns handle = @java:Method { + name: "getBiDi", + 'class: "org.openqa.selenium.chromium.ChromiumDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_chromium_ChromiumDriver_getCapabilities(handle receiver) returns handle = @java:Method { + name: "getCapabilities", + 'class: "org.openqa.selenium.chromium.ChromiumDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_chromium_ChromiumDriver_getCastIssueMessage(handle receiver) returns handle = @java:Method { + name: "getCastIssueMessage", + 'class: "org.openqa.selenium.chromium.ChromiumDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_chromium_ChromiumDriver_getCastSinks(handle receiver) returns handle = @java:Method { + name: "getCastSinks", + 'class: "org.openqa.selenium.chromium.ChromiumDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_chromium_ChromiumDriver_getClass(handle receiver) returns handle = @java:Method { + name: "getClass", + 'class: "org.openqa.selenium.chromium.ChromiumDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_chromium_ChromiumDriver_getCommandExecutor(handle receiver) returns handle = @java:Method { + name: "getCommandExecutor", + 'class: "org.openqa.selenium.chromium.ChromiumDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_chromium_ChromiumDriver_getCurrentUrl(handle receiver) returns handle = @java:Method { + name: "getCurrentUrl", + 'class: "org.openqa.selenium.chromium.ChromiumDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_chromium_ChromiumDriver_getDevTools(handle receiver) returns handle = @java:Method { + name: "getDevTools", + 'class: "org.openqa.selenium.chromium.ChromiumDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_chromium_ChromiumDriver_getDownloadableFiles(handle receiver) returns handle = @java:Method { + name: "getDownloadableFiles", + 'class: "org.openqa.selenium.chromium.ChromiumDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_chromium_ChromiumDriver_getErrorHandler(handle receiver) returns handle = @java:Method { + name: "getErrorHandler", + 'class: "org.openqa.selenium.chromium.ChromiumDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_chromium_ChromiumDriver_getFederatedCredentialManagementDialog(handle receiver) returns handle = @java:Method { + name: "getFederatedCredentialManagementDialog", + 'class: "org.openqa.selenium.chromium.ChromiumDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_chromium_ChromiumDriver_getFileDetector(handle receiver) returns handle = @java:Method { + name: "getFileDetector", + 'class: "org.openqa.selenium.chromium.ChromiumDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_chromium_ChromiumDriver_getLocalStorage(handle receiver) returns handle = @java:Method { + name: "getLocalStorage", + 'class: "org.openqa.selenium.chromium.ChromiumDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_chromium_ChromiumDriver_getNetworkConditions(handle receiver) returns handle = @java:Method { + name: "getNetworkConditions", + 'class: "org.openqa.selenium.chromium.ChromiumDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_chromium_ChromiumDriver_getNetworkConnection(handle receiver) returns handle = @java:Method { + name: "getNetworkConnection", + 'class: "org.openqa.selenium.chromium.ChromiumDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_chromium_ChromiumDriver_getPageSource(handle receiver) returns handle = @java:Method { + name: "getPageSource", + 'class: "org.openqa.selenium.chromium.ChromiumDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_chromium_ChromiumDriver_getPinnedScripts(handle receiver) returns handle = @java:Method { + name: "getPinnedScripts", + 'class: "org.openqa.selenium.chromium.ChromiumDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_chromium_ChromiumDriver_getScreenshotAs(handle receiver, handle outputType) returns handle = @java:Method { + name: "getScreenshotAs", + 'class: "org.openqa.selenium.chromium.ChromiumDriver", + paramTypes: ["org.openqa.selenium.OutputType"] +} external; + +isolated function org_openqa_selenium_chromium_ChromiumDriver_getSessionId(handle receiver) returns handle = @java:Method { + name: "getSessionId", + 'class: "org.openqa.selenium.chromium.ChromiumDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_chromium_ChromiumDriver_getSessionStorage(handle receiver) returns handle = @java:Method { + name: "getSessionStorage", + 'class: "org.openqa.selenium.chromium.ChromiumDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_chromium_ChromiumDriver_getTitle(handle receiver) returns handle = @java:Method { + name: "getTitle", + 'class: "org.openqa.selenium.chromium.ChromiumDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_chromium_ChromiumDriver_getWindowHandle(handle receiver) returns handle = @java:Method { + name: "getWindowHandle", + 'class: "org.openqa.selenium.chromium.ChromiumDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_chromium_ChromiumDriver_getWindowHandles(handle receiver) returns handle = @java:Method { + name: "getWindowHandles", + 'class: "org.openqa.selenium.chromium.ChromiumDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_chromium_ChromiumDriver_hashCode(handle receiver) returns int = @java:Method { + name: "hashCode", + 'class: "org.openqa.selenium.chromium.ChromiumDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_chromium_ChromiumDriver_launchApp(handle receiver, handle id) = @java:Method { + name: "launchApp", + 'class: "org.openqa.selenium.chromium.ChromiumDriver", + paramTypes: ["java.lang.String"] +} external; + +isolated function org_openqa_selenium_chromium_ChromiumDriver_location(handle receiver) returns handle = @java:Method { + name: "location", + 'class: "org.openqa.selenium.chromium.ChromiumDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_chromium_ChromiumDriver_manage(handle receiver) returns handle = @java:Method { + name: "manage", + 'class: "org.openqa.selenium.chromium.ChromiumDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_chromium_ChromiumDriver_maybeGetBiDi(handle receiver) returns handle = @java:Method { + name: "maybeGetBiDi", + 'class: "org.openqa.selenium.chromium.ChromiumDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_chromium_ChromiumDriver_maybeGetDevTools(handle receiver) returns handle = @java:Method { + name: "maybeGetDevTools", + 'class: "org.openqa.selenium.chromium.ChromiumDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_chromium_ChromiumDriver_navigate(handle receiver) returns handle = @java:Method { + name: "navigate", + 'class: "org.openqa.selenium.chromium.ChromiumDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_chromium_ChromiumDriver_network(handle receiver) returns handle = @java:Method { + name: "network", + 'class: "org.openqa.selenium.chromium.ChromiumDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_chromium_ChromiumDriver_notify(handle receiver) = @java:Method { + name: "notify", + 'class: "org.openqa.selenium.chromium.ChromiumDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_chromium_ChromiumDriver_notifyAll(handle receiver) = @java:Method { + name: "notifyAll", + 'class: "org.openqa.selenium.chromium.ChromiumDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_chromium_ChromiumDriver_onLogEvent(handle receiver, handle kind) = @java:Method { + name: "onLogEvent", + 'class: "org.openqa.selenium.chromium.ChromiumDriver", + paramTypes: ["org.openqa.selenium.logging.EventType"] +} external; + +isolated function org_openqa_selenium_chromium_ChromiumDriver_perform(handle receiver, handle actions) = @java:Method { + name: "perform", + 'class: "org.openqa.selenium.chromium.ChromiumDriver", + paramTypes: ["java.util.Collection"] +} external; + +isolated function org_openqa_selenium_chromium_ChromiumDriver_pin(handle receiver, handle script) returns handle = @java:Method { + name: "pin", + 'class: "org.openqa.selenium.chromium.ChromiumDriver", + paramTypes: ["java.lang.String"] +} external; + +isolated function org_openqa_selenium_chromium_ChromiumDriver_print(handle receiver, handle printOptions) returns handle = @java:Method { + name: "print", + 'class: "org.openqa.selenium.chromium.ChromiumDriver", + paramTypes: ["org.openqa.selenium.print.PrintOptions"] +} external; + +isolated function org_openqa_selenium_chromium_ChromiumDriver_quit(handle receiver) = @java:Method { + name: "quit", + 'class: "org.openqa.selenium.chromium.ChromiumDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_chromium_ChromiumDriver_register(handle receiver, handle whenThisMatches, handle useTheseCredentials) = @java:Method { + name: "register", + 'class: "org.openqa.selenium.chromium.ChromiumDriver", + paramTypes: ["java.util.function.Predicate", "java.util.function.Supplier"] +} external; + +isolated function org_openqa_selenium_chromium_ChromiumDriver_register2(handle receiver, handle alwaysUseTheseCredentials) = @java:Method { + name: "register", + 'class: "org.openqa.selenium.chromium.ChromiumDriver", + paramTypes: ["java.util.function.Supplier"] +} external; + +isolated function org_openqa_selenium_chromium_ChromiumDriver_removeVirtualAuthenticator(handle receiver, handle authenticator) = @java:Method { + name: "removeVirtualAuthenticator", + 'class: "org.openqa.selenium.chromium.ChromiumDriver", + paramTypes: ["org.openqa.selenium.virtualauthenticator.VirtualAuthenticator"] +} external; + +isolated function org_openqa_selenium_chromium_ChromiumDriver_requireDownloadsEnabled(handle receiver, handle capabilities) = @java:Method { + name: "requireDownloadsEnabled", + 'class: "org.openqa.selenium.chromium.ChromiumDriver", + paramTypes: ["org.openqa.selenium.Capabilities"] +} external; + +isolated function org_openqa_selenium_chromium_ChromiumDriver_resetCooldown(handle receiver) = @java:Method { + name: "resetCooldown", + 'class: "org.openqa.selenium.chromium.ChromiumDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_chromium_ChromiumDriver_resetInputState(handle receiver) = @java:Method { + name: "resetInputState", + 'class: "org.openqa.selenium.chromium.ChromiumDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_chromium_ChromiumDriver_script(handle receiver) returns handle = @java:Method { + name: "script", + 'class: "org.openqa.selenium.chromium.ChromiumDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_chromium_ChromiumDriver_selectCastSink(handle receiver, handle deviceName) = @java:Method { + name: "selectCastSink", + 'class: "org.openqa.selenium.chromium.ChromiumDriver", + paramTypes: ["java.lang.String"] +} external; + +isolated function org_openqa_selenium_chromium_ChromiumDriver_setDelayEnabled(handle receiver, boolean enabled) = @java:Method { + name: "setDelayEnabled", + 'class: "org.openqa.selenium.chromium.ChromiumDriver", + paramTypes: ["boolean"] +} external; + +isolated function org_openqa_selenium_chromium_ChromiumDriver_setErrorHandler(handle receiver, handle handler) = @java:Method { + name: "setErrorHandler", + 'class: "org.openqa.selenium.chromium.ChromiumDriver", + paramTypes: ["org.openqa.selenium.remote.ErrorHandler"] +} external; + +isolated function org_openqa_selenium_chromium_ChromiumDriver_setFileDetector(handle receiver, handle detector) = @java:Method { + name: "setFileDetector", + 'class: "org.openqa.selenium.chromium.ChromiumDriver", + paramTypes: ["org.openqa.selenium.remote.FileDetector"] +} external; + +isolated function org_openqa_selenium_chromium_ChromiumDriver_setLocation(handle receiver, handle location) = @java:Method { + name: "setLocation", + 'class: "org.openqa.selenium.chromium.ChromiumDriver", + paramTypes: ["org.openqa.selenium.html5.Location"] +} external; + +isolated function org_openqa_selenium_chromium_ChromiumDriver_setLogLevel(handle receiver, handle level) = @java:Method { + name: "setLogLevel", + 'class: "org.openqa.selenium.chromium.ChromiumDriver", + paramTypes: ["java.util.logging.Level"] +} external; + +isolated function org_openqa_selenium_chromium_ChromiumDriver_setNetworkConditions(handle receiver, handle networkConditions) = @java:Method { + name: "setNetworkConditions", + 'class: "org.openqa.selenium.chromium.ChromiumDriver", + paramTypes: ["org.openqa.selenium.chromium.ChromiumNetworkConditions"] +} external; + +isolated function org_openqa_selenium_chromium_ChromiumDriver_setNetworkConnection(handle receiver, handle 'type) returns handle = @java:Method { + name: "setNetworkConnection", + 'class: "org.openqa.selenium.chromium.ChromiumDriver", + paramTypes: ["org.openqa.selenium.mobile.NetworkConnection$ConnectionType"] +} external; + +isolated function org_openqa_selenium_chromium_ChromiumDriver_setPermission(handle receiver, handle name, handle value) = @java:Method { + name: "setPermission", + 'class: "org.openqa.selenium.chromium.ChromiumDriver", + paramTypes: ["java.lang.String", "java.lang.String"] +} external; + +isolated function org_openqa_selenium_chromium_ChromiumDriver_startDesktopMirroring(handle receiver, handle deviceName) = @java:Method { + name: "startDesktopMirroring", + 'class: "org.openqa.selenium.chromium.ChromiumDriver", + paramTypes: ["java.lang.String"] +} external; + +isolated function org_openqa_selenium_chromium_ChromiumDriver_startTabMirroring(handle receiver, handle deviceName) = @java:Method { + name: "startTabMirroring", + 'class: "org.openqa.selenium.chromium.ChromiumDriver", + paramTypes: ["java.lang.String"] +} external; + +isolated function org_openqa_selenium_chromium_ChromiumDriver_stopCasting(handle receiver, handle deviceName) = @java:Method { + name: "stopCasting", + 'class: "org.openqa.selenium.chromium.ChromiumDriver", + paramTypes: ["java.lang.String"] +} external; + +isolated function org_openqa_selenium_chromium_ChromiumDriver_switchTo(handle receiver) returns handle = @java:Method { + name: "switchTo", + 'class: "org.openqa.selenium.chromium.ChromiumDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_chromium_ChromiumDriver_unpin(handle receiver, handle 'key) = @java:Method { + name: "unpin", + 'class: "org.openqa.selenium.chromium.ChromiumDriver", + paramTypes: ["org.openqa.selenium.ScriptKey"] +} external; + +isolated function org_openqa_selenium_chromium_ChromiumDriver_wait(handle receiver) returns error? = @java:Method { + name: "wait", + 'class: "org.openqa.selenium.chromium.ChromiumDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_chromium_ChromiumDriver_wait2(handle receiver, int arg0) returns error? = @java:Method { + name: "wait", + 'class: "org.openqa.selenium.chromium.ChromiumDriver", + paramTypes: ["long"] +} external; + +isolated function org_openqa_selenium_chromium_ChromiumDriver_wait3(handle receiver, int arg0, int arg1) returns error? = @java:Method { + name: "wait", + 'class: "org.openqa.selenium.chromium.ChromiumDriver", + paramTypes: ["long", "int"] +} external; + +isolated function org_openqa_selenium_chromium_ChromiumDriver_getIS_CHROMIUM_BROWSER() returns handle = @java:FieldGet { + name: "IS_CHROMIUM_BROWSER", + 'class: "org.openqa.selenium.chromium.ChromiumDriver" +} external; + diff --git a/ballerina/modules/org.openqa.selenium.chromium/ChromiumNetworkConditions.bal b/ballerina/modules/org.openqa.selenium.chromium/ChromiumNetworkConditions.bal new file mode 100644 index 0000000..7d423be --- /dev/null +++ b/ballerina/modules/org.openqa.selenium.chromium/ChromiumNetworkConditions.bal @@ -0,0 +1,39 @@ +// This is an empty Ballerina class autogenerated to represent the `org.openqa.selenium.chromium.ChromiumNetworkConditions` Java class. +// +// If you need the implementation of this class generated, please use the following command. +// +// $ bal bindgen [(-cp|--classpath) ...] +// [(-mvn|--maven) ::] +// [(-o|--output) ] +// [--public] +// (...) +// +// E.g. $ bal bindgen org.openqa.selenium.chromium.ChromiumNetworkConditions + +import ballerina/jballerina.java; + +# Ballerina class mapping for the Java `org.openqa.selenium.chromium.ChromiumNetworkConditions` class. +@java:Binding {'class: "org.openqa.selenium.chromium.ChromiumNetworkConditions"} +public distinct class ChromiumNetworkConditions { + + *java:JObject; + + # The `handle` field that stores the reference to the `org.openqa.selenium.chromium.ChromiumNetworkConditions` object. + public handle jObj; + + # The init function of the Ballerina class mapping the `org.openqa.selenium.chromium.ChromiumNetworkConditions` Java class. + # + # + obj - The `handle` value containing the Java reference of the object. + public isolated function init(handle obj) { + self.jObj = obj; + } + + # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.chromium.ChromiumNetworkConditions` Java class. + # + # + return - The `string` form of the Java object instance. + public isolated function toString() returns string { + return java:toString(self.jObj) ?: ""; + } + +} + diff --git a/ballerina/modules/org.openqa.selenium.devtools/DevTools.bal b/ballerina/modules/org.openqa.selenium.devtools/DevTools.bal new file mode 100644 index 0000000..077c69e --- /dev/null +++ b/ballerina/modules/org.openqa.selenium.devtools/DevTools.bal @@ -0,0 +1,39 @@ +// This is an empty Ballerina class autogenerated to represent the `org.openqa.selenium.devtools.DevTools` Java class. +// +// If you need the implementation of this class generated, please use the following command. +// +// $ bal bindgen [(-cp|--classpath) ...] +// [(-mvn|--maven) ::] +// [(-o|--output) ] +// [--public] +// (...) +// +// E.g. $ bal bindgen org.openqa.selenium.devtools.DevTools + +import ballerina/jballerina.java; + +# Ballerina class mapping for the Java `org.openqa.selenium.devtools.DevTools` class. +@java:Binding {'class: "org.openqa.selenium.devtools.DevTools"} +public distinct class DevTools { + + *java:JObject; + + # The `handle` field that stores the reference to the `org.openqa.selenium.devtools.DevTools` object. + public handle jObj; + + # The init function of the Ballerina class mapping the `org.openqa.selenium.devtools.DevTools` Java class. + # + # + obj - The `handle` value containing the Java reference of the object. + public isolated function init(handle obj) { + self.jObj = obj; + } + + # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.devtools.DevTools` Java class. + # + # + return - The `string` form of the Java object instance. + public isolated function toString() returns string { + return java:toString(self.jObj) ?: ""; + } + +} + diff --git a/ballerina/modules/org.openqa.selenium.edge/EdgeDriver.bal b/ballerina/modules/org.openqa.selenium.edge/EdgeDriver.bal new file mode 100644 index 0000000..06c48ec --- /dev/null +++ b/ballerina/modules/org.openqa.selenium.edge/EdgeDriver.bal @@ -0,0 +1,1242 @@ +import selenium.java.io as javaio; +import selenium.java.lang as javalang; +import selenium.java.nio.file as javaniofile; +import selenium.java.util as javautil; +import selenium.java.util.'function as javautilfunction; +import selenium.java.util.logging as javautillogging; +import selenium.org.openqa.selenium as orgopenqaselenium; +import selenium.org.openqa.selenium.'remote as orgopenqaseleniumremote; +import selenium.org.openqa.selenium.'remote.http as orgopenqaseleniumremotehttp; +import selenium.org.openqa.selenium.bidi as orgopenqaseleniumbidi; +import selenium.org.openqa.selenium.chromium as orgopenqaseleniumchromium; +import selenium.org.openqa.selenium.devtools as orgopenqaseleniumdevtools; +import selenium.org.openqa.selenium.federatedcredentialmanagement as orgopenqaseleniumfederatedcredentialmanagement; +import selenium.org.openqa.selenium.html5 as orgopenqaseleniumhtml5; +import selenium.org.openqa.selenium.logging as orgopenqaseleniumlogging; +import selenium.org.openqa.selenium.mobile as orgopenqaseleniummobile; +import selenium.org.openqa.selenium.print as orgopenqaseleniumprint; +import selenium.org.openqa.selenium.virtualauthenticator as orgopenqaseleniumvirtualauthenticator; + +import ballerina/jballerina.java; +import ballerina/jballerina.java.arrays as jarrays; + +# Ballerina class mapping for the Java `org.openqa.selenium.edge.EdgeDriver` class. +@java:Binding {'class: "org.openqa.selenium.edge.EdgeDriver"} +public distinct class EdgeDriver { + + *java:JObject; + *orgopenqaseleniumchromium:ChromiumDriver; + + # The `handle` field that stores the reference to the `org.openqa.selenium.edge.EdgeDriver` object. + public handle jObj; + + # The init function of the Ballerina class mapping the `org.openqa.selenium.edge.EdgeDriver` Java class. + # + # + obj - The `handle` value containing the Java reference of the object. + public isolated function init(handle obj) { + self.jObj = obj; + } + + # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.edge.EdgeDriver` Java class. + # + # + return - The `string` form of the Java object instance. + public isolated function toString() returns string { + return java:toString(self.jObj) ?: ""; + } + + # The function that maps to the `addVirtualAuthenticator` method of `org.openqa.selenium.edge.EdgeDriver`. + # + # + options - The `orgopenqaseleniumvirtualauthenticator:VirtualAuthenticatorOptions` value required to map with the Java method parameter. + # + return - The `orgopenqaseleniumvirtualauthenticator:VirtualAuthenticator` value returning from the Java mapping. + public isolated function addVirtualAuthenticator(orgopenqaseleniumvirtualauthenticator:VirtualAuthenticatorOptions options) returns orgopenqaseleniumvirtualauthenticator:VirtualAuthenticator { + handle externalObj = org_openqa_selenium_edge_EdgeDriver_addVirtualAuthenticator(self.jObj, options.jObj); + orgopenqaseleniumvirtualauthenticator:VirtualAuthenticator newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `close` method of `org.openqa.selenium.edge.EdgeDriver`. + public isolated function close() { + org_openqa_selenium_edge_EdgeDriver_close(self.jObj); + } + + # The function that maps to the `deleteDownloadableFiles` method of `org.openqa.selenium.edge.EdgeDriver`. + public isolated function deleteDownloadableFiles() { + org_openqa_selenium_edge_EdgeDriver_deleteDownloadableFiles(self.jObj); + } + + # The function that maps to the `deleteNetworkConditions` method of `org.openqa.selenium.edge.EdgeDriver`. + public isolated function deleteNetworkConditions() { + org_openqa_selenium_edge_EdgeDriver_deleteNetworkConditions(self.jObj); + } + + # The function that maps to the `downloadFile` method of `org.openqa.selenium.edge.EdgeDriver`. + # + # + fileName - The `string` value required to map with the Java method parameter. + # + targetLocation - The `javaniofile:Path` value required to map with the Java method parameter. + # + return - The `javaio:IOException` value returning from the Java mapping. + public isolated function downloadFile(string fileName, javaniofile:Path targetLocation) returns javaio:IOException? { + error|() externalObj = org_openqa_selenium_edge_EdgeDriver_downloadFile(self.jObj, java:fromString(fileName), targetLocation.jObj); + if (externalObj is error) { + javaio:IOException e = error javaio:IOException(javaio:IOEXCEPTION, externalObj, message = externalObj.message()); + return e; + } + } + + # The function that maps to the `equals` method of `org.openqa.selenium.edge.EdgeDriver`. + # + # + arg0 - The `javalang:Object` value required to map with the Java method parameter. + # + return - The `boolean` value returning from the Java mapping. + public isolated function 'equals(javalang:Object arg0) returns boolean { + return org_openqa_selenium_edge_EdgeDriver_equals(self.jObj, arg0.jObj); + } + + # The function that maps to the `executeAsyncScript` method of `org.openqa.selenium.edge.EdgeDriver`. + # + # + script - The `string` value required to map with the Java method parameter. + # + args - The `javalang:Object[]` value required to map with the Java method parameter. + # + return - The `javalang:Object` value returning from the Java mapping. + public isolated function executeAsyncScript(string script, javalang:Object[] args) returns javalang:Object|error { + handle externalObj = org_openqa_selenium_edge_EdgeDriver_executeAsyncScript(self.jObj, java:fromString(script), check jarrays:toHandle(args, "java.lang.Object")); + javalang:Object newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `executeCdpCommand` method of `org.openqa.selenium.edge.EdgeDriver`. + # + # + commandName - The `string` value required to map with the Java method parameter. + # + parameters - The `javautil:Map` value required to map with the Java method parameter. + # + return - The `javautil:Map` value returning from the Java mapping. + public isolated function executeCdpCommand(string commandName, javautil:Map parameters) returns javautil:Map { + handle externalObj = org_openqa_selenium_edge_EdgeDriver_executeCdpCommand(self.jObj, java:fromString(commandName), parameters.jObj); + javautil:Map newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `executeScript` method of `org.openqa.selenium.edge.EdgeDriver`. + # + # + 'key - The `orgopenqaselenium:ScriptKey` value required to map with the Java method parameter. + # + args - The `javalang:Object[]` value required to map with the Java method parameter. + # + return - The `javalang:Object` value returning from the Java mapping. + public isolated function executeScript(orgopenqaselenium:ScriptKey 'key, javalang:Object[] args) returns javalang:Object|error { + handle externalObj = org_openqa_selenium_edge_EdgeDriver_executeScript(self.jObj, 'key.jObj, check jarrays:toHandle(args, "java.lang.Object")); + javalang:Object newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `executeScript` method of `org.openqa.selenium.edge.EdgeDriver`. + # + # + script - The `string` value required to map with the Java method parameter. + # + args - The `javalang:Object[]` value required to map with the Java method parameter. + # + return - The `javalang:Object` value returning from the Java mapping. + public isolated function executeScript2(string script, javalang:Object[] args) returns javalang:Object|error { + handle externalObj = org_openqa_selenium_edge_EdgeDriver_executeScript2(self.jObj, java:fromString(script), check jarrays:toHandle(args, "java.lang.Object")); + javalang:Object newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `findElement` method of `org.openqa.selenium.edge.EdgeDriver`. + # + # + locator - The `orgopenqaselenium:By` value required to map with the Java method parameter. + # + return - The `orgopenqaselenium:WebElement` value returning from the Java mapping. + public isolated function findElement(orgopenqaselenium:By locator) returns orgopenqaselenium:WebElement { + handle externalObj = org_openqa_selenium_edge_EdgeDriver_findElement(self.jObj, locator.jObj); + orgopenqaselenium:WebElement newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `findElements` method of `org.openqa.selenium.edge.EdgeDriver`. + # + # + locator - The `orgopenqaselenium:By` value required to map with the Java method parameter. + # + return - The `javautil:List` value returning from the Java mapping. + public isolated function findElements(orgopenqaselenium:By locator) returns javautil:List { + handle externalObj = org_openqa_selenium_edge_EdgeDriver_findElements(self.jObj, locator.jObj); + javautil:List newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `findElements` method of `org.openqa.selenium.edge.EdgeDriver`. + # + # + context - The `orgopenqaselenium:SearchContext` value required to map with the Java method parameter. + # + findCommand - The `javautilfunction:BiFunction` value required to map with the Java method parameter. + # + locator - The `orgopenqaselenium:By` value required to map with the Java method parameter. + # + return - The `javautil:List` value returning from the Java mapping. + public isolated function findElements2(orgopenqaselenium:SearchContext context, javautilfunction:BiFunction findCommand, orgopenqaselenium:By locator) returns javautil:List { + handle externalObj = org_openqa_selenium_edge_EdgeDriver_findElements2(self.jObj, context.jObj, findCommand.jObj, locator.jObj); + javautil:List newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `get` method of `org.openqa.selenium.edge.EdgeDriver`. + # + # + url - The `string` value required to map with the Java method parameter. + public isolated function get(string url) { + org_openqa_selenium_edge_EdgeDriver_get(self.jObj, java:fromString(url)); + } + + # The function that maps to the `getBiDi` method of `org.openqa.selenium.edge.EdgeDriver`. + # + # + return - The `orgopenqaseleniumbidi:BiDi` value returning from the Java mapping. + public isolated function getBiDi() returns orgopenqaseleniumbidi:BiDi { + handle externalObj = org_openqa_selenium_edge_EdgeDriver_getBiDi(self.jObj); + orgopenqaseleniumbidi:BiDi newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getCapabilities` method of `org.openqa.selenium.edge.EdgeDriver`. + # + # + return - The `orgopenqaselenium:Capabilities` value returning from the Java mapping. + public isolated function getCapabilities() returns orgopenqaselenium:Capabilities { + handle externalObj = org_openqa_selenium_edge_EdgeDriver_getCapabilities(self.jObj); + orgopenqaselenium:Capabilities newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getCastIssueMessage` method of `org.openqa.selenium.edge.EdgeDriver`. + # + # + return - The `string` value returning from the Java mapping. + public isolated function getCastIssueMessage() returns string { + return java:toString(org_openqa_selenium_edge_EdgeDriver_getCastIssueMessage(self.jObj)) ?: ""; + } + + # The function that maps to the `getCastSinks` method of `org.openqa.selenium.edge.EdgeDriver`. + # + # + return - The `javautil:List` value returning from the Java mapping. + public isolated function getCastSinks() returns javautil:List { + handle externalObj = org_openqa_selenium_edge_EdgeDriver_getCastSinks(self.jObj); + javautil:List newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getClass` method of `org.openqa.selenium.edge.EdgeDriver`. + # + # + return - The `javalang:Class` value returning from the Java mapping. + public isolated function getClass() returns javalang:Class { + handle externalObj = org_openqa_selenium_edge_EdgeDriver_getClass(self.jObj); + javalang:Class newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getCommandExecutor` method of `org.openqa.selenium.edge.EdgeDriver`. + # + # + return - The `orgopenqaseleniumremote:CommandExecutor` value returning from the Java mapping. + public isolated function getCommandExecutor() returns orgopenqaseleniumremote:CommandExecutor { + handle externalObj = org_openqa_selenium_edge_EdgeDriver_getCommandExecutor(self.jObj); + orgopenqaseleniumremote:CommandExecutor newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getCurrentUrl` method of `org.openqa.selenium.edge.EdgeDriver`. + # + # + return - The `string` value returning from the Java mapping. + public isolated function getCurrentUrl() returns string { + return java:toString(org_openqa_selenium_edge_EdgeDriver_getCurrentUrl(self.jObj)) ?: ""; + } + + # The function that maps to the `getDevTools` method of `org.openqa.selenium.edge.EdgeDriver`. + # + # + return - The `orgopenqaseleniumdevtools:DevTools` value returning from the Java mapping. + public isolated function getDevTools() returns orgopenqaseleniumdevtools:DevTools { + handle externalObj = org_openqa_selenium_edge_EdgeDriver_getDevTools(self.jObj); + orgopenqaseleniumdevtools:DevTools newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getDownloadableFiles` method of `org.openqa.selenium.edge.EdgeDriver`. + # + # + return - The `javautil:List` value returning from the Java mapping. + public isolated function getDownloadableFiles() returns javautil:List { + handle externalObj = org_openqa_selenium_edge_EdgeDriver_getDownloadableFiles(self.jObj); + javautil:List newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getErrorHandler` method of `org.openqa.selenium.edge.EdgeDriver`. + # + # + return - The `orgopenqaseleniumremote:ErrorHandler` value returning from the Java mapping. + public isolated function getErrorHandler() returns orgopenqaseleniumremote:ErrorHandler { + handle externalObj = org_openqa_selenium_edge_EdgeDriver_getErrorHandler(self.jObj); + orgopenqaseleniumremote:ErrorHandler newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getFederatedCredentialManagementDialog` method of `org.openqa.selenium.edge.EdgeDriver`. + # + # + return - The `orgopenqaseleniumfederatedcredentialmanagement:FederatedCredentialManagementDialog` value returning from the Java mapping. + public isolated function getFederatedCredentialManagementDialog() returns orgopenqaseleniumfederatedcredentialmanagement:FederatedCredentialManagementDialog { + handle externalObj = org_openqa_selenium_edge_EdgeDriver_getFederatedCredentialManagementDialog(self.jObj); + orgopenqaseleniumfederatedcredentialmanagement:FederatedCredentialManagementDialog newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getFileDetector` method of `org.openqa.selenium.edge.EdgeDriver`. + # + # + return - The `orgopenqaseleniumremote:FileDetector` value returning from the Java mapping. + public isolated function getFileDetector() returns orgopenqaseleniumremote:FileDetector { + handle externalObj = org_openqa_selenium_edge_EdgeDriver_getFileDetector(self.jObj); + orgopenqaseleniumremote:FileDetector newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getLocalStorage` method of `org.openqa.selenium.edge.EdgeDriver`. + # + # + return - The `orgopenqaseleniumhtml5:LocalStorage` value returning from the Java mapping. + public isolated function getLocalStorage() returns orgopenqaseleniumhtml5:LocalStorage { + handle externalObj = org_openqa_selenium_edge_EdgeDriver_getLocalStorage(self.jObj); + orgopenqaseleniumhtml5:LocalStorage newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getNetworkConditions` method of `org.openqa.selenium.edge.EdgeDriver`. + # + # + return - The `orgopenqaseleniumchromium:ChromiumNetworkConditions` value returning from the Java mapping. + public isolated function getNetworkConditions() returns orgopenqaseleniumchromium:ChromiumNetworkConditions { + handle externalObj = org_openqa_selenium_edge_EdgeDriver_getNetworkConditions(self.jObj); + orgopenqaseleniumchromium:ChromiumNetworkConditions newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getNetworkConnection` method of `org.openqa.selenium.edge.EdgeDriver`. + # + # + return - The `orgopenqaseleniummobile:ConnectionType` value returning from the Java mapping. + public isolated function getNetworkConnection() returns orgopenqaseleniummobile:ConnectionType { + handle externalObj = org_openqa_selenium_edge_EdgeDriver_getNetworkConnection(self.jObj); + orgopenqaseleniummobile:ConnectionType newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getPageSource` method of `org.openqa.selenium.edge.EdgeDriver`. + # + # + return - The `string` value returning from the Java mapping. + public isolated function getPageSource() returns string { + return java:toString(org_openqa_selenium_edge_EdgeDriver_getPageSource(self.jObj)) ?: ""; + } + + # The function that maps to the `getPinnedScripts` method of `org.openqa.selenium.edge.EdgeDriver`. + # + # + return - The `javautil:Set` value returning from the Java mapping. + public isolated function getPinnedScripts() returns javautil:Set { + handle externalObj = org_openqa_selenium_edge_EdgeDriver_getPinnedScripts(self.jObj); + javautil:Set newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getScreenshotAs` method of `org.openqa.selenium.edge.EdgeDriver`. + # + # + outputType - The `orgopenqaselenium:OutputType` value required to map with the Java method parameter. + # + return - The `javalang:Object` value returning from the Java mapping. + public isolated function getScreenshotAs(orgopenqaselenium:OutputType outputType) returns javalang:Object { + handle externalObj = org_openqa_selenium_edge_EdgeDriver_getScreenshotAs(self.jObj, outputType.jObj); + javalang:Object newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getSessionId` method of `org.openqa.selenium.edge.EdgeDriver`. + # + # + return - The `orgopenqaseleniumremote:SessionId` value returning from the Java mapping. + public isolated function getSessionId() returns orgopenqaseleniumremote:SessionId { + handle externalObj = org_openqa_selenium_edge_EdgeDriver_getSessionId(self.jObj); + orgopenqaseleniumremote:SessionId newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getSessionStorage` method of `org.openqa.selenium.edge.EdgeDriver`. + # + # + return - The `orgopenqaseleniumhtml5:SessionStorage` value returning from the Java mapping. + public isolated function getSessionStorage() returns orgopenqaseleniumhtml5:SessionStorage { + handle externalObj = org_openqa_selenium_edge_EdgeDriver_getSessionStorage(self.jObj); + orgopenqaseleniumhtml5:SessionStorage newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getTitle` method of `org.openqa.selenium.edge.EdgeDriver`. + # + # + return - The `string` value returning from the Java mapping. + public isolated function getTitle() returns string { + return java:toString(org_openqa_selenium_edge_EdgeDriver_getTitle(self.jObj)) ?: ""; + } + + # The function that maps to the `getWindowHandle` method of `org.openqa.selenium.edge.EdgeDriver`. + # + # + return - The `string` value returning from the Java mapping. + public isolated function getWindowHandle() returns string { + return java:toString(org_openqa_selenium_edge_EdgeDriver_getWindowHandle(self.jObj)) ?: ""; + } + + # The function that maps to the `getWindowHandles` method of `org.openqa.selenium.edge.EdgeDriver`. + # + # + return - The `javautil:Set` value returning from the Java mapping. + public isolated function getWindowHandles() returns javautil:Set { + handle externalObj = org_openqa_selenium_edge_EdgeDriver_getWindowHandles(self.jObj); + javautil:Set newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `hashCode` method of `org.openqa.selenium.edge.EdgeDriver`. + # + # + return - The `int` value returning from the Java mapping. + public isolated function hashCode() returns int { + return org_openqa_selenium_edge_EdgeDriver_hashCode(self.jObj); + } + + # The function that maps to the `launchApp` method of `org.openqa.selenium.edge.EdgeDriver`. + # + # + id - The `string` value required to map with the Java method parameter. + public isolated function launchApp(string id) { + org_openqa_selenium_edge_EdgeDriver_launchApp(self.jObj, java:fromString(id)); + } + + # The function that maps to the `location` method of `org.openqa.selenium.edge.EdgeDriver`. + # + # + return - The `orgopenqaseleniumhtml5:Location` value returning from the Java mapping. + public isolated function location() returns orgopenqaseleniumhtml5:Location { + handle externalObj = org_openqa_selenium_edge_EdgeDriver_location(self.jObj); + orgopenqaseleniumhtml5:Location newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `manage` method of `org.openqa.selenium.edge.EdgeDriver`. + # + # + return - The `orgopenqaselenium:Options` value returning from the Java mapping. + public isolated function manage() returns orgopenqaselenium:Options { + handle externalObj = org_openqa_selenium_edge_EdgeDriver_manage(self.jObj); + orgopenqaselenium:Options newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `maybeGetBiDi` method of `org.openqa.selenium.edge.EdgeDriver`. + # + # + return - The `javautil:Optional` value returning from the Java mapping. + public isolated function maybeGetBiDi() returns javautil:Optional { + handle externalObj = org_openqa_selenium_edge_EdgeDriver_maybeGetBiDi(self.jObj); + javautil:Optional newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `maybeGetDevTools` method of `org.openqa.selenium.edge.EdgeDriver`. + # + # + return - The `javautil:Optional` value returning from the Java mapping. + public isolated function maybeGetDevTools() returns javautil:Optional { + handle externalObj = org_openqa_selenium_edge_EdgeDriver_maybeGetDevTools(self.jObj); + javautil:Optional newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `navigate` method of `org.openqa.selenium.edge.EdgeDriver`. + # + # + return - The `orgopenqaselenium:Navigation` value returning from the Java mapping. + public isolated function navigate() returns orgopenqaselenium:Navigation { + handle externalObj = org_openqa_selenium_edge_EdgeDriver_navigate(self.jObj); + orgopenqaselenium:Navigation newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `network` method of `org.openqa.selenium.edge.EdgeDriver`. + # + # + return - The `orgopenqaseleniumremote:Network` value returning from the Java mapping. + public isolated function network() returns orgopenqaseleniumremote:Network { + handle externalObj = org_openqa_selenium_edge_EdgeDriver_network(self.jObj); + orgopenqaseleniumremote:Network newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `notify` method of `org.openqa.selenium.edge.EdgeDriver`. + public isolated function notify() { + org_openqa_selenium_edge_EdgeDriver_notify(self.jObj); + } + + # The function that maps to the `notifyAll` method of `org.openqa.selenium.edge.EdgeDriver`. + public isolated function notifyAll() { + org_openqa_selenium_edge_EdgeDriver_notifyAll(self.jObj); + } + + # The function that maps to the `onLogEvent` method of `org.openqa.selenium.edge.EdgeDriver`. + # + # + kind - The `orgopenqaseleniumlogging:EventType` value required to map with the Java method parameter. + public isolated function onLogEvent(orgopenqaseleniumlogging:EventType kind) { + org_openqa_selenium_edge_EdgeDriver_onLogEvent(self.jObj, kind.jObj); + } + + # The function that maps to the `perform` method of `org.openqa.selenium.edge.EdgeDriver`. + # + # + actions - The `javautil:Collection` value required to map with the Java method parameter. + public isolated function perform(javautil:Collection actions) { + org_openqa_selenium_edge_EdgeDriver_perform(self.jObj, actions.jObj); + } + + # The function that maps to the `pin` method of `org.openqa.selenium.edge.EdgeDriver`. + # + # + script - The `string` value required to map with the Java method parameter. + # + return - The `orgopenqaselenium:ScriptKey` value returning from the Java mapping. + public isolated function pin(string script) returns orgopenqaselenium:ScriptKey { + handle externalObj = org_openqa_selenium_edge_EdgeDriver_pin(self.jObj, java:fromString(script)); + orgopenqaselenium:ScriptKey newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `print` method of `org.openqa.selenium.edge.EdgeDriver`. + # + # + printOptions - The `orgopenqaseleniumprint:PrintOptions` value required to map with the Java method parameter. + # + return - The `orgopenqaselenium:Pdf` value returning from the Java mapping. + public isolated function print(orgopenqaseleniumprint:PrintOptions printOptions) returns orgopenqaselenium:Pdf { + handle externalObj = org_openqa_selenium_edge_EdgeDriver_print(self.jObj, printOptions.jObj); + orgopenqaselenium:Pdf newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `quit` method of `org.openqa.selenium.edge.EdgeDriver`. + public isolated function quit() { + org_openqa_selenium_edge_EdgeDriver_quit(self.jObj); + } + + # The function that maps to the `register` method of `org.openqa.selenium.edge.EdgeDriver`. + # + # + whenThisMatches - The `javautilfunction:Predicate` value required to map with the Java method parameter. + # + useTheseCredentials - The `javautilfunction:Supplier` value required to map with the Java method parameter. + public isolated function register(javautilfunction:Predicate whenThisMatches, javautilfunction:Supplier useTheseCredentials) { + org_openqa_selenium_edge_EdgeDriver_register(self.jObj, whenThisMatches.jObj, useTheseCredentials.jObj); + } + + # The function that maps to the `register` method of `org.openqa.selenium.edge.EdgeDriver`. + # + # + alwaysUseTheseCredentials - The `javautilfunction:Supplier` value required to map with the Java method parameter. + public isolated function register2(javautilfunction:Supplier alwaysUseTheseCredentials) { + org_openqa_selenium_edge_EdgeDriver_register2(self.jObj, alwaysUseTheseCredentials.jObj); + } + + # The function that maps to the `removeVirtualAuthenticator` method of `org.openqa.selenium.edge.EdgeDriver`. + # + # + authenticator - The `orgopenqaseleniumvirtualauthenticator:VirtualAuthenticator` value required to map with the Java method parameter. + public isolated function removeVirtualAuthenticator(orgopenqaseleniumvirtualauthenticator:VirtualAuthenticator authenticator) { + org_openqa_selenium_edge_EdgeDriver_removeVirtualAuthenticator(self.jObj, authenticator.jObj); + } + + # The function that maps to the `requireDownloadsEnabled` method of `org.openqa.selenium.edge.EdgeDriver`. + # + # + capabilities - The `orgopenqaselenium:Capabilities` value required to map with the Java method parameter. + public isolated function requireDownloadsEnabled(orgopenqaselenium:Capabilities capabilities) { + org_openqa_selenium_edge_EdgeDriver_requireDownloadsEnabled(self.jObj, capabilities.jObj); + } + + # The function that maps to the `resetCooldown` method of `org.openqa.selenium.edge.EdgeDriver`. + public isolated function resetCooldown() { + org_openqa_selenium_edge_EdgeDriver_resetCooldown(self.jObj); + } + + # The function that maps to the `resetInputState` method of `org.openqa.selenium.edge.EdgeDriver`. + public isolated function resetInputState() { + org_openqa_selenium_edge_EdgeDriver_resetInputState(self.jObj); + } + + # The function that maps to the `script` method of `org.openqa.selenium.edge.EdgeDriver`. + # + # + return - The `orgopenqaseleniumremote:Script` value returning from the Java mapping. + public isolated function script() returns orgopenqaseleniumremote:Script { + handle externalObj = org_openqa_selenium_edge_EdgeDriver_script(self.jObj); + orgopenqaseleniumremote:Script newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `selectCastSink` method of `org.openqa.selenium.edge.EdgeDriver`. + # + # + deviceName - The `string` value required to map with the Java method parameter. + public isolated function selectCastSink(string deviceName) { + org_openqa_selenium_edge_EdgeDriver_selectCastSink(self.jObj, java:fromString(deviceName)); + } + + # The function that maps to the `setDelayEnabled` method of `org.openqa.selenium.edge.EdgeDriver`. + # + # + enabled - The `boolean` value required to map with the Java method parameter. + public isolated function setDelayEnabled(boolean enabled) { + org_openqa_selenium_edge_EdgeDriver_setDelayEnabled(self.jObj, enabled); + } + + # The function that maps to the `setErrorHandler` method of `org.openqa.selenium.edge.EdgeDriver`. + # + # + handler - The `orgopenqaseleniumremote:ErrorHandler` value required to map with the Java method parameter. + public isolated function setErrorHandler(orgopenqaseleniumremote:ErrorHandler handler) { + org_openqa_selenium_edge_EdgeDriver_setErrorHandler(self.jObj, handler.jObj); + } + + # The function that maps to the `setFileDetector` method of `org.openqa.selenium.edge.EdgeDriver`. + # + # + detector - The `orgopenqaseleniumremote:FileDetector` value required to map with the Java method parameter. + public isolated function setFileDetector(orgopenqaseleniumremote:FileDetector detector) { + org_openqa_selenium_edge_EdgeDriver_setFileDetector(self.jObj, detector.jObj); + } + + # The function that maps to the `setLocation` method of `org.openqa.selenium.edge.EdgeDriver`. + # + # + location - The `orgopenqaseleniumhtml5:Location` value required to map with the Java method parameter. + public isolated function setLocation(orgopenqaseleniumhtml5:Location location) { + org_openqa_selenium_edge_EdgeDriver_setLocation(self.jObj, location.jObj); + } + + # The function that maps to the `setLogLevel` method of `org.openqa.selenium.edge.EdgeDriver`. + # + # + level - The `javautillogging:Level` value required to map with the Java method parameter. + public isolated function setLogLevel(javautillogging:Level level) { + org_openqa_selenium_edge_EdgeDriver_setLogLevel(self.jObj, level.jObj); + } + + # The function that maps to the `setNetworkConditions` method of `org.openqa.selenium.edge.EdgeDriver`. + # + # + networkConditions - The `orgopenqaseleniumchromium:ChromiumNetworkConditions` value required to map with the Java method parameter. + public isolated function setNetworkConditions(orgopenqaseleniumchromium:ChromiumNetworkConditions networkConditions) { + org_openqa_selenium_edge_EdgeDriver_setNetworkConditions(self.jObj, networkConditions.jObj); + } + + # The function that maps to the `setNetworkConnection` method of `org.openqa.selenium.edge.EdgeDriver`. + # + # + 'type - The `orgopenqaseleniummobile:ConnectionType` value required to map with the Java method parameter. + # + return - The `orgopenqaseleniummobile:ConnectionType` value returning from the Java mapping. + public isolated function setNetworkConnection(orgopenqaseleniummobile:ConnectionType 'type) returns orgopenqaseleniummobile:ConnectionType { + handle externalObj = org_openqa_selenium_edge_EdgeDriver_setNetworkConnection(self.jObj, 'type.jObj); + orgopenqaseleniummobile:ConnectionType newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `setPermission` method of `org.openqa.selenium.edge.EdgeDriver`. + # + # + name - The `string` value required to map with the Java method parameter. + # + value - The `string` value required to map with the Java method parameter. + public isolated function setPermission(string name, string value) { + org_openqa_selenium_edge_EdgeDriver_setPermission(self.jObj, java:fromString(name), java:fromString(value)); + } + + # The function that maps to the `startDesktopMirroring` method of `org.openqa.selenium.edge.EdgeDriver`. + # + # + deviceName - The `string` value required to map with the Java method parameter. + public isolated function startDesktopMirroring(string deviceName) { + org_openqa_selenium_edge_EdgeDriver_startDesktopMirroring(self.jObj, java:fromString(deviceName)); + } + + # The function that maps to the `startTabMirroring` method of `org.openqa.selenium.edge.EdgeDriver`. + # + # + deviceName - The `string` value required to map with the Java method parameter. + public isolated function startTabMirroring(string deviceName) { + org_openqa_selenium_edge_EdgeDriver_startTabMirroring(self.jObj, java:fromString(deviceName)); + } + + # The function that maps to the `stopCasting` method of `org.openqa.selenium.edge.EdgeDriver`. + # + # + deviceName - The `string` value required to map with the Java method parameter. + public isolated function stopCasting(string deviceName) { + org_openqa_selenium_edge_EdgeDriver_stopCasting(self.jObj, java:fromString(deviceName)); + } + + # The function that maps to the `switchTo` method of `org.openqa.selenium.edge.EdgeDriver`. + # + # + return - The `orgopenqaselenium:TargetLocator` value returning from the Java mapping. + public isolated function switchTo() returns orgopenqaselenium:TargetLocator { + handle externalObj = org_openqa_selenium_edge_EdgeDriver_switchTo(self.jObj); + orgopenqaselenium:TargetLocator newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `unpin` method of `org.openqa.selenium.edge.EdgeDriver`. + # + # + 'key - The `orgopenqaselenium:ScriptKey` value required to map with the Java method parameter. + public isolated function unpin(orgopenqaselenium:ScriptKey 'key) { + org_openqa_selenium_edge_EdgeDriver_unpin(self.jObj, 'key.jObj); + } + + # The function that maps to the `wait` method of `org.openqa.selenium.edge.EdgeDriver`. + # + # + return - The `javalang:InterruptedException` value returning from the Java mapping. + public isolated function 'wait() returns javalang:InterruptedException? { + error|() externalObj = org_openqa_selenium_edge_EdgeDriver_wait(self.jObj); + if (externalObj is error) { + javalang:InterruptedException e = error javalang:InterruptedException(javalang:INTERRUPTEDEXCEPTION, externalObj, message = externalObj.message()); + return e; + } + } + + # The function that maps to the `wait` method of `org.openqa.selenium.edge.EdgeDriver`. + # + # + arg0 - The `int` value required to map with the Java method parameter. + # + return - The `javalang:InterruptedException` value returning from the Java mapping. + public isolated function wait2(int arg0) returns javalang:InterruptedException? { + error|() externalObj = org_openqa_selenium_edge_EdgeDriver_wait2(self.jObj, arg0); + if (externalObj is error) { + javalang:InterruptedException e = error javalang:InterruptedException(javalang:INTERRUPTEDEXCEPTION, externalObj, message = externalObj.message()); + return e; + } + } + + # The function that maps to the `wait` method of `org.openqa.selenium.edge.EdgeDriver`. + # + # + arg0 - The `int` value required to map with the Java method parameter. + # + arg1 - The `int` value required to map with the Java method parameter. + # + return - The `javalang:InterruptedException` value returning from the Java mapping. + public isolated function wait3(int arg0, int arg1) returns javalang:InterruptedException? { + error|() externalObj = org_openqa_selenium_edge_EdgeDriver_wait3(self.jObj, arg0, arg1); + if (externalObj is error) { + javalang:InterruptedException e = error javalang:InterruptedException(javalang:INTERRUPTEDEXCEPTION, externalObj, message = externalObj.message()); + return e; + } + } + +} + +# The constructor function to generate an object of `org.openqa.selenium.edge.EdgeDriver`. +# +# + return - The new `EdgeDriver` class generated. +public isolated function newEdgeDriver1() returns EdgeDriver { + handle externalObj = org_openqa_selenium_edge_EdgeDriver_newEdgeDriver1(); + EdgeDriver newObj = new (externalObj); + return newObj; +} + +# The constructor function to generate an object of `org.openqa.selenium.edge.EdgeDriver`. +# +# + 'service - The `EdgeDriverService` value required to map with the Java constructor parameter. +# + return - The new `EdgeDriver` class generated. +public isolated function newEdgeDriver2(EdgeDriverService 'service) returns EdgeDriver { + handle externalObj = org_openqa_selenium_edge_EdgeDriver_newEdgeDriver2('service.jObj); + EdgeDriver newObj = new (externalObj); + return newObj; +} + +# The constructor function to generate an object of `org.openqa.selenium.edge.EdgeDriver`. +# +# + 'service - The `EdgeDriverService` value required to map with the Java constructor parameter. +# + options - The `EdgeOptions` value required to map with the Java constructor parameter. +# + return - The new `EdgeDriver` class generated. +public isolated function newEdgeDriver3(EdgeDriverService 'service, EdgeOptions options) returns EdgeDriver { + handle externalObj = org_openqa_selenium_edge_EdgeDriver_newEdgeDriver3('service.jObj, options.jObj); + EdgeDriver newObj = new (externalObj); + return newObj; +} + +# The constructor function to generate an object of `org.openqa.selenium.edge.EdgeDriver`. +# +# + 'service - The `EdgeDriverService` value required to map with the Java constructor parameter. +# + options - The `EdgeOptions` value required to map with the Java constructor parameter. +# + clientConfig - The `orgopenqaseleniumremotehttp:ClientConfig` value required to map with the Java constructor parameter. +# + return - The new `EdgeDriver` class generated. +public isolated function newEdgeDriver4(EdgeDriverService 'service, EdgeOptions options, orgopenqaseleniumremotehttp:ClientConfig clientConfig) returns EdgeDriver { + handle externalObj = org_openqa_selenium_edge_EdgeDriver_newEdgeDriver4('service.jObj, options.jObj, clientConfig.jObj); + EdgeDriver newObj = new (externalObj); + return newObj; +} + +# The constructor function to generate an object of `org.openqa.selenium.edge.EdgeDriver`. +# +# + options - The `EdgeOptions` value required to map with the Java constructor parameter. +# + return - The new `EdgeDriver` class generated. +public isolated function newEdgeDriver5(EdgeOptions options) returns EdgeDriver { + handle externalObj = org_openqa_selenium_edge_EdgeDriver_newEdgeDriver5(options.jObj); + EdgeDriver newObj = new (externalObj); + return newObj; +} + +# The function that maps to the `builder` method of `org.openqa.selenium.edge.EdgeDriver`. +# +# + return - The `orgopenqaseleniumremote:RemoteWebDriverBuilder` value returning from the Java mapping. +public isolated function EdgeDriver_builder() returns orgopenqaseleniumremote:RemoteWebDriverBuilder { + handle externalObj = org_openqa_selenium_edge_EdgeDriver_builder(); + orgopenqaseleniumremote:RemoteWebDriverBuilder newObj = new (externalObj); + return newObj; +} + +# The function that retrieves the value of the public field `IS_CHROMIUM_BROWSER`. +# +# + return - The `Predicate` value of the field. +public isolated function EdgeDriver_getIS_CHROMIUM_BROWSER() returns javautilfunction:Predicate { + handle externalObj = org_openqa_selenium_edge_EdgeDriver_getIS_CHROMIUM_BROWSER(); + javautilfunction:Predicate newObj = new (externalObj); + return newObj; +} + +isolated function org_openqa_selenium_edge_EdgeDriver_addVirtualAuthenticator(handle receiver, handle options) returns handle = @java:Method { + name: "addVirtualAuthenticator", + 'class: "org.openqa.selenium.edge.EdgeDriver", + paramTypes: ["org.openqa.selenium.virtualauthenticator.VirtualAuthenticatorOptions"] +} external; + +isolated function org_openqa_selenium_edge_EdgeDriver_builder() returns handle = @java:Method { + name: "builder", + 'class: "org.openqa.selenium.edge.EdgeDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_edge_EdgeDriver_close(handle receiver) = @java:Method { + name: "close", + 'class: "org.openqa.selenium.edge.EdgeDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_edge_EdgeDriver_deleteDownloadableFiles(handle receiver) = @java:Method { + name: "deleteDownloadableFiles", + 'class: "org.openqa.selenium.edge.EdgeDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_edge_EdgeDriver_deleteNetworkConditions(handle receiver) = @java:Method { + name: "deleteNetworkConditions", + 'class: "org.openqa.selenium.edge.EdgeDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_edge_EdgeDriver_downloadFile(handle receiver, handle fileName, handle targetLocation) returns error? = @java:Method { + name: "downloadFile", + 'class: "org.openqa.selenium.edge.EdgeDriver", + paramTypes: ["java.lang.String", "java.nio.file.Path"] +} external; + +isolated function org_openqa_selenium_edge_EdgeDriver_equals(handle receiver, handle arg0) returns boolean = @java:Method { + name: "equals", + 'class: "org.openqa.selenium.edge.EdgeDriver", + paramTypes: ["java.lang.Object"] +} external; + +isolated function org_openqa_selenium_edge_EdgeDriver_executeAsyncScript(handle receiver, handle script, handle args) returns handle = @java:Method { + name: "executeAsyncScript", + 'class: "org.openqa.selenium.edge.EdgeDriver", + paramTypes: ["java.lang.String", "[Ljava.lang.Object;"] +} external; + +isolated function org_openqa_selenium_edge_EdgeDriver_executeCdpCommand(handle receiver, handle commandName, handle parameters) returns handle = @java:Method { + name: "executeCdpCommand", + 'class: "org.openqa.selenium.edge.EdgeDriver", + paramTypes: ["java.lang.String", "java.util.Map"] +} external; + +isolated function org_openqa_selenium_edge_EdgeDriver_executeScript(handle receiver, handle 'key, handle args) returns handle = @java:Method { + name: "executeScript", + 'class: "org.openqa.selenium.edge.EdgeDriver", + paramTypes: ["org.openqa.selenium.ScriptKey", "[Ljava.lang.Object;"] +} external; + +isolated function org_openqa_selenium_edge_EdgeDriver_executeScript2(handle receiver, handle script, handle args) returns handle = @java:Method { + name: "executeScript", + 'class: "org.openqa.selenium.edge.EdgeDriver", + paramTypes: ["java.lang.String", "[Ljava.lang.Object;"] +} external; + +isolated function org_openqa_selenium_edge_EdgeDriver_findElement(handle receiver, handle locator) returns handle = @java:Method { + name: "findElement", + 'class: "org.openqa.selenium.edge.EdgeDriver", + paramTypes: ["org.openqa.selenium.By"] +} external; + +isolated function org_openqa_selenium_edge_EdgeDriver_findElements(handle receiver, handle locator) returns handle = @java:Method { + name: "findElements", + 'class: "org.openqa.selenium.edge.EdgeDriver", + paramTypes: ["org.openqa.selenium.By"] +} external; + +isolated function org_openqa_selenium_edge_EdgeDriver_findElements2(handle receiver, handle context, handle findCommand, handle locator) returns handle = @java:Method { + name: "findElements", + 'class: "org.openqa.selenium.edge.EdgeDriver", + paramTypes: ["org.openqa.selenium.SearchContext", "java.util.function.BiFunction", "org.openqa.selenium.By"] +} external; + +isolated function org_openqa_selenium_edge_EdgeDriver_get(handle receiver, handle url) = @java:Method { + name: "get", + 'class: "org.openqa.selenium.edge.EdgeDriver", + paramTypes: ["java.lang.String"] +} external; + +isolated function org_openqa_selenium_edge_EdgeDriver_getBiDi(handle receiver) returns handle = @java:Method { + name: "getBiDi", + 'class: "org.openqa.selenium.edge.EdgeDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_edge_EdgeDriver_getCapabilities(handle receiver) returns handle = @java:Method { + name: "getCapabilities", + 'class: "org.openqa.selenium.edge.EdgeDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_edge_EdgeDriver_getCastIssueMessage(handle receiver) returns handle = @java:Method { + name: "getCastIssueMessage", + 'class: "org.openqa.selenium.edge.EdgeDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_edge_EdgeDriver_getCastSinks(handle receiver) returns handle = @java:Method { + name: "getCastSinks", + 'class: "org.openqa.selenium.edge.EdgeDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_edge_EdgeDriver_getClass(handle receiver) returns handle = @java:Method { + name: "getClass", + 'class: "org.openqa.selenium.edge.EdgeDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_edge_EdgeDriver_getCommandExecutor(handle receiver) returns handle = @java:Method { + name: "getCommandExecutor", + 'class: "org.openqa.selenium.edge.EdgeDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_edge_EdgeDriver_getCurrentUrl(handle receiver) returns handle = @java:Method { + name: "getCurrentUrl", + 'class: "org.openqa.selenium.edge.EdgeDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_edge_EdgeDriver_getDevTools(handle receiver) returns handle = @java:Method { + name: "getDevTools", + 'class: "org.openqa.selenium.edge.EdgeDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_edge_EdgeDriver_getDownloadableFiles(handle receiver) returns handle = @java:Method { + name: "getDownloadableFiles", + 'class: "org.openqa.selenium.edge.EdgeDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_edge_EdgeDriver_getErrorHandler(handle receiver) returns handle = @java:Method { + name: "getErrorHandler", + 'class: "org.openqa.selenium.edge.EdgeDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_edge_EdgeDriver_getFederatedCredentialManagementDialog(handle receiver) returns handle = @java:Method { + name: "getFederatedCredentialManagementDialog", + 'class: "org.openqa.selenium.edge.EdgeDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_edge_EdgeDriver_getFileDetector(handle receiver) returns handle = @java:Method { + name: "getFileDetector", + 'class: "org.openqa.selenium.edge.EdgeDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_edge_EdgeDriver_getLocalStorage(handle receiver) returns handle = @java:Method { + name: "getLocalStorage", + 'class: "org.openqa.selenium.edge.EdgeDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_edge_EdgeDriver_getNetworkConditions(handle receiver) returns handle = @java:Method { + name: "getNetworkConditions", + 'class: "org.openqa.selenium.edge.EdgeDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_edge_EdgeDriver_getNetworkConnection(handle receiver) returns handle = @java:Method { + name: "getNetworkConnection", + 'class: "org.openqa.selenium.edge.EdgeDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_edge_EdgeDriver_getPageSource(handle receiver) returns handle = @java:Method { + name: "getPageSource", + 'class: "org.openqa.selenium.edge.EdgeDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_edge_EdgeDriver_getPinnedScripts(handle receiver) returns handle = @java:Method { + name: "getPinnedScripts", + 'class: "org.openqa.selenium.edge.EdgeDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_edge_EdgeDriver_getScreenshotAs(handle receiver, handle outputType) returns handle = @java:Method { + name: "getScreenshotAs", + 'class: "org.openqa.selenium.edge.EdgeDriver", + paramTypes: ["org.openqa.selenium.OutputType"] +} external; + +isolated function org_openqa_selenium_edge_EdgeDriver_getSessionId(handle receiver) returns handle = @java:Method { + name: "getSessionId", + 'class: "org.openqa.selenium.edge.EdgeDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_edge_EdgeDriver_getSessionStorage(handle receiver) returns handle = @java:Method { + name: "getSessionStorage", + 'class: "org.openqa.selenium.edge.EdgeDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_edge_EdgeDriver_getTitle(handle receiver) returns handle = @java:Method { + name: "getTitle", + 'class: "org.openqa.selenium.edge.EdgeDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_edge_EdgeDriver_getWindowHandle(handle receiver) returns handle = @java:Method { + name: "getWindowHandle", + 'class: "org.openqa.selenium.edge.EdgeDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_edge_EdgeDriver_getWindowHandles(handle receiver) returns handle = @java:Method { + name: "getWindowHandles", + 'class: "org.openqa.selenium.edge.EdgeDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_edge_EdgeDriver_hashCode(handle receiver) returns int = @java:Method { + name: "hashCode", + 'class: "org.openqa.selenium.edge.EdgeDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_edge_EdgeDriver_launchApp(handle receiver, handle id) = @java:Method { + name: "launchApp", + 'class: "org.openqa.selenium.edge.EdgeDriver", + paramTypes: ["java.lang.String"] +} external; + +isolated function org_openqa_selenium_edge_EdgeDriver_location(handle receiver) returns handle = @java:Method { + name: "location", + 'class: "org.openqa.selenium.edge.EdgeDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_edge_EdgeDriver_manage(handle receiver) returns handle = @java:Method { + name: "manage", + 'class: "org.openqa.selenium.edge.EdgeDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_edge_EdgeDriver_maybeGetBiDi(handle receiver) returns handle = @java:Method { + name: "maybeGetBiDi", + 'class: "org.openqa.selenium.edge.EdgeDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_edge_EdgeDriver_maybeGetDevTools(handle receiver) returns handle = @java:Method { + name: "maybeGetDevTools", + 'class: "org.openqa.selenium.edge.EdgeDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_edge_EdgeDriver_navigate(handle receiver) returns handle = @java:Method { + name: "navigate", + 'class: "org.openqa.selenium.edge.EdgeDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_edge_EdgeDriver_network(handle receiver) returns handle = @java:Method { + name: "network", + 'class: "org.openqa.selenium.edge.EdgeDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_edge_EdgeDriver_notify(handle receiver) = @java:Method { + name: "notify", + 'class: "org.openqa.selenium.edge.EdgeDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_edge_EdgeDriver_notifyAll(handle receiver) = @java:Method { + name: "notifyAll", + 'class: "org.openqa.selenium.edge.EdgeDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_edge_EdgeDriver_onLogEvent(handle receiver, handle kind) = @java:Method { + name: "onLogEvent", + 'class: "org.openqa.selenium.edge.EdgeDriver", + paramTypes: ["org.openqa.selenium.logging.EventType"] +} external; + +isolated function org_openqa_selenium_edge_EdgeDriver_perform(handle receiver, handle actions) = @java:Method { + name: "perform", + 'class: "org.openqa.selenium.edge.EdgeDriver", + paramTypes: ["java.util.Collection"] +} external; + +isolated function org_openqa_selenium_edge_EdgeDriver_pin(handle receiver, handle script) returns handle = @java:Method { + name: "pin", + 'class: "org.openqa.selenium.edge.EdgeDriver", + paramTypes: ["java.lang.String"] +} external; + +isolated function org_openqa_selenium_edge_EdgeDriver_print(handle receiver, handle printOptions) returns handle = @java:Method { + name: "print", + 'class: "org.openqa.selenium.edge.EdgeDriver", + paramTypes: ["org.openqa.selenium.print.PrintOptions"] +} external; + +isolated function org_openqa_selenium_edge_EdgeDriver_quit(handle receiver) = @java:Method { + name: "quit", + 'class: "org.openqa.selenium.edge.EdgeDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_edge_EdgeDriver_register(handle receiver, handle whenThisMatches, handle useTheseCredentials) = @java:Method { + name: "register", + 'class: "org.openqa.selenium.edge.EdgeDriver", + paramTypes: ["java.util.function.Predicate", "java.util.function.Supplier"] +} external; + +isolated function org_openqa_selenium_edge_EdgeDriver_register2(handle receiver, handle alwaysUseTheseCredentials) = @java:Method { + name: "register", + 'class: "org.openqa.selenium.edge.EdgeDriver", + paramTypes: ["java.util.function.Supplier"] +} external; + +isolated function org_openqa_selenium_edge_EdgeDriver_removeVirtualAuthenticator(handle receiver, handle authenticator) = @java:Method { + name: "removeVirtualAuthenticator", + 'class: "org.openqa.selenium.edge.EdgeDriver", + paramTypes: ["org.openqa.selenium.virtualauthenticator.VirtualAuthenticator"] +} external; + +isolated function org_openqa_selenium_edge_EdgeDriver_requireDownloadsEnabled(handle receiver, handle capabilities) = @java:Method { + name: "requireDownloadsEnabled", + 'class: "org.openqa.selenium.edge.EdgeDriver", + paramTypes: ["org.openqa.selenium.Capabilities"] +} external; + +isolated function org_openqa_selenium_edge_EdgeDriver_resetCooldown(handle receiver) = @java:Method { + name: "resetCooldown", + 'class: "org.openqa.selenium.edge.EdgeDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_edge_EdgeDriver_resetInputState(handle receiver) = @java:Method { + name: "resetInputState", + 'class: "org.openqa.selenium.edge.EdgeDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_edge_EdgeDriver_script(handle receiver) returns handle = @java:Method { + name: "script", + 'class: "org.openqa.selenium.edge.EdgeDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_edge_EdgeDriver_selectCastSink(handle receiver, handle deviceName) = @java:Method { + name: "selectCastSink", + 'class: "org.openqa.selenium.edge.EdgeDriver", + paramTypes: ["java.lang.String"] +} external; + +isolated function org_openqa_selenium_edge_EdgeDriver_setDelayEnabled(handle receiver, boolean enabled) = @java:Method { + name: "setDelayEnabled", + 'class: "org.openqa.selenium.edge.EdgeDriver", + paramTypes: ["boolean"] +} external; + +isolated function org_openqa_selenium_edge_EdgeDriver_setErrorHandler(handle receiver, handle handler) = @java:Method { + name: "setErrorHandler", + 'class: "org.openqa.selenium.edge.EdgeDriver", + paramTypes: ["org.openqa.selenium.remote.ErrorHandler"] +} external; + +isolated function org_openqa_selenium_edge_EdgeDriver_setFileDetector(handle receiver, handle detector) = @java:Method { + name: "setFileDetector", + 'class: "org.openqa.selenium.edge.EdgeDriver", + paramTypes: ["org.openqa.selenium.remote.FileDetector"] +} external; + +isolated function org_openqa_selenium_edge_EdgeDriver_setLocation(handle receiver, handle location) = @java:Method { + name: "setLocation", + 'class: "org.openqa.selenium.edge.EdgeDriver", + paramTypes: ["org.openqa.selenium.html5.Location"] +} external; + +isolated function org_openqa_selenium_edge_EdgeDriver_setLogLevel(handle receiver, handle level) = @java:Method { + name: "setLogLevel", + 'class: "org.openqa.selenium.edge.EdgeDriver", + paramTypes: ["java.util.logging.Level"] +} external; + +isolated function org_openqa_selenium_edge_EdgeDriver_setNetworkConditions(handle receiver, handle networkConditions) = @java:Method { + name: "setNetworkConditions", + 'class: "org.openqa.selenium.edge.EdgeDriver", + paramTypes: ["org.openqa.selenium.chromium.ChromiumNetworkConditions"] +} external; + +isolated function org_openqa_selenium_edge_EdgeDriver_setNetworkConnection(handle receiver, handle 'type) returns handle = @java:Method { + name: "setNetworkConnection", + 'class: "org.openqa.selenium.edge.EdgeDriver", + paramTypes: ["org.openqa.selenium.mobile.NetworkConnection$ConnectionType"] +} external; + +isolated function org_openqa_selenium_edge_EdgeDriver_setPermission(handle receiver, handle name, handle value) = @java:Method { + name: "setPermission", + 'class: "org.openqa.selenium.edge.EdgeDriver", + paramTypes: ["java.lang.String", "java.lang.String"] +} external; + +isolated function org_openqa_selenium_edge_EdgeDriver_startDesktopMirroring(handle receiver, handle deviceName) = @java:Method { + name: "startDesktopMirroring", + 'class: "org.openqa.selenium.edge.EdgeDriver", + paramTypes: ["java.lang.String"] +} external; + +isolated function org_openqa_selenium_edge_EdgeDriver_startTabMirroring(handle receiver, handle deviceName) = @java:Method { + name: "startTabMirroring", + 'class: "org.openqa.selenium.edge.EdgeDriver", + paramTypes: ["java.lang.String"] +} external; + +isolated function org_openqa_selenium_edge_EdgeDriver_stopCasting(handle receiver, handle deviceName) = @java:Method { + name: "stopCasting", + 'class: "org.openqa.selenium.edge.EdgeDriver", + paramTypes: ["java.lang.String"] +} external; + +isolated function org_openqa_selenium_edge_EdgeDriver_switchTo(handle receiver) returns handle = @java:Method { + name: "switchTo", + 'class: "org.openqa.selenium.edge.EdgeDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_edge_EdgeDriver_unpin(handle receiver, handle 'key) = @java:Method { + name: "unpin", + 'class: "org.openqa.selenium.edge.EdgeDriver", + paramTypes: ["org.openqa.selenium.ScriptKey"] +} external; + +isolated function org_openqa_selenium_edge_EdgeDriver_wait(handle receiver) returns error? = @java:Method { + name: "wait", + 'class: "org.openqa.selenium.edge.EdgeDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_edge_EdgeDriver_wait2(handle receiver, int arg0) returns error? = @java:Method { + name: "wait", + 'class: "org.openqa.selenium.edge.EdgeDriver", + paramTypes: ["long"] +} external; + +isolated function org_openqa_selenium_edge_EdgeDriver_wait3(handle receiver, int arg0, int arg1) returns error? = @java:Method { + name: "wait", + 'class: "org.openqa.selenium.edge.EdgeDriver", + paramTypes: ["long", "int"] +} external; + +isolated function org_openqa_selenium_edge_EdgeDriver_getIS_CHROMIUM_BROWSER() returns handle = @java:FieldGet { + name: "IS_CHROMIUM_BROWSER", + 'class: "org.openqa.selenium.edge.EdgeDriver" +} external; + +isolated function org_openqa_selenium_edge_EdgeDriver_newEdgeDriver1() returns handle = @java:Constructor { + 'class: "org.openqa.selenium.edge.EdgeDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_edge_EdgeDriver_newEdgeDriver2(handle 'service) returns handle = @java:Constructor { + 'class: "org.openqa.selenium.edge.EdgeDriver", + paramTypes: ["org.openqa.selenium.edge.EdgeDriverService"] +} external; + +isolated function org_openqa_selenium_edge_EdgeDriver_newEdgeDriver3(handle 'service, handle options) returns handle = @java:Constructor { + 'class: "org.openqa.selenium.edge.EdgeDriver", + paramTypes: ["org.openqa.selenium.edge.EdgeDriverService", "org.openqa.selenium.edge.EdgeOptions"] +} external; + +isolated function org_openqa_selenium_edge_EdgeDriver_newEdgeDriver4(handle 'service, handle options, handle clientConfig) returns handle = @java:Constructor { + 'class: "org.openqa.selenium.edge.EdgeDriver", + paramTypes: ["org.openqa.selenium.edge.EdgeDriverService", "org.openqa.selenium.edge.EdgeOptions", "org.openqa.selenium.remote.http.ClientConfig"] +} external; + +isolated function org_openqa_selenium_edge_EdgeDriver_newEdgeDriver5(handle options) returns handle = @java:Constructor { + 'class: "org.openqa.selenium.edge.EdgeDriver", + paramTypes: ["org.openqa.selenium.edge.EdgeOptions"] +} external; + diff --git a/ballerina/modules/org.openqa.selenium.edge/EdgeDriverService.bal b/ballerina/modules/org.openqa.selenium.edge/EdgeDriverService.bal new file mode 100644 index 0000000..351329c --- /dev/null +++ b/ballerina/modules/org.openqa.selenium.edge/EdgeDriverService.bal @@ -0,0 +1,39 @@ +// This is an empty Ballerina class autogenerated to represent the `org.openqa.selenium.edge.EdgeDriverService` Java class. +// +// If you need the implementation of this class generated, please use the following command. +// +// $ bal bindgen [(-cp|--classpath) ...] +// [(-mvn|--maven) ::] +// [(-o|--output) ] +// [--public] +// (...) +// +// E.g. $ bal bindgen org.openqa.selenium.edge.EdgeDriverService + +import ballerina/jballerina.java; + +# Ballerina class mapping for the Java `org.openqa.selenium.edge.EdgeDriverService` class. +@java:Binding {'class: "org.openqa.selenium.edge.EdgeDriverService"} +public distinct class EdgeDriverService { + + *java:JObject; + + # The `handle` field that stores the reference to the `org.openqa.selenium.edge.EdgeDriverService` object. + public handle jObj; + + # The init function of the Ballerina class mapping the `org.openqa.selenium.edge.EdgeDriverService` Java class. + # + # + obj - The `handle` value containing the Java reference of the object. + public isolated function init(handle obj) { + self.jObj = obj; + } + + # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.edge.EdgeDriverService` Java class. + # + # + return - The `string` form of the Java object instance. + public isolated function toString() returns string { + return java:toString(self.jObj) ?: ""; + } + +} + diff --git a/ballerina/modules/org.openqa.selenium.edge/EdgeOptions.bal b/ballerina/modules/org.openqa.selenium.edge/EdgeOptions.bal new file mode 100644 index 0000000..0fe518e --- /dev/null +++ b/ballerina/modules/org.openqa.selenium.edge/EdgeOptions.bal @@ -0,0 +1,39 @@ +// This is an empty Ballerina class autogenerated to represent the `org.openqa.selenium.edge.EdgeOptions` Java class. +// +// If you need the implementation of this class generated, please use the following command. +// +// $ bal bindgen [(-cp|--classpath) ...] +// [(-mvn|--maven) ::] +// [(-o|--output) ] +// [--public] +// (...) +// +// E.g. $ bal bindgen org.openqa.selenium.edge.EdgeOptions + +import ballerina/jballerina.java; + +# Ballerina class mapping for the Java `org.openqa.selenium.edge.EdgeOptions` class. +@java:Binding {'class: "org.openqa.selenium.edge.EdgeOptions"} +public distinct class EdgeOptions { + + *java:JObject; + + # The `handle` field that stores the reference to the `org.openqa.selenium.edge.EdgeOptions` object. + public handle jObj; + + # The init function of the Ballerina class mapping the `org.openqa.selenium.edge.EdgeOptions` Java class. + # + # + obj - The `handle` value containing the Java reference of the object. + public isolated function init(handle obj) { + self.jObj = obj; + } + + # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.edge.EdgeOptions` Java class. + # + # + return - The `string` form of the Java object instance. + public isolated function toString() returns string { + return java:toString(self.jObj) ?: ""; + } + +} + diff --git a/ballerina/modules/org.openqa.selenium.federatedcredentialmanagement/FederatedCredentialManagementDialog.bal b/ballerina/modules/org.openqa.selenium.federatedcredentialmanagement/FederatedCredentialManagementDialog.bal new file mode 100644 index 0000000..6cd4a78 --- /dev/null +++ b/ballerina/modules/org.openqa.selenium.federatedcredentialmanagement/FederatedCredentialManagementDialog.bal @@ -0,0 +1,39 @@ +// This is an empty Ballerina class autogenerated to represent the `org.openqa.selenium.federatedcredentialmanagement.FederatedCredentialManagementDialog` Java interface. +// +// If you need the implementation of this class generated, please use the following command. +// +// $ bal bindgen [(-cp|--classpath) ...] +// [(-mvn|--maven) ::] +// [(-o|--output) ] +// [--public] +// (...) +// +// E.g. $ bal bindgen org.openqa.selenium.federatedcredentialmanagement.FederatedCredentialManagementDialog + +import ballerina/jballerina.java; + +# Ballerina class mapping for the Java `org.openqa.selenium.federatedcredentialmanagement.FederatedCredentialManagementDialog` interface. +@java:Binding {'class: "org.openqa.selenium.federatedcredentialmanagement.FederatedCredentialManagementDialog"} +public distinct class FederatedCredentialManagementDialog { + + *java:JObject; + + # The `handle` field that stores the reference to the `org.openqa.selenium.federatedcredentialmanagement.FederatedCredentialManagementDialog` object. + public handle jObj; + + # The init function of the Ballerina class mapping the `org.openqa.selenium.federatedcredentialmanagement.FederatedCredentialManagementDialog` Java interface. + # + # + obj - The `handle` value containing the Java reference of the object. + public isolated function init(handle obj) { + self.jObj = obj; + } + + # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.federatedcredentialmanagement.FederatedCredentialManagementDialog` Java interface. + # + # + return - The `string` form of the Java object instance. + public isolated function toString() returns string { + return java:toString(self.jObj) ?: ""; + } + +} + diff --git a/ballerina/modules/org.openqa.selenium.firefox/FirefoxCommandContext.bal b/ballerina/modules/org.openqa.selenium.firefox/FirefoxCommandContext.bal new file mode 100644 index 0000000..edefac6 --- /dev/null +++ b/ballerina/modules/org.openqa.selenium.firefox/FirefoxCommandContext.bal @@ -0,0 +1,39 @@ +// This is an empty Ballerina class autogenerated to represent the `org.openqa.selenium.firefox.FirefoxCommandContext` Java class. +// +// If you need the implementation of this class generated, please use the following command. +// +// $ bal bindgen [(-cp|--classpath) ...] +// [(-mvn|--maven) ::] +// [(-o|--output) ] +// [--public] +// (...) +// +// E.g. $ bal bindgen org.openqa.selenium.firefox.FirefoxCommandContext + +import ballerina/jballerina.java; + +# Ballerina class mapping for the Java `org.openqa.selenium.firefox.FirefoxCommandContext` class. +@java:Binding {'class: "org.openqa.selenium.firefox.FirefoxCommandContext"} +public distinct class FirefoxCommandContext { + + *java:JObject; + + # The `handle` field that stores the reference to the `org.openqa.selenium.firefox.FirefoxCommandContext` object. + public handle jObj; + + # The init function of the Ballerina class mapping the `org.openqa.selenium.firefox.FirefoxCommandContext` Java class. + # + # + obj - The `handle` value containing the Java reference of the object. + public isolated function init(handle obj) { + self.jObj = obj; + } + + # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.firefox.FirefoxCommandContext` Java class. + # + # + return - The `string` form of the Java object instance. + public isolated function toString() returns string { + return java:toString(self.jObj) ?: ""; + } + +} + diff --git a/ballerina/modules/org.openqa.selenium.firefox/FirefoxDriver.bal b/ballerina/modules/org.openqa.selenium.firefox/FirefoxDriver.bal new file mode 100644 index 0000000..8733c49 --- /dev/null +++ b/ballerina/modules/org.openqa.selenium.firefox/FirefoxDriver.bal @@ -0,0 +1,1049 @@ +import selenium.java.io as javaio; +import selenium.java.lang as javalang; +import selenium.java.nio.file as javaniofile; +import selenium.java.util as javautil; +import selenium.java.util.'function as javautilfunction; +import selenium.java.util.logging as javautillogging; +import selenium.org.openqa.selenium as orgopenqaselenium; +import selenium.org.openqa.selenium.'remote as orgopenqaseleniumremote; +import selenium.org.openqa.selenium.'remote.http as orgopenqaseleniumremotehttp; +import selenium.org.openqa.selenium.bidi as orgopenqaseleniumbidi; +import selenium.org.openqa.selenium.devtools as orgopenqaseleniumdevtools; +import selenium.org.openqa.selenium.federatedcredentialmanagement as orgopenqaseleniumfederatedcredentialmanagement; +import selenium.org.openqa.selenium.html5 as orgopenqaseleniumhtml5; +import selenium.org.openqa.selenium.print as orgopenqaseleniumprint; +import selenium.org.openqa.selenium.virtualauthenticator as orgopenqaseleniumvirtualauthenticator; + +import ballerina/jballerina.java; +import ballerina/jballerina.java.arrays as jarrays; + +# Ballerina class mapping for the Java `org.openqa.selenium.firefox.FirefoxDriver` class. +@java:Binding {'class: "org.openqa.selenium.firefox.FirefoxDriver"} +public distinct class FirefoxDriver { + + *java:JObject; + *orgopenqaseleniumremote:RemoteWebDriver; + + # The `handle` field that stores the reference to the `org.openqa.selenium.firefox.FirefoxDriver` object. + public handle jObj; + + # The init function of the Ballerina class mapping the `org.openqa.selenium.firefox.FirefoxDriver` Java class. + # + # + obj - The `handle` value containing the Java reference of the object. + public isolated function init(handle obj) { + self.jObj = obj; + } + + # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.firefox.FirefoxDriver` Java class. + # + # + return - The `string` form of the Java object instance. + public isolated function toString() returns string { + return java:toString(self.jObj) ?: ""; + } + + # The function that maps to the `addVirtualAuthenticator` method of `org.openqa.selenium.firefox.FirefoxDriver`. + # + # + options - The `orgopenqaseleniumvirtualauthenticator:VirtualAuthenticatorOptions` value required to map with the Java method parameter. + # + return - The `orgopenqaseleniumvirtualauthenticator:VirtualAuthenticator` value returning from the Java mapping. + public isolated function addVirtualAuthenticator(orgopenqaseleniumvirtualauthenticator:VirtualAuthenticatorOptions options) returns orgopenqaseleniumvirtualauthenticator:VirtualAuthenticator { + handle externalObj = org_openqa_selenium_firefox_FirefoxDriver_addVirtualAuthenticator(self.jObj, options.jObj); + orgopenqaseleniumvirtualauthenticator:VirtualAuthenticator newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `close` method of `org.openqa.selenium.firefox.FirefoxDriver`. + public isolated function close() { + org_openqa_selenium_firefox_FirefoxDriver_close(self.jObj); + } + + # The function that maps to the `deleteDownloadableFiles` method of `org.openqa.selenium.firefox.FirefoxDriver`. + public isolated function deleteDownloadableFiles() { + org_openqa_selenium_firefox_FirefoxDriver_deleteDownloadableFiles(self.jObj); + } + + # The function that maps to the `downloadFile` method of `org.openqa.selenium.firefox.FirefoxDriver`. + # + # + fileName - The `string` value required to map with the Java method parameter. + # + targetLocation - The `javaniofile:Path` value required to map with the Java method parameter. + # + return - The `javaio:IOException` value returning from the Java mapping. + public isolated function downloadFile(string fileName, javaniofile:Path targetLocation) returns javaio:IOException? { + error|() externalObj = org_openqa_selenium_firefox_FirefoxDriver_downloadFile(self.jObj, java:fromString(fileName), targetLocation.jObj); + if (externalObj is error) { + javaio:IOException e = error javaio:IOException(javaio:IOEXCEPTION, externalObj, message = externalObj.message()); + return e; + } + } + + # The function that maps to the `equals` method of `org.openqa.selenium.firefox.FirefoxDriver`. + # + # + arg0 - The `javalang:Object` value required to map with the Java method parameter. + # + return - The `boolean` value returning from the Java mapping. + public isolated function 'equals(javalang:Object arg0) returns boolean { + return org_openqa_selenium_firefox_FirefoxDriver_equals(self.jObj, arg0.jObj); + } + + # The function that maps to the `executeAsyncScript` method of `org.openqa.selenium.firefox.FirefoxDriver`. + # + # + script - The `string` value required to map with the Java method parameter. + # + args - The `javalang:Object[]` value required to map with the Java method parameter. + # + return - The `javalang:Object` value returning from the Java mapping. + public isolated function executeAsyncScript(string script, javalang:Object[] args) returns javalang:Object|error { + handle externalObj = org_openqa_selenium_firefox_FirefoxDriver_executeAsyncScript(self.jObj, java:fromString(script), check jarrays:toHandle(args, "java.lang.Object")); + javalang:Object newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `executeScript` method of `org.openqa.selenium.firefox.FirefoxDriver`. + # + # + 'key - The `orgopenqaselenium:ScriptKey` value required to map with the Java method parameter. + # + args - The `javalang:Object[]` value required to map with the Java method parameter. + # + return - The `javalang:Object` value returning from the Java mapping. + public isolated function executeScript(orgopenqaselenium:ScriptKey 'key, javalang:Object[] args) returns javalang:Object|error { + handle externalObj = org_openqa_selenium_firefox_FirefoxDriver_executeScript(self.jObj, 'key.jObj, check jarrays:toHandle(args, "java.lang.Object")); + javalang:Object newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `executeScript` method of `org.openqa.selenium.firefox.FirefoxDriver`. + # + # + script - The `string` value required to map with the Java method parameter. + # + args - The `javalang:Object[]` value required to map with the Java method parameter. + # + return - The `javalang:Object` value returning from the Java mapping. + public isolated function executeScript2(string script, javalang:Object[] args) returns javalang:Object|error { + handle externalObj = org_openqa_selenium_firefox_FirefoxDriver_executeScript2(self.jObj, java:fromString(script), check jarrays:toHandle(args, "java.lang.Object")); + javalang:Object newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `findElement` method of `org.openqa.selenium.firefox.FirefoxDriver`. + # + # + locator - The `orgopenqaselenium:By` value required to map with the Java method parameter. + # + return - The `orgopenqaselenium:WebElement` value returning from the Java mapping. + public isolated function findElement(orgopenqaselenium:By locator) returns orgopenqaselenium:WebElement { + handle externalObj = org_openqa_selenium_firefox_FirefoxDriver_findElement(self.jObj, locator.jObj); + orgopenqaselenium:WebElement newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `findElements` method of `org.openqa.selenium.firefox.FirefoxDriver`. + # + # + locator - The `orgopenqaselenium:By` value required to map with the Java method parameter. + # + return - The `javautil:List` value returning from the Java mapping. + public isolated function findElements(orgopenqaselenium:By locator) returns javautil:List { + handle externalObj = org_openqa_selenium_firefox_FirefoxDriver_findElements(self.jObj, locator.jObj); + javautil:List newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `findElements` method of `org.openqa.selenium.firefox.FirefoxDriver`. + # + # + context - The `orgopenqaselenium:SearchContext` value required to map with the Java method parameter. + # + findCommand - The `javautilfunction:BiFunction` value required to map with the Java method parameter. + # + locator - The `orgopenqaselenium:By` value required to map with the Java method parameter. + # + return - The `javautil:List` value returning from the Java mapping. + public isolated function findElements2(orgopenqaselenium:SearchContext context, javautilfunction:BiFunction findCommand, orgopenqaselenium:By locator) returns javautil:List { + handle externalObj = org_openqa_selenium_firefox_FirefoxDriver_findElements2(self.jObj, context.jObj, findCommand.jObj, locator.jObj); + javautil:List newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `get` method of `org.openqa.selenium.firefox.FirefoxDriver`. + # + # + url - The `string` value required to map with the Java method parameter. + public isolated function get(string url) { + org_openqa_selenium_firefox_FirefoxDriver_get(self.jObj, java:fromString(url)); + } + + # The function that maps to the `getBiDi` method of `org.openqa.selenium.firefox.FirefoxDriver`. + # + # + return - The `orgopenqaseleniumbidi:BiDi` value returning from the Java mapping. + public isolated function getBiDi() returns orgopenqaseleniumbidi:BiDi { + handle externalObj = org_openqa_selenium_firefox_FirefoxDriver_getBiDi(self.jObj); + orgopenqaseleniumbidi:BiDi newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getCapabilities` method of `org.openqa.selenium.firefox.FirefoxDriver`. + # + # + return - The `orgopenqaselenium:Capabilities` value returning from the Java mapping. + public isolated function getCapabilities() returns orgopenqaselenium:Capabilities { + handle externalObj = org_openqa_selenium_firefox_FirefoxDriver_getCapabilities(self.jObj); + orgopenqaselenium:Capabilities newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getClass` method of `org.openqa.selenium.firefox.FirefoxDriver`. + # + # + return - The `javalang:Class` value returning from the Java mapping. + public isolated function getClass() returns javalang:Class { + handle externalObj = org_openqa_selenium_firefox_FirefoxDriver_getClass(self.jObj); + javalang:Class newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getCommandExecutor` method of `org.openqa.selenium.firefox.FirefoxDriver`. + # + # + return - The `orgopenqaseleniumremote:CommandExecutor` value returning from the Java mapping. + public isolated function getCommandExecutor() returns orgopenqaseleniumremote:CommandExecutor { + handle externalObj = org_openqa_selenium_firefox_FirefoxDriver_getCommandExecutor(self.jObj); + orgopenqaseleniumremote:CommandExecutor newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getContext` method of `org.openqa.selenium.firefox.FirefoxDriver`. + # + # + return - The `FirefoxCommandContext` value returning from the Java mapping. + public isolated function getContext() returns FirefoxCommandContext { + handle externalObj = org_openqa_selenium_firefox_FirefoxDriver_getContext(self.jObj); + FirefoxCommandContext newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getCurrentUrl` method of `org.openqa.selenium.firefox.FirefoxDriver`. + # + # + return - The `string` value returning from the Java mapping. + public isolated function getCurrentUrl() returns string { + return java:toString(org_openqa_selenium_firefox_FirefoxDriver_getCurrentUrl(self.jObj)) ?: ""; + } + + # The function that maps to the `getDevTools` method of `org.openqa.selenium.firefox.FirefoxDriver`. + # + # + return - The `orgopenqaseleniumdevtools:DevTools` value returning from the Java mapping. + public isolated function getDevTools() returns orgopenqaseleniumdevtools:DevTools { + handle externalObj = org_openqa_selenium_firefox_FirefoxDriver_getDevTools(self.jObj); + orgopenqaseleniumdevtools:DevTools newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getDownloadableFiles` method of `org.openqa.selenium.firefox.FirefoxDriver`. + # + # + return - The `javautil:List` value returning from the Java mapping. + public isolated function getDownloadableFiles() returns javautil:List { + handle externalObj = org_openqa_selenium_firefox_FirefoxDriver_getDownloadableFiles(self.jObj); + javautil:List newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getErrorHandler` method of `org.openqa.selenium.firefox.FirefoxDriver`. + # + # + return - The `orgopenqaseleniumremote:ErrorHandler` value returning from the Java mapping. + public isolated function getErrorHandler() returns orgopenqaseleniumremote:ErrorHandler { + handle externalObj = org_openqa_selenium_firefox_FirefoxDriver_getErrorHandler(self.jObj); + orgopenqaseleniumremote:ErrorHandler newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getFederatedCredentialManagementDialog` method of `org.openqa.selenium.firefox.FirefoxDriver`. + # + # + return - The `orgopenqaseleniumfederatedcredentialmanagement:FederatedCredentialManagementDialog` value returning from the Java mapping. + public isolated function getFederatedCredentialManagementDialog() returns orgopenqaseleniumfederatedcredentialmanagement:FederatedCredentialManagementDialog { + handle externalObj = org_openqa_selenium_firefox_FirefoxDriver_getFederatedCredentialManagementDialog(self.jObj); + orgopenqaseleniumfederatedcredentialmanagement:FederatedCredentialManagementDialog newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getFileDetector` method of `org.openqa.selenium.firefox.FirefoxDriver`. + # + # + return - The `orgopenqaseleniumremote:FileDetector` value returning from the Java mapping. + public isolated function getFileDetector() returns orgopenqaseleniumremote:FileDetector { + handle externalObj = org_openqa_selenium_firefox_FirefoxDriver_getFileDetector(self.jObj); + orgopenqaseleniumremote:FileDetector newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getFullPageScreenshotAs` method of `org.openqa.selenium.firefox.FirefoxDriver`. + # + # + outputType - The `orgopenqaselenium:OutputType` value required to map with the Java method parameter. + # + return - The `javalang:Object` value returning from the Java mapping. + public isolated function getFullPageScreenshotAs(orgopenqaselenium:OutputType outputType) returns javalang:Object { + handle externalObj = org_openqa_selenium_firefox_FirefoxDriver_getFullPageScreenshotAs(self.jObj, outputType.jObj); + javalang:Object newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getLocalStorage` method of `org.openqa.selenium.firefox.FirefoxDriver`. + # + # + return - The `orgopenqaseleniumhtml5:LocalStorage` value returning from the Java mapping. + public isolated function getLocalStorage() returns orgopenqaseleniumhtml5:LocalStorage { + handle externalObj = org_openqa_selenium_firefox_FirefoxDriver_getLocalStorage(self.jObj); + orgopenqaseleniumhtml5:LocalStorage newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getPageSource` method of `org.openqa.selenium.firefox.FirefoxDriver`. + # + # + return - The `string` value returning from the Java mapping. + public isolated function getPageSource() returns string { + return java:toString(org_openqa_selenium_firefox_FirefoxDriver_getPageSource(self.jObj)) ?: ""; + } + + # The function that maps to the `getPinnedScripts` method of `org.openqa.selenium.firefox.FirefoxDriver`. + # + # + return - The `javautil:Set` value returning from the Java mapping. + public isolated function getPinnedScripts() returns javautil:Set { + handle externalObj = org_openqa_selenium_firefox_FirefoxDriver_getPinnedScripts(self.jObj); + javautil:Set newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getScreenshotAs` method of `org.openqa.selenium.firefox.FirefoxDriver`. + # + # + outputType - The `orgopenqaselenium:OutputType` value required to map with the Java method parameter. + # + return - The `javalang:Object` value returning from the Java mapping. + public isolated function getScreenshotAs(orgopenqaselenium:OutputType outputType) returns javalang:Object { + handle externalObj = org_openqa_selenium_firefox_FirefoxDriver_getScreenshotAs(self.jObj, outputType.jObj); + javalang:Object newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getSessionId` method of `org.openqa.selenium.firefox.FirefoxDriver`. + # + # + return - The `orgopenqaseleniumremote:SessionId` value returning from the Java mapping. + public isolated function getSessionId() returns orgopenqaseleniumremote:SessionId { + handle externalObj = org_openqa_selenium_firefox_FirefoxDriver_getSessionId(self.jObj); + orgopenqaseleniumremote:SessionId newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getSessionStorage` method of `org.openqa.selenium.firefox.FirefoxDriver`. + # + # + return - The `orgopenqaseleniumhtml5:SessionStorage` value returning from the Java mapping. + public isolated function getSessionStorage() returns orgopenqaseleniumhtml5:SessionStorage { + handle externalObj = org_openqa_selenium_firefox_FirefoxDriver_getSessionStorage(self.jObj); + orgopenqaseleniumhtml5:SessionStorage newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getTitle` method of `org.openqa.selenium.firefox.FirefoxDriver`. + # + # + return - The `string` value returning from the Java mapping. + public isolated function getTitle() returns string { + return java:toString(org_openqa_selenium_firefox_FirefoxDriver_getTitle(self.jObj)) ?: ""; + } + + # The function that maps to the `getWindowHandle` method of `org.openqa.selenium.firefox.FirefoxDriver`. + # + # + return - The `string` value returning from the Java mapping. + public isolated function getWindowHandle() returns string { + return java:toString(org_openqa_selenium_firefox_FirefoxDriver_getWindowHandle(self.jObj)) ?: ""; + } + + # The function that maps to the `getWindowHandles` method of `org.openqa.selenium.firefox.FirefoxDriver`. + # + # + return - The `javautil:Set` value returning from the Java mapping. + public isolated function getWindowHandles() returns javautil:Set { + handle externalObj = org_openqa_selenium_firefox_FirefoxDriver_getWindowHandles(self.jObj); + javautil:Set newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `hashCode` method of `org.openqa.selenium.firefox.FirefoxDriver`. + # + # + return - The `int` value returning from the Java mapping. + public isolated function hashCode() returns int { + return org_openqa_selenium_firefox_FirefoxDriver_hashCode(self.jObj); + } + + # The function that maps to the `installExtension` method of `org.openqa.selenium.firefox.FirefoxDriver`. + # + # + path - The `javaniofile:Path` value required to map with the Java method parameter. + # + return - The `string` value returning from the Java mapping. + public isolated function installExtension(javaniofile:Path path) returns string { + return java:toString(org_openqa_selenium_firefox_FirefoxDriver_installExtension(self.jObj, path.jObj)) ?: ""; + } + + # The function that maps to the `installExtension` method of `org.openqa.selenium.firefox.FirefoxDriver`. + # + # + path - The `javaniofile:Path` value required to map with the Java method parameter. + # + temporary - The `javalang:Boolean` value required to map with the Java method parameter. + # + return - The `string` value returning from the Java mapping. + public isolated function installExtension2(javaniofile:Path path, javalang:Boolean temporary) returns string { + return java:toString(org_openqa_selenium_firefox_FirefoxDriver_installExtension2(self.jObj, path.jObj, temporary.jObj)) ?: ""; + } + + # The function that maps to the `manage` method of `org.openqa.selenium.firefox.FirefoxDriver`. + # + # + return - The `orgopenqaselenium:Options` value returning from the Java mapping. + public isolated function manage() returns orgopenqaselenium:Options { + handle externalObj = org_openqa_selenium_firefox_FirefoxDriver_manage(self.jObj); + orgopenqaselenium:Options newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `maybeGetBiDi` method of `org.openqa.selenium.firefox.FirefoxDriver`. + # + # + return - The `javautil:Optional` value returning from the Java mapping. + public isolated function maybeGetBiDi() returns javautil:Optional { + handle externalObj = org_openqa_selenium_firefox_FirefoxDriver_maybeGetBiDi(self.jObj); + javautil:Optional newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `maybeGetDevTools` method of `org.openqa.selenium.firefox.FirefoxDriver`. + # + # + return - The `javautil:Optional` value returning from the Java mapping. + public isolated function maybeGetDevTools() returns javautil:Optional { + handle externalObj = org_openqa_selenium_firefox_FirefoxDriver_maybeGetDevTools(self.jObj); + javautil:Optional newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `navigate` method of `org.openqa.selenium.firefox.FirefoxDriver`. + # + # + return - The `orgopenqaselenium:Navigation` value returning from the Java mapping. + public isolated function navigate() returns orgopenqaselenium:Navigation { + handle externalObj = org_openqa_selenium_firefox_FirefoxDriver_navigate(self.jObj); + orgopenqaselenium:Navigation newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `network` method of `org.openqa.selenium.firefox.FirefoxDriver`. + # + # + return - The `orgopenqaseleniumremote:Network` value returning from the Java mapping. + public isolated function network() returns orgopenqaseleniumremote:Network { + handle externalObj = org_openqa_selenium_firefox_FirefoxDriver_network(self.jObj); + orgopenqaseleniumremote:Network newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `notify` method of `org.openqa.selenium.firefox.FirefoxDriver`. + public isolated function notify() { + org_openqa_selenium_firefox_FirefoxDriver_notify(self.jObj); + } + + # The function that maps to the `notifyAll` method of `org.openqa.selenium.firefox.FirefoxDriver`. + public isolated function notifyAll() { + org_openqa_selenium_firefox_FirefoxDriver_notifyAll(self.jObj); + } + + # The function that maps to the `perform` method of `org.openqa.selenium.firefox.FirefoxDriver`. + # + # + actions - The `javautil:Collection` value required to map with the Java method parameter. + public isolated function perform(javautil:Collection actions) { + org_openqa_selenium_firefox_FirefoxDriver_perform(self.jObj, actions.jObj); + } + + # The function that maps to the `pin` method of `org.openqa.selenium.firefox.FirefoxDriver`. + # + # + script - The `string` value required to map with the Java method parameter. + # + return - The `orgopenqaselenium:ScriptKey` value returning from the Java mapping. + public isolated function pin(string script) returns orgopenqaselenium:ScriptKey { + handle externalObj = org_openqa_selenium_firefox_FirefoxDriver_pin(self.jObj, java:fromString(script)); + orgopenqaselenium:ScriptKey newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `print` method of `org.openqa.selenium.firefox.FirefoxDriver`. + # + # + printOptions - The `orgopenqaseleniumprint:PrintOptions` value required to map with the Java method parameter. + # + return - The `orgopenqaselenium:Pdf` value returning from the Java mapping. + public isolated function print(orgopenqaseleniumprint:PrintOptions printOptions) returns orgopenqaselenium:Pdf { + handle externalObj = org_openqa_selenium_firefox_FirefoxDriver_print(self.jObj, printOptions.jObj); + orgopenqaselenium:Pdf newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `quit` method of `org.openqa.selenium.firefox.FirefoxDriver`. + public isolated function quit() { + org_openqa_selenium_firefox_FirefoxDriver_quit(self.jObj); + } + + # The function that maps to the `removeVirtualAuthenticator` method of `org.openqa.selenium.firefox.FirefoxDriver`. + # + # + authenticator - The `orgopenqaseleniumvirtualauthenticator:VirtualAuthenticator` value required to map with the Java method parameter. + public isolated function removeVirtualAuthenticator(orgopenqaseleniumvirtualauthenticator:VirtualAuthenticator authenticator) { + org_openqa_selenium_firefox_FirefoxDriver_removeVirtualAuthenticator(self.jObj, authenticator.jObj); + } + + # The function that maps to the `requireDownloadsEnabled` method of `org.openqa.selenium.firefox.FirefoxDriver`. + # + # + capabilities - The `orgopenqaselenium:Capabilities` value required to map with the Java method parameter. + public isolated function requireDownloadsEnabled(orgopenqaselenium:Capabilities capabilities) { + org_openqa_selenium_firefox_FirefoxDriver_requireDownloadsEnabled(self.jObj, capabilities.jObj); + } + + # The function that maps to the `resetCooldown` method of `org.openqa.selenium.firefox.FirefoxDriver`. + public isolated function resetCooldown() { + org_openqa_selenium_firefox_FirefoxDriver_resetCooldown(self.jObj); + } + + # The function that maps to the `resetInputState` method of `org.openqa.selenium.firefox.FirefoxDriver`. + public isolated function resetInputState() { + org_openqa_selenium_firefox_FirefoxDriver_resetInputState(self.jObj); + } + + # The function that maps to the `script` method of `org.openqa.selenium.firefox.FirefoxDriver`. + # + # + return - The `orgopenqaseleniumremote:Script` value returning from the Java mapping. + public isolated function script() returns orgopenqaseleniumremote:Script { + handle externalObj = org_openqa_selenium_firefox_FirefoxDriver_script(self.jObj); + orgopenqaseleniumremote:Script newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `setContext` method of `org.openqa.selenium.firefox.FirefoxDriver`. + # + # + commandContext - The `FirefoxCommandContext` value required to map with the Java method parameter. + public isolated function setContext(FirefoxCommandContext commandContext) { + org_openqa_selenium_firefox_FirefoxDriver_setContext(self.jObj, commandContext.jObj); + } + + # The function that maps to the `setDelayEnabled` method of `org.openqa.selenium.firefox.FirefoxDriver`. + # + # + enabled - The `boolean` value required to map with the Java method parameter. + public isolated function setDelayEnabled(boolean enabled) { + org_openqa_selenium_firefox_FirefoxDriver_setDelayEnabled(self.jObj, enabled); + } + + # The function that maps to the `setErrorHandler` method of `org.openqa.selenium.firefox.FirefoxDriver`. + # + # + handler - The `orgopenqaseleniumremote:ErrorHandler` value required to map with the Java method parameter. + public isolated function setErrorHandler(orgopenqaseleniumremote:ErrorHandler handler) { + org_openqa_selenium_firefox_FirefoxDriver_setErrorHandler(self.jObj, handler.jObj); + } + + # The function that maps to the `setFileDetector` method of `org.openqa.selenium.firefox.FirefoxDriver`. + # + # + detector - The `orgopenqaseleniumremote:FileDetector` value required to map with the Java method parameter. + public isolated function setFileDetector(orgopenqaseleniumremote:FileDetector detector) { + org_openqa_selenium_firefox_FirefoxDriver_setFileDetector(self.jObj, detector.jObj); + } + + # The function that maps to the `setLogLevel` method of `org.openqa.selenium.firefox.FirefoxDriver`. + # + # + level - The `javautillogging:Level` value required to map with the Java method parameter. + public isolated function setLogLevel(javautillogging:Level level) { + org_openqa_selenium_firefox_FirefoxDriver_setLogLevel(self.jObj, level.jObj); + } + + # The function that maps to the `switchTo` method of `org.openqa.selenium.firefox.FirefoxDriver`. + # + # + return - The `orgopenqaselenium:TargetLocator` value returning from the Java mapping. + public isolated function switchTo() returns orgopenqaselenium:TargetLocator { + handle externalObj = org_openqa_selenium_firefox_FirefoxDriver_switchTo(self.jObj); + orgopenqaselenium:TargetLocator newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `uninstallExtension` method of `org.openqa.selenium.firefox.FirefoxDriver`. + # + # + extensionId - The `string` value required to map with the Java method parameter. + public isolated function uninstallExtension(string extensionId) { + org_openqa_selenium_firefox_FirefoxDriver_uninstallExtension(self.jObj, java:fromString(extensionId)); + } + + # The function that maps to the `unpin` method of `org.openqa.selenium.firefox.FirefoxDriver`. + # + # + 'key - The `orgopenqaselenium:ScriptKey` value required to map with the Java method parameter. + public isolated function unpin(orgopenqaselenium:ScriptKey 'key) { + org_openqa_selenium_firefox_FirefoxDriver_unpin(self.jObj, 'key.jObj); + } + + # The function that maps to the `wait` method of `org.openqa.selenium.firefox.FirefoxDriver`. + # + # + return - The `javalang:InterruptedException` value returning from the Java mapping. + public isolated function 'wait() returns javalang:InterruptedException? { + error|() externalObj = org_openqa_selenium_firefox_FirefoxDriver_wait(self.jObj); + if (externalObj is error) { + javalang:InterruptedException e = error javalang:InterruptedException(javalang:INTERRUPTEDEXCEPTION, externalObj, message = externalObj.message()); + return e; + } + } + + # The function that maps to the `wait` method of `org.openqa.selenium.firefox.FirefoxDriver`. + # + # + arg0 - The `int` value required to map with the Java method parameter. + # + return - The `javalang:InterruptedException` value returning from the Java mapping. + public isolated function wait2(int arg0) returns javalang:InterruptedException? { + error|() externalObj = org_openqa_selenium_firefox_FirefoxDriver_wait2(self.jObj, arg0); + if (externalObj is error) { + javalang:InterruptedException e = error javalang:InterruptedException(javalang:INTERRUPTEDEXCEPTION, externalObj, message = externalObj.message()); + return e; + } + } + + # The function that maps to the `wait` method of `org.openqa.selenium.firefox.FirefoxDriver`. + # + # + arg0 - The `int` value required to map with the Java method parameter. + # + arg1 - The `int` value required to map with the Java method parameter. + # + return - The `javalang:InterruptedException` value returning from the Java mapping. + public isolated function wait3(int arg0, int arg1) returns javalang:InterruptedException? { + error|() externalObj = org_openqa_selenium_firefox_FirefoxDriver_wait3(self.jObj, arg0, arg1); + if (externalObj is error) { + javalang:InterruptedException e = error javalang:InterruptedException(javalang:INTERRUPTEDEXCEPTION, externalObj, message = externalObj.message()); + return e; + } + } + +} + +# The constructor function to generate an object of `org.openqa.selenium.firefox.FirefoxDriver`. +# +# + return - The new `FirefoxDriver` class generated. +public isolated function newFirefoxDriver1() returns FirefoxDriver { + handle externalObj = org_openqa_selenium_firefox_FirefoxDriver_newFirefoxDriver1(); + FirefoxDriver newObj = new (externalObj); + return newObj; +} + +# The constructor function to generate an object of `org.openqa.selenium.firefox.FirefoxDriver`. +# +# + 'service - The `FirefoxDriverService` value required to map with the Java constructor parameter. +# + return - The new `FirefoxDriver` class generated. +public isolated function newFirefoxDriver2(FirefoxDriverService 'service) returns FirefoxDriver { + handle externalObj = org_openqa_selenium_firefox_FirefoxDriver_newFirefoxDriver2('service.jObj); + FirefoxDriver newObj = new (externalObj); + return newObj; +} + +# The constructor function to generate an object of `org.openqa.selenium.firefox.FirefoxDriver`. +# +# + 'service - The `FirefoxDriverService` value required to map with the Java constructor parameter. +# + options - The `FirefoxOptions` value required to map with the Java constructor parameter. +# + return - The new `FirefoxDriver` class generated. +public isolated function newFirefoxDriver3(FirefoxDriverService 'service, FirefoxOptions options) returns FirefoxDriver { + handle externalObj = org_openqa_selenium_firefox_FirefoxDriver_newFirefoxDriver3('service.jObj, options.jObj); + FirefoxDriver newObj = new (externalObj); + return newObj; +} + +# The constructor function to generate an object of `org.openqa.selenium.firefox.FirefoxDriver`. +# +# + 'service - The `FirefoxDriverService` value required to map with the Java constructor parameter. +# + options - The `FirefoxOptions` value required to map with the Java constructor parameter. +# + clientConfig - The `orgopenqaseleniumremotehttp:ClientConfig` value required to map with the Java constructor parameter. +# + return - The new `FirefoxDriver` class generated. +public isolated function newFirefoxDriver4(FirefoxDriverService 'service, FirefoxOptions options, orgopenqaseleniumremotehttp:ClientConfig clientConfig) returns FirefoxDriver { + handle externalObj = org_openqa_selenium_firefox_FirefoxDriver_newFirefoxDriver4('service.jObj, options.jObj, clientConfig.jObj); + FirefoxDriver newObj = new (externalObj); + return newObj; +} + +# The constructor function to generate an object of `org.openqa.selenium.firefox.FirefoxDriver`. +# +# + options - The `FirefoxOptions` value required to map with the Java constructor parameter. +# + return - The new `FirefoxDriver` class generated. +public isolated function newFirefoxDriver5(FirefoxOptions options) returns FirefoxDriver { + handle externalObj = org_openqa_selenium_firefox_FirefoxDriver_newFirefoxDriver5(options.jObj); + FirefoxDriver newObj = new (externalObj); + return newObj; +} + +# The function that maps to the `builder` method of `org.openqa.selenium.firefox.FirefoxDriver`. +# +# + return - The `orgopenqaseleniumremote:RemoteWebDriverBuilder` value returning from the Java mapping. +public isolated function FirefoxDriver_builder() returns orgopenqaseleniumremote:RemoteWebDriverBuilder { + handle externalObj = org_openqa_selenium_firefox_FirefoxDriver_builder(); + orgopenqaseleniumremote:RemoteWebDriverBuilder newObj = new (externalObj); + return newObj; +} + +isolated function org_openqa_selenium_firefox_FirefoxDriver_addVirtualAuthenticator(handle receiver, handle options) returns handle = @java:Method { + name: "addVirtualAuthenticator", + 'class: "org.openqa.selenium.firefox.FirefoxDriver", + paramTypes: ["org.openqa.selenium.virtualauthenticator.VirtualAuthenticatorOptions"] +} external; + +isolated function org_openqa_selenium_firefox_FirefoxDriver_builder() returns handle = @java:Method { + name: "builder", + 'class: "org.openqa.selenium.firefox.FirefoxDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_firefox_FirefoxDriver_close(handle receiver) = @java:Method { + name: "close", + 'class: "org.openqa.selenium.firefox.FirefoxDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_firefox_FirefoxDriver_deleteDownloadableFiles(handle receiver) = @java:Method { + name: "deleteDownloadableFiles", + 'class: "org.openqa.selenium.firefox.FirefoxDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_firefox_FirefoxDriver_downloadFile(handle receiver, handle fileName, handle targetLocation) returns error? = @java:Method { + name: "downloadFile", + 'class: "org.openqa.selenium.firefox.FirefoxDriver", + paramTypes: ["java.lang.String", "java.nio.file.Path"] +} external; + +isolated function org_openqa_selenium_firefox_FirefoxDriver_equals(handle receiver, handle arg0) returns boolean = @java:Method { + name: "equals", + 'class: "org.openqa.selenium.firefox.FirefoxDriver", + paramTypes: ["java.lang.Object"] +} external; + +isolated function org_openqa_selenium_firefox_FirefoxDriver_executeAsyncScript(handle receiver, handle script, handle args) returns handle = @java:Method { + name: "executeAsyncScript", + 'class: "org.openqa.selenium.firefox.FirefoxDriver", + paramTypes: ["java.lang.String", "[Ljava.lang.Object;"] +} external; + +isolated function org_openqa_selenium_firefox_FirefoxDriver_executeScript(handle receiver, handle 'key, handle args) returns handle = @java:Method { + name: "executeScript", + 'class: "org.openqa.selenium.firefox.FirefoxDriver", + paramTypes: ["org.openqa.selenium.ScriptKey", "[Ljava.lang.Object;"] +} external; + +isolated function org_openqa_selenium_firefox_FirefoxDriver_executeScript2(handle receiver, handle script, handle args) returns handle = @java:Method { + name: "executeScript", + 'class: "org.openqa.selenium.firefox.FirefoxDriver", + paramTypes: ["java.lang.String", "[Ljava.lang.Object;"] +} external; + +isolated function org_openqa_selenium_firefox_FirefoxDriver_findElement(handle receiver, handle locator) returns handle = @java:Method { + name: "findElement", + 'class: "org.openqa.selenium.firefox.FirefoxDriver", + paramTypes: ["org.openqa.selenium.By"] +} external; + +isolated function org_openqa_selenium_firefox_FirefoxDriver_findElements(handle receiver, handle locator) returns handle = @java:Method { + name: "findElements", + 'class: "org.openqa.selenium.firefox.FirefoxDriver", + paramTypes: ["org.openqa.selenium.By"] +} external; + +isolated function org_openqa_selenium_firefox_FirefoxDriver_findElements2(handle receiver, handle context, handle findCommand, handle locator) returns handle = @java:Method { + name: "findElements", + 'class: "org.openqa.selenium.firefox.FirefoxDriver", + paramTypes: ["org.openqa.selenium.SearchContext", "java.util.function.BiFunction", "org.openqa.selenium.By"] +} external; + +isolated function org_openqa_selenium_firefox_FirefoxDriver_get(handle receiver, handle url) = @java:Method { + name: "get", + 'class: "org.openqa.selenium.firefox.FirefoxDriver", + paramTypes: ["java.lang.String"] +} external; + +isolated function org_openqa_selenium_firefox_FirefoxDriver_getBiDi(handle receiver) returns handle = @java:Method { + name: "getBiDi", + 'class: "org.openqa.selenium.firefox.FirefoxDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_firefox_FirefoxDriver_getCapabilities(handle receiver) returns handle = @java:Method { + name: "getCapabilities", + 'class: "org.openqa.selenium.firefox.FirefoxDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_firefox_FirefoxDriver_getClass(handle receiver) returns handle = @java:Method { + name: "getClass", + 'class: "org.openqa.selenium.firefox.FirefoxDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_firefox_FirefoxDriver_getCommandExecutor(handle receiver) returns handle = @java:Method { + name: "getCommandExecutor", + 'class: "org.openqa.selenium.firefox.FirefoxDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_firefox_FirefoxDriver_getContext(handle receiver) returns handle = @java:Method { + name: "getContext", + 'class: "org.openqa.selenium.firefox.FirefoxDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_firefox_FirefoxDriver_getCurrentUrl(handle receiver) returns handle = @java:Method { + name: "getCurrentUrl", + 'class: "org.openqa.selenium.firefox.FirefoxDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_firefox_FirefoxDriver_getDevTools(handle receiver) returns handle = @java:Method { + name: "getDevTools", + 'class: "org.openqa.selenium.firefox.FirefoxDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_firefox_FirefoxDriver_getDownloadableFiles(handle receiver) returns handle = @java:Method { + name: "getDownloadableFiles", + 'class: "org.openqa.selenium.firefox.FirefoxDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_firefox_FirefoxDriver_getErrorHandler(handle receiver) returns handle = @java:Method { + name: "getErrorHandler", + 'class: "org.openqa.selenium.firefox.FirefoxDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_firefox_FirefoxDriver_getFederatedCredentialManagementDialog(handle receiver) returns handle = @java:Method { + name: "getFederatedCredentialManagementDialog", + 'class: "org.openqa.selenium.firefox.FirefoxDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_firefox_FirefoxDriver_getFileDetector(handle receiver) returns handle = @java:Method { + name: "getFileDetector", + 'class: "org.openqa.selenium.firefox.FirefoxDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_firefox_FirefoxDriver_getFullPageScreenshotAs(handle receiver, handle outputType) returns handle = @java:Method { + name: "getFullPageScreenshotAs", + 'class: "org.openqa.selenium.firefox.FirefoxDriver", + paramTypes: ["org.openqa.selenium.OutputType"] +} external; + +isolated function org_openqa_selenium_firefox_FirefoxDriver_getLocalStorage(handle receiver) returns handle = @java:Method { + name: "getLocalStorage", + 'class: "org.openqa.selenium.firefox.FirefoxDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_firefox_FirefoxDriver_getPageSource(handle receiver) returns handle = @java:Method { + name: "getPageSource", + 'class: "org.openqa.selenium.firefox.FirefoxDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_firefox_FirefoxDriver_getPinnedScripts(handle receiver) returns handle = @java:Method { + name: "getPinnedScripts", + 'class: "org.openqa.selenium.firefox.FirefoxDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_firefox_FirefoxDriver_getScreenshotAs(handle receiver, handle outputType) returns handle = @java:Method { + name: "getScreenshotAs", + 'class: "org.openqa.selenium.firefox.FirefoxDriver", + paramTypes: ["org.openqa.selenium.OutputType"] +} external; + +isolated function org_openqa_selenium_firefox_FirefoxDriver_getSessionId(handle receiver) returns handle = @java:Method { + name: "getSessionId", + 'class: "org.openqa.selenium.firefox.FirefoxDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_firefox_FirefoxDriver_getSessionStorage(handle receiver) returns handle = @java:Method { + name: "getSessionStorage", + 'class: "org.openqa.selenium.firefox.FirefoxDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_firefox_FirefoxDriver_getTitle(handle receiver) returns handle = @java:Method { + name: "getTitle", + 'class: "org.openqa.selenium.firefox.FirefoxDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_firefox_FirefoxDriver_getWindowHandle(handle receiver) returns handle = @java:Method { + name: "getWindowHandle", + 'class: "org.openqa.selenium.firefox.FirefoxDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_firefox_FirefoxDriver_getWindowHandles(handle receiver) returns handle = @java:Method { + name: "getWindowHandles", + 'class: "org.openqa.selenium.firefox.FirefoxDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_firefox_FirefoxDriver_hashCode(handle receiver) returns int = @java:Method { + name: "hashCode", + 'class: "org.openqa.selenium.firefox.FirefoxDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_firefox_FirefoxDriver_installExtension(handle receiver, handle path) returns handle = @java:Method { + name: "installExtension", + 'class: "org.openqa.selenium.firefox.FirefoxDriver", + paramTypes: ["java.nio.file.Path"] +} external; + +isolated function org_openqa_selenium_firefox_FirefoxDriver_installExtension2(handle receiver, handle path, handle temporary) returns handle = @java:Method { + name: "installExtension", + 'class: "org.openqa.selenium.firefox.FirefoxDriver", + paramTypes: ["java.nio.file.Path", "java.lang.Boolean"] +} external; + +isolated function org_openqa_selenium_firefox_FirefoxDriver_manage(handle receiver) returns handle = @java:Method { + name: "manage", + 'class: "org.openqa.selenium.firefox.FirefoxDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_firefox_FirefoxDriver_maybeGetBiDi(handle receiver) returns handle = @java:Method { + name: "maybeGetBiDi", + 'class: "org.openqa.selenium.firefox.FirefoxDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_firefox_FirefoxDriver_maybeGetDevTools(handle receiver) returns handle = @java:Method { + name: "maybeGetDevTools", + 'class: "org.openqa.selenium.firefox.FirefoxDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_firefox_FirefoxDriver_navigate(handle receiver) returns handle = @java:Method { + name: "navigate", + 'class: "org.openqa.selenium.firefox.FirefoxDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_firefox_FirefoxDriver_network(handle receiver) returns handle = @java:Method { + name: "network", + 'class: "org.openqa.selenium.firefox.FirefoxDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_firefox_FirefoxDriver_notify(handle receiver) = @java:Method { + name: "notify", + 'class: "org.openqa.selenium.firefox.FirefoxDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_firefox_FirefoxDriver_notifyAll(handle receiver) = @java:Method { + name: "notifyAll", + 'class: "org.openqa.selenium.firefox.FirefoxDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_firefox_FirefoxDriver_perform(handle receiver, handle actions) = @java:Method { + name: "perform", + 'class: "org.openqa.selenium.firefox.FirefoxDriver", + paramTypes: ["java.util.Collection"] +} external; + +isolated function org_openqa_selenium_firefox_FirefoxDriver_pin(handle receiver, handle script) returns handle = @java:Method { + name: "pin", + 'class: "org.openqa.selenium.firefox.FirefoxDriver", + paramTypes: ["java.lang.String"] +} external; + +isolated function org_openqa_selenium_firefox_FirefoxDriver_print(handle receiver, handle printOptions) returns handle = @java:Method { + name: "print", + 'class: "org.openqa.selenium.firefox.FirefoxDriver", + paramTypes: ["org.openqa.selenium.print.PrintOptions"] +} external; + +isolated function org_openqa_selenium_firefox_FirefoxDriver_quit(handle receiver) = @java:Method { + name: "quit", + 'class: "org.openqa.selenium.firefox.FirefoxDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_firefox_FirefoxDriver_removeVirtualAuthenticator(handle receiver, handle authenticator) = @java:Method { + name: "removeVirtualAuthenticator", + 'class: "org.openqa.selenium.firefox.FirefoxDriver", + paramTypes: ["org.openqa.selenium.virtualauthenticator.VirtualAuthenticator"] +} external; + +isolated function org_openqa_selenium_firefox_FirefoxDriver_requireDownloadsEnabled(handle receiver, handle capabilities) = @java:Method { + name: "requireDownloadsEnabled", + 'class: "org.openqa.selenium.firefox.FirefoxDriver", + paramTypes: ["org.openqa.selenium.Capabilities"] +} external; + +isolated function org_openqa_selenium_firefox_FirefoxDriver_resetCooldown(handle receiver) = @java:Method { + name: "resetCooldown", + 'class: "org.openqa.selenium.firefox.FirefoxDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_firefox_FirefoxDriver_resetInputState(handle receiver) = @java:Method { + name: "resetInputState", + 'class: "org.openqa.selenium.firefox.FirefoxDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_firefox_FirefoxDriver_script(handle receiver) returns handle = @java:Method { + name: "script", + 'class: "org.openqa.selenium.firefox.FirefoxDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_firefox_FirefoxDriver_setContext(handle receiver, handle commandContext) = @java:Method { + name: "setContext", + 'class: "org.openqa.selenium.firefox.FirefoxDriver", + paramTypes: ["org.openqa.selenium.firefox.FirefoxCommandContext"] +} external; + +isolated function org_openqa_selenium_firefox_FirefoxDriver_setDelayEnabled(handle receiver, boolean enabled) = @java:Method { + name: "setDelayEnabled", + 'class: "org.openqa.selenium.firefox.FirefoxDriver", + paramTypes: ["boolean"] +} external; + +isolated function org_openqa_selenium_firefox_FirefoxDriver_setErrorHandler(handle receiver, handle handler) = @java:Method { + name: "setErrorHandler", + 'class: "org.openqa.selenium.firefox.FirefoxDriver", + paramTypes: ["org.openqa.selenium.remote.ErrorHandler"] +} external; + +isolated function org_openqa_selenium_firefox_FirefoxDriver_setFileDetector(handle receiver, handle detector) = @java:Method { + name: "setFileDetector", + 'class: "org.openqa.selenium.firefox.FirefoxDriver", + paramTypes: ["org.openqa.selenium.remote.FileDetector"] +} external; + +isolated function org_openqa_selenium_firefox_FirefoxDriver_setLogLevel(handle receiver, handle level) = @java:Method { + name: "setLogLevel", + 'class: "org.openqa.selenium.firefox.FirefoxDriver", + paramTypes: ["java.util.logging.Level"] +} external; + +isolated function org_openqa_selenium_firefox_FirefoxDriver_switchTo(handle receiver) returns handle = @java:Method { + name: "switchTo", + 'class: "org.openqa.selenium.firefox.FirefoxDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_firefox_FirefoxDriver_uninstallExtension(handle receiver, handle extensionId) = @java:Method { + name: "uninstallExtension", + 'class: "org.openqa.selenium.firefox.FirefoxDriver", + paramTypes: ["java.lang.String"] +} external; + +isolated function org_openqa_selenium_firefox_FirefoxDriver_unpin(handle receiver, handle 'key) = @java:Method { + name: "unpin", + 'class: "org.openqa.selenium.firefox.FirefoxDriver", + paramTypes: ["org.openqa.selenium.ScriptKey"] +} external; + +isolated function org_openqa_selenium_firefox_FirefoxDriver_wait(handle receiver) returns error? = @java:Method { + name: "wait", + 'class: "org.openqa.selenium.firefox.FirefoxDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_firefox_FirefoxDriver_wait2(handle receiver, int arg0) returns error? = @java:Method { + name: "wait", + 'class: "org.openqa.selenium.firefox.FirefoxDriver", + paramTypes: ["long"] +} external; + +isolated function org_openqa_selenium_firefox_FirefoxDriver_wait3(handle receiver, int arg0, int arg1) returns error? = @java:Method { + name: "wait", + 'class: "org.openqa.selenium.firefox.FirefoxDriver", + paramTypes: ["long", "int"] +} external; + +isolated function org_openqa_selenium_firefox_FirefoxDriver_newFirefoxDriver1() returns handle = @java:Constructor { + 'class: "org.openqa.selenium.firefox.FirefoxDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_firefox_FirefoxDriver_newFirefoxDriver2(handle 'service) returns handle = @java:Constructor { + 'class: "org.openqa.selenium.firefox.FirefoxDriver", + paramTypes: ["org.openqa.selenium.firefox.FirefoxDriverService"] +} external; + +isolated function org_openqa_selenium_firefox_FirefoxDriver_newFirefoxDriver3(handle 'service, handle options) returns handle = @java:Constructor { + 'class: "org.openqa.selenium.firefox.FirefoxDriver", + paramTypes: ["org.openqa.selenium.firefox.FirefoxDriverService", "org.openqa.selenium.firefox.FirefoxOptions"] +} external; + +isolated function org_openqa_selenium_firefox_FirefoxDriver_newFirefoxDriver4(handle 'service, handle options, handle clientConfig) returns handle = @java:Constructor { + 'class: "org.openqa.selenium.firefox.FirefoxDriver", + paramTypes: ["org.openqa.selenium.firefox.FirefoxDriverService", "org.openqa.selenium.firefox.FirefoxOptions", "org.openqa.selenium.remote.http.ClientConfig"] +} external; + +isolated function org_openqa_selenium_firefox_FirefoxDriver_newFirefoxDriver5(handle options) returns handle = @java:Constructor { + 'class: "org.openqa.selenium.firefox.FirefoxDriver", + paramTypes: ["org.openqa.selenium.firefox.FirefoxOptions"] +} external; + diff --git a/ballerina/modules/org.openqa.selenium.firefox/FirefoxDriverService.bal b/ballerina/modules/org.openqa.selenium.firefox/FirefoxDriverService.bal new file mode 100644 index 0000000..d258509 --- /dev/null +++ b/ballerina/modules/org.openqa.selenium.firefox/FirefoxDriverService.bal @@ -0,0 +1,39 @@ +// This is an empty Ballerina class autogenerated to represent the `org.openqa.selenium.firefox.FirefoxDriverService` Java class. +// +// If you need the implementation of this class generated, please use the following command. +// +// $ bal bindgen [(-cp|--classpath) ...] +// [(-mvn|--maven) ::] +// [(-o|--output) ] +// [--public] +// (...) +// +// E.g. $ bal bindgen org.openqa.selenium.firefox.FirefoxDriverService + +import ballerina/jballerina.java; + +# Ballerina class mapping for the Java `org.openqa.selenium.firefox.FirefoxDriverService` class. +@java:Binding {'class: "org.openqa.selenium.firefox.FirefoxDriverService"} +public distinct class FirefoxDriverService { + + *java:JObject; + + # The `handle` field that stores the reference to the `org.openqa.selenium.firefox.FirefoxDriverService` object. + public handle jObj; + + # The init function of the Ballerina class mapping the `org.openqa.selenium.firefox.FirefoxDriverService` Java class. + # + # + obj - The `handle` value containing the Java reference of the object. + public isolated function init(handle obj) { + self.jObj = obj; + } + + # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.firefox.FirefoxDriverService` Java class. + # + # + return - The `string` form of the Java object instance. + public isolated function toString() returns string { + return java:toString(self.jObj) ?: ""; + } + +} + diff --git a/ballerina/modules/org.openqa.selenium.firefox/FirefoxOptions.bal b/ballerina/modules/org.openqa.selenium.firefox/FirefoxOptions.bal new file mode 100644 index 0000000..de8cf12 --- /dev/null +++ b/ballerina/modules/org.openqa.selenium.firefox/FirefoxOptions.bal @@ -0,0 +1,39 @@ +// This is an empty Ballerina class autogenerated to represent the `org.openqa.selenium.firefox.FirefoxOptions` Java class. +// +// If you need the implementation of this class generated, please use the following command. +// +// $ bal bindgen [(-cp|--classpath) ...] +// [(-mvn|--maven) ::] +// [(-o|--output) ] +// [--public] +// (...) +// +// E.g. $ bal bindgen org.openqa.selenium.firefox.FirefoxOptions + +import ballerina/jballerina.java; + +# Ballerina class mapping for the Java `org.openqa.selenium.firefox.FirefoxOptions` class. +@java:Binding {'class: "org.openqa.selenium.firefox.FirefoxOptions"} +public distinct class FirefoxOptions { + + *java:JObject; + + # The `handle` field that stores the reference to the `org.openqa.selenium.firefox.FirefoxOptions` object. + public handle jObj; + + # The init function of the Ballerina class mapping the `org.openqa.selenium.firefox.FirefoxOptions` Java class. + # + # + obj - The `handle` value containing the Java reference of the object. + public isolated function init(handle obj) { + self.jObj = obj; + } + + # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.firefox.FirefoxOptions` Java class. + # + # + return - The `string` form of the Java object instance. + public isolated function toString() returns string { + return java:toString(self.jObj) ?: ""; + } + +} + diff --git a/ballerina/modules/org.openqa.selenium.html5/LocalStorage.bal b/ballerina/modules/org.openqa.selenium.html5/LocalStorage.bal new file mode 100644 index 0000000..2e55273 --- /dev/null +++ b/ballerina/modules/org.openqa.selenium.html5/LocalStorage.bal @@ -0,0 +1,39 @@ +// This is an empty Ballerina class autogenerated to represent the `org.openqa.selenium.html5.LocalStorage` Java interface. +// +// If you need the implementation of this class generated, please use the following command. +// +// $ bal bindgen [(-cp|--classpath) ...] +// [(-mvn|--maven) ::] +// [(-o|--output) ] +// [--public] +// (...) +// +// E.g. $ bal bindgen org.openqa.selenium.html5.LocalStorage + +import ballerina/jballerina.java; + +# Ballerina class mapping for the Java `org.openqa.selenium.html5.LocalStorage` interface. +@java:Binding {'class: "org.openqa.selenium.html5.LocalStorage"} +public distinct class LocalStorage { + + *java:JObject; + + # The `handle` field that stores the reference to the `org.openqa.selenium.html5.LocalStorage` object. + public handle jObj; + + # The init function of the Ballerina class mapping the `org.openqa.selenium.html5.LocalStorage` Java interface. + # + # + obj - The `handle` value containing the Java reference of the object. + public isolated function init(handle obj) { + self.jObj = obj; + } + + # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.html5.LocalStorage` Java interface. + # + # + return - The `string` form of the Java object instance. + public isolated function toString() returns string { + return java:toString(self.jObj) ?: ""; + } + +} + diff --git a/ballerina/modules/org.openqa.selenium.html5/Location.bal b/ballerina/modules/org.openqa.selenium.html5/Location.bal new file mode 100644 index 0000000..7c9acb2 --- /dev/null +++ b/ballerina/modules/org.openqa.selenium.html5/Location.bal @@ -0,0 +1,39 @@ +// This is an empty Ballerina class autogenerated to represent the `org.openqa.selenium.html5.Location` Java class. +// +// If you need the implementation of this class generated, please use the following command. +// +// $ bal bindgen [(-cp|--classpath) ...] +// [(-mvn|--maven) ::] +// [(-o|--output) ] +// [--public] +// (...) +// +// E.g. $ bal bindgen org.openqa.selenium.html5.Location + +import ballerina/jballerina.java; + +# Ballerina class mapping for the Java `org.openqa.selenium.html5.Location` class. +@java:Binding {'class: "org.openqa.selenium.html5.Location"} +public distinct class Location { + + *java:JObject; + + # The `handle` field that stores the reference to the `org.openqa.selenium.html5.Location` object. + public handle jObj; + + # The init function of the Ballerina class mapping the `org.openqa.selenium.html5.Location` Java class. + # + # + obj - The `handle` value containing the Java reference of the object. + public isolated function init(handle obj) { + self.jObj = obj; + } + + # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.html5.Location` Java class. + # + # + return - The `string` form of the Java object instance. + public isolated function toString() returns string { + return java:toString(self.jObj) ?: ""; + } + +} + diff --git a/ballerina/modules/org.openqa.selenium.html5/SessionStorage.bal b/ballerina/modules/org.openqa.selenium.html5/SessionStorage.bal new file mode 100644 index 0000000..b8325ec --- /dev/null +++ b/ballerina/modules/org.openqa.selenium.html5/SessionStorage.bal @@ -0,0 +1,39 @@ +// This is an empty Ballerina class autogenerated to represent the `org.openqa.selenium.html5.SessionStorage` Java interface. +// +// If you need the implementation of this class generated, please use the following command. +// +// $ bal bindgen [(-cp|--classpath) ...] +// [(-mvn|--maven) ::] +// [(-o|--output) ] +// [--public] +// (...) +// +// E.g. $ bal bindgen org.openqa.selenium.html5.SessionStorage + +import ballerina/jballerina.java; + +# Ballerina class mapping for the Java `org.openqa.selenium.html5.SessionStorage` interface. +@java:Binding {'class: "org.openqa.selenium.html5.SessionStorage"} +public distinct class SessionStorage { + + *java:JObject; + + # The `handle` field that stores the reference to the `org.openqa.selenium.html5.SessionStorage` object. + public handle jObj; + + # The init function of the Ballerina class mapping the `org.openqa.selenium.html5.SessionStorage` Java interface. + # + # + obj - The `handle` value containing the Java reference of the object. + public isolated function init(handle obj) { + self.jObj = obj; + } + + # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.html5.SessionStorage` Java interface. + # + # + return - The `string` form of the Java object instance. + public isolated function toString() returns string { + return java:toString(self.jObj) ?: ""; + } + +} + diff --git a/ballerina/modules/org.openqa.selenium.logging/EventType.bal b/ballerina/modules/org.openqa.selenium.logging/EventType.bal new file mode 100644 index 0000000..9663a03 --- /dev/null +++ b/ballerina/modules/org.openqa.selenium.logging/EventType.bal @@ -0,0 +1,39 @@ +// This is an empty Ballerina class autogenerated to represent the `org.openqa.selenium.logging.EventType` Java interface. +// +// If you need the implementation of this class generated, please use the following command. +// +// $ bal bindgen [(-cp|--classpath) ...] +// [(-mvn|--maven) ::] +// [(-o|--output) ] +// [--public] +// (...) +// +// E.g. $ bal bindgen org.openqa.selenium.logging.EventType + +import ballerina/jballerina.java; + +# Ballerina class mapping for the Java `org.openqa.selenium.logging.EventType` interface. +@java:Binding {'class: "org.openqa.selenium.logging.EventType"} +public distinct class EventType { + + *java:JObject; + + # The `handle` field that stores the reference to the `org.openqa.selenium.logging.EventType` object. + public handle jObj; + + # The init function of the Ballerina class mapping the `org.openqa.selenium.logging.EventType` Java interface. + # + # + obj - The `handle` value containing the Java reference of the object. + public isolated function init(handle obj) { + self.jObj = obj; + } + + # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.logging.EventType` Java interface. + # + # + return - The `string` form of the Java object instance. + public isolated function toString() returns string { + return java:toString(self.jObj) ?: ""; + } + +} + diff --git a/ballerina/modules/org.openqa.selenium.mobile/ConnectionType.bal b/ballerina/modules/org.openqa.selenium.mobile/ConnectionType.bal new file mode 100644 index 0000000..5745d71 --- /dev/null +++ b/ballerina/modules/org.openqa.selenium.mobile/ConnectionType.bal @@ -0,0 +1,39 @@ +// This is an empty Ballerina class autogenerated to represent the `org.openqa.selenium.mobile.NetworkConnection$ConnectionType` Java class. +// +// If you need the implementation of this class generated, please use the following command. +// +// $ bal bindgen [(-cp|--classpath) ...] +// [(-mvn|--maven) ::] +// [(-o|--output) ] +// [--public] +// (...) +// +// E.g. $ bal bindgen org.openqa.selenium.mobile.NetworkConnection\$ConnectionType + +import ballerina/jballerina.java; + +# Ballerina class mapping for the Java `org.openqa.selenium.mobile.NetworkConnection$ConnectionType` class. +@java:Binding {'class: "org.openqa.selenium.mobile.NetworkConnection$ConnectionType"} +public distinct class ConnectionType { + + *java:JObject; + + # The `handle` field that stores the reference to the `org.openqa.selenium.mobile.NetworkConnection$ConnectionType` object. + public handle jObj; + + # The init function of the Ballerina class mapping the `org.openqa.selenium.mobile.NetworkConnection$ConnectionType` Java class. + # + # + obj - The `handle` value containing the Java reference of the object. + public isolated function init(handle obj) { + self.jObj = obj; + } + + # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.mobile.NetworkConnection$ConnectionType` Java class. + # + # + return - The `string` form of the Java object instance. + public isolated function toString() returns string { + return java:toString(self.jObj) ?: ""; + } + +} + diff --git a/ballerina/modules/org.openqa.selenium.print/PrintOptions.bal b/ballerina/modules/org.openqa.selenium.print/PrintOptions.bal new file mode 100644 index 0000000..69b3d06 --- /dev/null +++ b/ballerina/modules/org.openqa.selenium.print/PrintOptions.bal @@ -0,0 +1,39 @@ +// This is an empty Ballerina class autogenerated to represent the `org.openqa.selenium.print.PrintOptions` Java class. +// +// If you need the implementation of this class generated, please use the following command. +// +// $ bal bindgen [(-cp|--classpath) ...] +// [(-mvn|--maven) ::] +// [(-o|--output) ] +// [--public] +// (...) +// +// E.g. $ bal bindgen org.openqa.selenium.print.PrintOptions + +import ballerina/jballerina.java; + +# Ballerina class mapping for the Java `org.openqa.selenium.print.PrintOptions` class. +@java:Binding {'class: "org.openqa.selenium.print.PrintOptions"} +public distinct class PrintOptions { + + *java:JObject; + + # The `handle` field that stores the reference to the `org.openqa.selenium.print.PrintOptions` object. + public handle jObj; + + # The init function of the Ballerina class mapping the `org.openqa.selenium.print.PrintOptions` Java class. + # + # + obj - The `handle` value containing the Java reference of the object. + public isolated function init(handle obj) { + self.jObj = obj; + } + + # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.print.PrintOptions` Java class. + # + # + return - The `string` form of the Java object instance. + public isolated function toString() returns string { + return java:toString(self.jObj) ?: ""; + } + +} + diff --git a/ballerina/modules/org.openqa.selenium.remote.http/ClientConfig.bal b/ballerina/modules/org.openqa.selenium.remote.http/ClientConfig.bal new file mode 100644 index 0000000..18afe78 --- /dev/null +++ b/ballerina/modules/org.openqa.selenium.remote.http/ClientConfig.bal @@ -0,0 +1,39 @@ +// This is an empty Ballerina class autogenerated to represent the `org.openqa.selenium.remote.http.ClientConfig` Java class. +// +// If you need the implementation of this class generated, please use the following command. +// +// $ bal bindgen [(-cp|--classpath) ...] +// [(-mvn|--maven) ::] +// [(-o|--output) ] +// [--public] +// (...) +// +// E.g. $ bal bindgen org.openqa.selenium.remote.http.ClientConfig + +import ballerina/jballerina.java; + +# Ballerina class mapping for the Java `org.openqa.selenium.remote.http.ClientConfig` class. +@java:Binding {'class: "org.openqa.selenium.remote.http.ClientConfig"} +public distinct class ClientConfig { + + *java:JObject; + + # The `handle` field that stores the reference to the `org.openqa.selenium.remote.http.ClientConfig` object. + public handle jObj; + + # The init function of the Ballerina class mapping the `org.openqa.selenium.remote.http.ClientConfig` Java class. + # + # + obj - The `handle` value containing the Java reference of the object. + public isolated function init(handle obj) { + self.jObj = obj; + } + + # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.remote.http.ClientConfig` Java class. + # + # + return - The `string` form of the Java object instance. + public isolated function toString() returns string { + return java:toString(self.jObj) ?: ""; + } + +} + diff --git a/ballerina/modules/org.openqa.selenium.remote.service/DriverService.bal b/ballerina/modules/org.openqa.selenium.remote.service/DriverService.bal new file mode 100644 index 0000000..787ef17 --- /dev/null +++ b/ballerina/modules/org.openqa.selenium.remote.service/DriverService.bal @@ -0,0 +1,39 @@ +// This is an empty Ballerina class autogenerated to represent the `org.openqa.selenium.remote.service.DriverService` Java class. +// +// If you need the implementation of this class generated, please use the following command. +// +// $ bal bindgen [(-cp|--classpath) ...] +// [(-mvn|--maven) ::] +// [(-o|--output) ] +// [--public] +// (...) +// +// E.g. $ bal bindgen org.openqa.selenium.remote.service.DriverService + +import ballerina/jballerina.java; + +# Ballerina class mapping for the Java `org.openqa.selenium.remote.service.DriverService` class. +@java:Binding {'class: "org.openqa.selenium.remote.service.DriverService"} +public distinct class DriverService { + + *java:JObject; + + # The `handle` field that stores the reference to the `org.openqa.selenium.remote.service.DriverService` object. + public handle jObj; + + # The init function of the Ballerina class mapping the `org.openqa.selenium.remote.service.DriverService` Java class. + # + # + obj - The `handle` value containing the Java reference of the object. + public isolated function init(handle obj) { + self.jObj = obj; + } + + # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.remote.service.DriverService` Java class. + # + # + return - The `string` form of the Java object instance. + public isolated function toString() returns string { + return java:toString(self.jObj) ?: ""; + } + +} + diff --git a/ballerina/modules/org.openqa.selenium.remote/CommandExecutor.bal b/ballerina/modules/org.openqa.selenium.remote/CommandExecutor.bal new file mode 100644 index 0000000..6645aed --- /dev/null +++ b/ballerina/modules/org.openqa.selenium.remote/CommandExecutor.bal @@ -0,0 +1,39 @@ +// This is an empty Ballerina class autogenerated to represent the `org.openqa.selenium.remote.CommandExecutor` Java interface. +// +// If you need the implementation of this class generated, please use the following command. +// +// $ bal bindgen [(-cp|--classpath) ...] +// [(-mvn|--maven) ::] +// [(-o|--output) ] +// [--public] +// (...) +// +// E.g. $ bal bindgen org.openqa.selenium.remote.CommandExecutor + +import ballerina/jballerina.java; + +# Ballerina class mapping for the Java `org.openqa.selenium.remote.CommandExecutor` interface. +@java:Binding {'class: "org.openqa.selenium.remote.CommandExecutor"} +public distinct class CommandExecutor { + + *java:JObject; + + # The `handle` field that stores the reference to the `org.openqa.selenium.remote.CommandExecutor` object. + public handle jObj; + + # The init function of the Ballerina class mapping the `org.openqa.selenium.remote.CommandExecutor` Java interface. + # + # + obj - The `handle` value containing the Java reference of the object. + public isolated function init(handle obj) { + self.jObj = obj; + } + + # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.remote.CommandExecutor` Java interface. + # + # + return - The `string` form of the Java object instance. + public isolated function toString() returns string { + return java:toString(self.jObj) ?: ""; + } + +} + diff --git a/ballerina/modules/org.openqa.selenium.remote/ErrorHandler.bal b/ballerina/modules/org.openqa.selenium.remote/ErrorHandler.bal new file mode 100644 index 0000000..6b87b65 --- /dev/null +++ b/ballerina/modules/org.openqa.selenium.remote/ErrorHandler.bal @@ -0,0 +1,39 @@ +// This is an empty Ballerina class autogenerated to represent the `org.openqa.selenium.remote.ErrorHandler` Java class. +// +// If you need the implementation of this class generated, please use the following command. +// +// $ bal bindgen [(-cp|--classpath) ...] +// [(-mvn|--maven) ::] +// [(-o|--output) ] +// [--public] +// (...) +// +// E.g. $ bal bindgen org.openqa.selenium.remote.ErrorHandler + +import ballerina/jballerina.java; + +# Ballerina class mapping for the Java `org.openqa.selenium.remote.ErrorHandler` class. +@java:Binding {'class: "org.openqa.selenium.remote.ErrorHandler"} +public distinct class ErrorHandler { + + *java:JObject; + + # The `handle` field that stores the reference to the `org.openqa.selenium.remote.ErrorHandler` object. + public handle jObj; + + # The init function of the Ballerina class mapping the `org.openqa.selenium.remote.ErrorHandler` Java class. + # + # + obj - The `handle` value containing the Java reference of the object. + public isolated function init(handle obj) { + self.jObj = obj; + } + + # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.remote.ErrorHandler` Java class. + # + # + return - The `string` form of the Java object instance. + public isolated function toString() returns string { + return java:toString(self.jObj) ?: ""; + } + +} + diff --git a/ballerina/modules/org.openqa.selenium.remote/FileDetector.bal b/ballerina/modules/org.openqa.selenium.remote/FileDetector.bal new file mode 100644 index 0000000..2031744 --- /dev/null +++ b/ballerina/modules/org.openqa.selenium.remote/FileDetector.bal @@ -0,0 +1,39 @@ +// This is an empty Ballerina class autogenerated to represent the `org.openqa.selenium.remote.FileDetector` Java interface. +// +// If you need the implementation of this class generated, please use the following command. +// +// $ bal bindgen [(-cp|--classpath) ...] +// [(-mvn|--maven) ::] +// [(-o|--output) ] +// [--public] +// (...) +// +// E.g. $ bal bindgen org.openqa.selenium.remote.FileDetector + +import ballerina/jballerina.java; + +# Ballerina class mapping for the Java `org.openqa.selenium.remote.FileDetector` interface. +@java:Binding {'class: "org.openqa.selenium.remote.FileDetector"} +public distinct class FileDetector { + + *java:JObject; + + # The `handle` field that stores the reference to the `org.openqa.selenium.remote.FileDetector` object. + public handle jObj; + + # The init function of the Ballerina class mapping the `org.openqa.selenium.remote.FileDetector` Java interface. + # + # + obj - The `handle` value containing the Java reference of the object. + public isolated function init(handle obj) { + self.jObj = obj; + } + + # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.remote.FileDetector` Java interface. + # + # + return - The `string` form of the Java object instance. + public isolated function toString() returns string { + return java:toString(self.jObj) ?: ""; + } + +} + diff --git a/ballerina/modules/org.openqa.selenium.remote/Network.bal b/ballerina/modules/org.openqa.selenium.remote/Network.bal new file mode 100644 index 0000000..e1e307d --- /dev/null +++ b/ballerina/modules/org.openqa.selenium.remote/Network.bal @@ -0,0 +1,39 @@ +// This is an empty Ballerina class autogenerated to represent the `org.openqa.selenium.remote.Network` Java interface. +// +// If you need the implementation of this class generated, please use the following command. +// +// $ bal bindgen [(-cp|--classpath) ...] +// [(-mvn|--maven) ::] +// [(-o|--output) ] +// [--public] +// (...) +// +// E.g. $ bal bindgen org.openqa.selenium.remote.Network + +import ballerina/jballerina.java; + +# Ballerina class mapping for the Java `org.openqa.selenium.remote.Network` interface. +@java:Binding {'class: "org.openqa.selenium.remote.Network"} +public distinct class Network { + + *java:JObject; + + # The `handle` field that stores the reference to the `org.openqa.selenium.remote.Network` object. + public handle jObj; + + # The init function of the Ballerina class mapping the `org.openqa.selenium.remote.Network` Java interface. + # + # + obj - The `handle` value containing the Java reference of the object. + public isolated function init(handle obj) { + self.jObj = obj; + } + + # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.remote.Network` Java interface. + # + # + return - The `string` form of the Java object instance. + public isolated function toString() returns string { + return java:toString(self.jObj) ?: ""; + } + +} + diff --git a/ballerina/modules/org.openqa.selenium.remote/RemoteWebDriver.bal b/ballerina/modules/org.openqa.selenium.remote/RemoteWebDriver.bal new file mode 100644 index 0000000..edc5e52 --- /dev/null +++ b/ballerina/modules/org.openqa.selenium.remote/RemoteWebDriver.bal @@ -0,0 +1,872 @@ +import selenium.java.io as javaio; +import selenium.java.lang as javalang; +import selenium.java.net as javanet; +import selenium.java.nio.file as javaniofile; +import selenium.java.util as javautil; +import selenium.java.util.'function as javautilfunction; +import selenium.java.util.logging as javautillogging; +import selenium.org.openqa.selenium as orgopenqaselenium; +import selenium.org.openqa.selenium.federatedcredentialmanagement as orgopenqaseleniumfederatedcredentialmanagement; +import selenium.org.openqa.selenium.print as orgopenqaseleniumprint; +import selenium.org.openqa.selenium.virtualauthenticator as orgopenqaseleniumvirtualauthenticator; + +import ballerina/jballerina.java; +import ballerina/jballerina.java.arrays as jarrays; + +# Ballerina class mapping for the Java `org.openqa.selenium.remote.RemoteWebDriver` class. +@java:Binding {'class: "org.openqa.selenium.remote.RemoteWebDriver"} +public distinct class RemoteWebDriver { + + *java:JObject; + *javalang:Object; + + # The `handle` field that stores the reference to the `org.openqa.selenium.remote.RemoteWebDriver` object. + public handle jObj; + + # The init function of the Ballerina class mapping the `org.openqa.selenium.remote.RemoteWebDriver` Java class. + # + # + obj - The `handle` value containing the Java reference of the object. + public isolated function init(handle obj) { + self.jObj = obj; + } + + # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.remote.RemoteWebDriver` Java class. + # + # + return - The `string` form of the Java object instance. + public isolated function toString() returns string { + return java:toString(self.jObj) ?: ""; + } + + # The function that maps to the `addVirtualAuthenticator` method of `org.openqa.selenium.remote.RemoteWebDriver`. + # + # + options - The `orgopenqaseleniumvirtualauthenticator:VirtualAuthenticatorOptions` value required to map with the Java method parameter. + # + return - The `orgopenqaseleniumvirtualauthenticator:VirtualAuthenticator` value returning from the Java mapping. + public isolated function addVirtualAuthenticator(orgopenqaseleniumvirtualauthenticator:VirtualAuthenticatorOptions options) returns orgopenqaseleniumvirtualauthenticator:VirtualAuthenticator { + handle externalObj = org_openqa_selenium_remote_RemoteWebDriver_addVirtualAuthenticator(self.jObj, options.jObj); + orgopenqaseleniumvirtualauthenticator:VirtualAuthenticator newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `close` method of `org.openqa.selenium.remote.RemoteWebDriver`. + public isolated function close() { + org_openqa_selenium_remote_RemoteWebDriver_close(self.jObj); + } + + # The function that maps to the `deleteDownloadableFiles` method of `org.openqa.selenium.remote.RemoteWebDriver`. + public isolated function deleteDownloadableFiles() { + org_openqa_selenium_remote_RemoteWebDriver_deleteDownloadableFiles(self.jObj); + } + + # The function that maps to the `downloadFile` method of `org.openqa.selenium.remote.RemoteWebDriver`. + # + # + fileName - The `string` value required to map with the Java method parameter. + # + targetLocation - The `javaniofile:Path` value required to map with the Java method parameter. + # + return - The `javaio:IOException` value returning from the Java mapping. + public isolated function downloadFile(string fileName, javaniofile:Path targetLocation) returns javaio:IOException? { + error|() externalObj = org_openqa_selenium_remote_RemoteWebDriver_downloadFile(self.jObj, java:fromString(fileName), targetLocation.jObj); + if (externalObj is error) { + javaio:IOException e = error javaio:IOException(javaio:IOEXCEPTION, externalObj, message = externalObj.message()); + return e; + } + } + + # The function that maps to the `equals` method of `org.openqa.selenium.remote.RemoteWebDriver`. + # + # + arg0 - The `javalang:Object` value required to map with the Java method parameter. + # + return - The `boolean` value returning from the Java mapping. + public isolated function 'equals(javalang:Object arg0) returns boolean { + return org_openqa_selenium_remote_RemoteWebDriver_equals(self.jObj, arg0.jObj); + } + + # The function that maps to the `executeAsyncScript` method of `org.openqa.selenium.remote.RemoteWebDriver`. + # + # + script - The `string` value required to map with the Java method parameter. + # + args - The `javalang:Object[]` value required to map with the Java method parameter. + # + return - The `javalang:Object` value returning from the Java mapping. + public isolated function executeAsyncScript(string script, javalang:Object[] args) returns javalang:Object|error { + handle externalObj = org_openqa_selenium_remote_RemoteWebDriver_executeAsyncScript(self.jObj, java:fromString(script), check jarrays:toHandle(args, "java.lang.Object")); + javalang:Object newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `executeScript` method of `org.openqa.selenium.remote.RemoteWebDriver`. + # + # + 'key - The `orgopenqaselenium:ScriptKey` value required to map with the Java method parameter. + # + args - The `javalang:Object[]` value required to map with the Java method parameter. + # + return - The `javalang:Object` value returning from the Java mapping. + public isolated function executeScript(orgopenqaselenium:ScriptKey 'key, javalang:Object[] args) returns javalang:Object|error { + handle externalObj = org_openqa_selenium_remote_RemoteWebDriver_executeScript(self.jObj, 'key.jObj, check jarrays:toHandle(args, "java.lang.Object")); + javalang:Object newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `executeScript` method of `org.openqa.selenium.remote.RemoteWebDriver`. + # + # + script - The `string` value required to map with the Java method parameter. + # + args - The `javalang:Object[]` value required to map with the Java method parameter. + # + return - The `javalang:Object` value returning from the Java mapping. + public isolated function executeScript2(string script, javalang:Object[] args) returns javalang:Object|error { + handle externalObj = org_openqa_selenium_remote_RemoteWebDriver_executeScript2(self.jObj, java:fromString(script), check jarrays:toHandle(args, "java.lang.Object")); + javalang:Object newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `findElement` method of `org.openqa.selenium.remote.RemoteWebDriver`. + # + # + locator - The `orgopenqaselenium:By` value required to map with the Java method parameter. + # + return - The `orgopenqaselenium:WebElement` value returning from the Java mapping. + public isolated function findElement(orgopenqaselenium:By locator) returns orgopenqaselenium:WebElement { + handle externalObj = org_openqa_selenium_remote_RemoteWebDriver_findElement(self.jObj, locator.jObj); + orgopenqaselenium:WebElement newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `findElements` method of `org.openqa.selenium.remote.RemoteWebDriver`. + # + # + locator - The `orgopenqaselenium:By` value required to map with the Java method parameter. + # + return - The `javautil:List` value returning from the Java mapping. + public isolated function findElements(orgopenqaselenium:By locator) returns javautil:List { + handle externalObj = org_openqa_selenium_remote_RemoteWebDriver_findElements(self.jObj, locator.jObj); + javautil:List newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `findElements` method of `org.openqa.selenium.remote.RemoteWebDriver`. + # + # + context - The `orgopenqaselenium:SearchContext` value required to map with the Java method parameter. + # + findCommand - The `javautilfunction:BiFunction` value required to map with the Java method parameter. + # + locator - The `orgopenqaselenium:By` value required to map with the Java method parameter. + # + return - The `javautil:List` value returning from the Java mapping. + public isolated function findElements2(orgopenqaselenium:SearchContext context, javautilfunction:BiFunction findCommand, orgopenqaselenium:By locator) returns javautil:List { + handle externalObj = org_openqa_selenium_remote_RemoteWebDriver_findElements2(self.jObj, context.jObj, findCommand.jObj, locator.jObj); + javautil:List newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `get` method of `org.openqa.selenium.remote.RemoteWebDriver`. + # + # + url - The `string` value required to map with the Java method parameter. + public isolated function get(string url) { + org_openqa_selenium_remote_RemoteWebDriver_get(self.jObj, java:fromString(url)); + } + + # The function that maps to the `getCapabilities` method of `org.openqa.selenium.remote.RemoteWebDriver`. + # + # + return - The `orgopenqaselenium:Capabilities` value returning from the Java mapping. + public isolated function getCapabilities() returns orgopenqaselenium:Capabilities { + handle externalObj = org_openqa_selenium_remote_RemoteWebDriver_getCapabilities(self.jObj); + orgopenqaselenium:Capabilities newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getClass` method of `org.openqa.selenium.remote.RemoteWebDriver`. + # + # + return - The `javalang:Class` value returning from the Java mapping. + public isolated function getClass() returns javalang:Class { + handle externalObj = org_openqa_selenium_remote_RemoteWebDriver_getClass(self.jObj); + javalang:Class newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getCommandExecutor` method of `org.openqa.selenium.remote.RemoteWebDriver`. + # + # + return - The `CommandExecutor` value returning from the Java mapping. + public isolated function getCommandExecutor() returns CommandExecutor { + handle externalObj = org_openqa_selenium_remote_RemoteWebDriver_getCommandExecutor(self.jObj); + CommandExecutor newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getCurrentUrl` method of `org.openqa.selenium.remote.RemoteWebDriver`. + # + # + return - The `string` value returning from the Java mapping. + public isolated function getCurrentUrl() returns string { + return java:toString(org_openqa_selenium_remote_RemoteWebDriver_getCurrentUrl(self.jObj)) ?: ""; + } + + # The function that maps to the `getDownloadableFiles` method of `org.openqa.selenium.remote.RemoteWebDriver`. + # + # + return - The `javautil:List` value returning from the Java mapping. + public isolated function getDownloadableFiles() returns javautil:List { + handle externalObj = org_openqa_selenium_remote_RemoteWebDriver_getDownloadableFiles(self.jObj); + javautil:List newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getErrorHandler` method of `org.openqa.selenium.remote.RemoteWebDriver`. + # + # + return - The `ErrorHandler` value returning from the Java mapping. + public isolated function getErrorHandler() returns ErrorHandler { + handle externalObj = org_openqa_selenium_remote_RemoteWebDriver_getErrorHandler(self.jObj); + ErrorHandler newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getFederatedCredentialManagementDialog` method of `org.openqa.selenium.remote.RemoteWebDriver`. + # + # + return - The `orgopenqaseleniumfederatedcredentialmanagement:FederatedCredentialManagementDialog` value returning from the Java mapping. + public isolated function getFederatedCredentialManagementDialog() returns orgopenqaseleniumfederatedcredentialmanagement:FederatedCredentialManagementDialog { + handle externalObj = org_openqa_selenium_remote_RemoteWebDriver_getFederatedCredentialManagementDialog(self.jObj); + orgopenqaseleniumfederatedcredentialmanagement:FederatedCredentialManagementDialog newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getFileDetector` method of `org.openqa.selenium.remote.RemoteWebDriver`. + # + # + return - The `FileDetector` value returning from the Java mapping. + public isolated function getFileDetector() returns FileDetector { + handle externalObj = org_openqa_selenium_remote_RemoteWebDriver_getFileDetector(self.jObj); + FileDetector newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getPageSource` method of `org.openqa.selenium.remote.RemoteWebDriver`. + # + # + return - The `string` value returning from the Java mapping. + public isolated function getPageSource() returns string { + return java:toString(org_openqa_selenium_remote_RemoteWebDriver_getPageSource(self.jObj)) ?: ""; + } + + # The function that maps to the `getPinnedScripts` method of `org.openqa.selenium.remote.RemoteWebDriver`. + # + # + return - The `javautil:Set` value returning from the Java mapping. + public isolated function getPinnedScripts() returns javautil:Set { + handle externalObj = org_openqa_selenium_remote_RemoteWebDriver_getPinnedScripts(self.jObj); + javautil:Set newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getScreenshotAs` method of `org.openqa.selenium.remote.RemoteWebDriver`. + # + # + outputType - The `orgopenqaselenium:OutputType` value required to map with the Java method parameter. + # + return - The `javalang:Object` value returning from the Java mapping. + public isolated function getScreenshotAs(orgopenqaselenium:OutputType outputType) returns javalang:Object { + handle externalObj = org_openqa_selenium_remote_RemoteWebDriver_getScreenshotAs(self.jObj, outputType.jObj); + javalang:Object newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getSessionId` method of `org.openqa.selenium.remote.RemoteWebDriver`. + # + # + return - The `SessionId` value returning from the Java mapping. + public isolated function getSessionId() returns SessionId { + handle externalObj = org_openqa_selenium_remote_RemoteWebDriver_getSessionId(self.jObj); + SessionId newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getTitle` method of `org.openqa.selenium.remote.RemoteWebDriver`. + # + # + return - The `string` value returning from the Java mapping. + public isolated function getTitle() returns string { + return java:toString(org_openqa_selenium_remote_RemoteWebDriver_getTitle(self.jObj)) ?: ""; + } + + # The function that maps to the `getWindowHandle` method of `org.openqa.selenium.remote.RemoteWebDriver`. + # + # + return - The `string` value returning from the Java mapping. + public isolated function getWindowHandle() returns string { + return java:toString(org_openqa_selenium_remote_RemoteWebDriver_getWindowHandle(self.jObj)) ?: ""; + } + + # The function that maps to the `getWindowHandles` method of `org.openqa.selenium.remote.RemoteWebDriver`. + # + # + return - The `javautil:Set` value returning from the Java mapping. + public isolated function getWindowHandles() returns javautil:Set { + handle externalObj = org_openqa_selenium_remote_RemoteWebDriver_getWindowHandles(self.jObj); + javautil:Set newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `hashCode` method of `org.openqa.selenium.remote.RemoteWebDriver`. + # + # + return - The `int` value returning from the Java mapping. + public isolated function hashCode() returns int { + return org_openqa_selenium_remote_RemoteWebDriver_hashCode(self.jObj); + } + + # The function that maps to the `manage` method of `org.openqa.selenium.remote.RemoteWebDriver`. + # + # + return - The `orgopenqaselenium:Options` value returning from the Java mapping. + public isolated function manage() returns orgopenqaselenium:Options { + handle externalObj = org_openqa_selenium_remote_RemoteWebDriver_manage(self.jObj); + orgopenqaselenium:Options newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `navigate` method of `org.openqa.selenium.remote.RemoteWebDriver`. + # + # + return - The `orgopenqaselenium:Navigation` value returning from the Java mapping. + public isolated function navigate() returns orgopenqaselenium:Navigation { + handle externalObj = org_openqa_selenium_remote_RemoteWebDriver_navigate(self.jObj); + orgopenqaselenium:Navigation newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `network` method of `org.openqa.selenium.remote.RemoteWebDriver`. + # + # + return - The `Network` value returning from the Java mapping. + public isolated function network() returns Network { + handle externalObj = org_openqa_selenium_remote_RemoteWebDriver_network(self.jObj); + Network newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `notify` method of `org.openqa.selenium.remote.RemoteWebDriver`. + public isolated function notify() { + org_openqa_selenium_remote_RemoteWebDriver_notify(self.jObj); + } + + # The function that maps to the `notifyAll` method of `org.openqa.selenium.remote.RemoteWebDriver`. + public isolated function notifyAll() { + org_openqa_selenium_remote_RemoteWebDriver_notifyAll(self.jObj); + } + + # The function that maps to the `perform` method of `org.openqa.selenium.remote.RemoteWebDriver`. + # + # + actions - The `javautil:Collection` value required to map with the Java method parameter. + public isolated function perform(javautil:Collection actions) { + org_openqa_selenium_remote_RemoteWebDriver_perform(self.jObj, actions.jObj); + } + + # The function that maps to the `pin` method of `org.openqa.selenium.remote.RemoteWebDriver`. + # + # + script - The `string` value required to map with the Java method parameter. + # + return - The `orgopenqaselenium:ScriptKey` value returning from the Java mapping. + public isolated function pin(string script) returns orgopenqaselenium:ScriptKey { + handle externalObj = org_openqa_selenium_remote_RemoteWebDriver_pin(self.jObj, java:fromString(script)); + orgopenqaselenium:ScriptKey newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `print` method of `org.openqa.selenium.remote.RemoteWebDriver`. + # + # + printOptions - The `orgopenqaseleniumprint:PrintOptions` value required to map with the Java method parameter. + # + return - The `orgopenqaselenium:Pdf` value returning from the Java mapping. + public isolated function print(orgopenqaseleniumprint:PrintOptions printOptions) returns orgopenqaselenium:Pdf { + handle externalObj = org_openqa_selenium_remote_RemoteWebDriver_print(self.jObj, printOptions.jObj); + orgopenqaselenium:Pdf newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `quit` method of `org.openqa.selenium.remote.RemoteWebDriver`. + public isolated function quit() { + org_openqa_selenium_remote_RemoteWebDriver_quit(self.jObj); + } + + # The function that maps to the `removeVirtualAuthenticator` method of `org.openqa.selenium.remote.RemoteWebDriver`. + # + # + authenticator - The `orgopenqaseleniumvirtualauthenticator:VirtualAuthenticator` value required to map with the Java method parameter. + public isolated function removeVirtualAuthenticator(orgopenqaseleniumvirtualauthenticator:VirtualAuthenticator authenticator) { + org_openqa_selenium_remote_RemoteWebDriver_removeVirtualAuthenticator(self.jObj, authenticator.jObj); + } + + # The function that maps to the `requireDownloadsEnabled` method of `org.openqa.selenium.remote.RemoteWebDriver`. + # + # + capabilities - The `orgopenqaselenium:Capabilities` value required to map with the Java method parameter. + public isolated function requireDownloadsEnabled(orgopenqaselenium:Capabilities capabilities) { + org_openqa_selenium_remote_RemoteWebDriver_requireDownloadsEnabled(self.jObj, capabilities.jObj); + } + + # The function that maps to the `resetCooldown` method of `org.openqa.selenium.remote.RemoteWebDriver`. + public isolated function resetCooldown() { + org_openqa_selenium_remote_RemoteWebDriver_resetCooldown(self.jObj); + } + + # The function that maps to the `resetInputState` method of `org.openqa.selenium.remote.RemoteWebDriver`. + public isolated function resetInputState() { + org_openqa_selenium_remote_RemoteWebDriver_resetInputState(self.jObj); + } + + # The function that maps to the `script` method of `org.openqa.selenium.remote.RemoteWebDriver`. + # + # + return - The `Script` value returning from the Java mapping. + public isolated function script() returns Script { + handle externalObj = org_openqa_selenium_remote_RemoteWebDriver_script(self.jObj); + Script newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `setDelayEnabled` method of `org.openqa.selenium.remote.RemoteWebDriver`. + # + # + enabled - The `boolean` value required to map with the Java method parameter. + public isolated function setDelayEnabled(boolean enabled) { + org_openqa_selenium_remote_RemoteWebDriver_setDelayEnabled(self.jObj, enabled); + } + + # The function that maps to the `setErrorHandler` method of `org.openqa.selenium.remote.RemoteWebDriver`. + # + # + handler - The `ErrorHandler` value required to map with the Java method parameter. + public isolated function setErrorHandler(ErrorHandler handler) { + org_openqa_selenium_remote_RemoteWebDriver_setErrorHandler(self.jObj, handler.jObj); + } + + # The function that maps to the `setFileDetector` method of `org.openqa.selenium.remote.RemoteWebDriver`. + # + # + detector - The `FileDetector` value required to map with the Java method parameter. + public isolated function setFileDetector(FileDetector detector) { + org_openqa_selenium_remote_RemoteWebDriver_setFileDetector(self.jObj, detector.jObj); + } + + # The function that maps to the `setLogLevel` method of `org.openqa.selenium.remote.RemoteWebDriver`. + # + # + level - The `javautillogging:Level` value required to map with the Java method parameter. + public isolated function setLogLevel(javautillogging:Level level) { + org_openqa_selenium_remote_RemoteWebDriver_setLogLevel(self.jObj, level.jObj); + } + + # The function that maps to the `switchTo` method of `org.openqa.selenium.remote.RemoteWebDriver`. + # + # + return - The `orgopenqaselenium:TargetLocator` value returning from the Java mapping. + public isolated function switchTo() returns orgopenqaselenium:TargetLocator { + handle externalObj = org_openqa_selenium_remote_RemoteWebDriver_switchTo(self.jObj); + orgopenqaselenium:TargetLocator newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `unpin` method of `org.openqa.selenium.remote.RemoteWebDriver`. + # + # + 'key - The `orgopenqaselenium:ScriptKey` value required to map with the Java method parameter. + public isolated function unpin(orgopenqaselenium:ScriptKey 'key) { + org_openqa_selenium_remote_RemoteWebDriver_unpin(self.jObj, 'key.jObj); + } + + # The function that maps to the `wait` method of `org.openqa.selenium.remote.RemoteWebDriver`. + # + # + return - The `javalang:InterruptedException` value returning from the Java mapping. + public isolated function 'wait() returns javalang:InterruptedException? { + error|() externalObj = org_openqa_selenium_remote_RemoteWebDriver_wait(self.jObj); + if (externalObj is error) { + javalang:InterruptedException e = error javalang:InterruptedException(javalang:INTERRUPTEDEXCEPTION, externalObj, message = externalObj.message()); + return e; + } + } + + # The function that maps to the `wait` method of `org.openqa.selenium.remote.RemoteWebDriver`. + # + # + arg0 - The `int` value required to map with the Java method parameter. + # + return - The `javalang:InterruptedException` value returning from the Java mapping. + public isolated function wait2(int arg0) returns javalang:InterruptedException? { + error|() externalObj = org_openqa_selenium_remote_RemoteWebDriver_wait2(self.jObj, arg0); + if (externalObj is error) { + javalang:InterruptedException e = error javalang:InterruptedException(javalang:INTERRUPTEDEXCEPTION, externalObj, message = externalObj.message()); + return e; + } + } + + # The function that maps to the `wait` method of `org.openqa.selenium.remote.RemoteWebDriver`. + # + # + arg0 - The `int` value required to map with the Java method parameter. + # + arg1 - The `int` value required to map with the Java method parameter. + # + return - The `javalang:InterruptedException` value returning from the Java mapping. + public isolated function wait3(int arg0, int arg1) returns javalang:InterruptedException? { + error|() externalObj = org_openqa_selenium_remote_RemoteWebDriver_wait3(self.jObj, arg0, arg1); + if (externalObj is error) { + javalang:InterruptedException e = error javalang:InterruptedException(javalang:INTERRUPTEDEXCEPTION, externalObj, message = externalObj.message()); + return e; + } + } + +} + +# The constructor function to generate an object of `org.openqa.selenium.remote.RemoteWebDriver`. +# +# + capabilities - The `orgopenqaselenium:Capabilities` value required to map with the Java constructor parameter. +# + return - The new `RemoteWebDriver` class generated. +public isolated function newRemoteWebDriver1(orgopenqaselenium:Capabilities capabilities) returns RemoteWebDriver { + handle externalObj = org_openqa_selenium_remote_RemoteWebDriver_newRemoteWebDriver1(capabilities.jObj); + RemoteWebDriver newObj = new (externalObj); + return newObj; +} + +# The constructor function to generate an object of `org.openqa.selenium.remote.RemoteWebDriver`. +# +# + capabilities - The `orgopenqaselenium:Capabilities` value required to map with the Java constructor parameter. +# + enableTracing - The `boolean` value required to map with the Java constructor parameter. +# + return - The new `RemoteWebDriver` class generated. +public isolated function newRemoteWebDriver2(orgopenqaselenium:Capabilities capabilities, boolean enableTracing) returns RemoteWebDriver { + handle externalObj = org_openqa_selenium_remote_RemoteWebDriver_newRemoteWebDriver2(capabilities.jObj, enableTracing); + RemoteWebDriver newObj = new (externalObj); + return newObj; +} + +# The constructor function to generate an object of `org.openqa.selenium.remote.RemoteWebDriver`. +# +# + executor - The `CommandExecutor` value required to map with the Java constructor parameter. +# + capabilities - The `orgopenqaselenium:Capabilities` value required to map with the Java constructor parameter. +# + return - The new `RemoteWebDriver` class generated. +public isolated function newRemoteWebDriver3(CommandExecutor executor, orgopenqaselenium:Capabilities capabilities) returns RemoteWebDriver { + handle externalObj = org_openqa_selenium_remote_RemoteWebDriver_newRemoteWebDriver3(executor.jObj, capabilities.jObj); + RemoteWebDriver newObj = new (externalObj); + return newObj; +} + +# The constructor function to generate an object of `org.openqa.selenium.remote.RemoteWebDriver`. +# +# + remoteAddress - The `javanet:URL` value required to map with the Java constructor parameter. +# + capabilities - The `orgopenqaselenium:Capabilities` value required to map with the Java constructor parameter. +# + return - The new `RemoteWebDriver` class generated. +public isolated function newRemoteWebDriver4(javanet:URL remoteAddress, orgopenqaselenium:Capabilities capabilities) returns RemoteWebDriver { + handle externalObj = org_openqa_selenium_remote_RemoteWebDriver_newRemoteWebDriver4(remoteAddress.jObj, capabilities.jObj); + RemoteWebDriver newObj = new (externalObj); + return newObj; +} + +# The constructor function to generate an object of `org.openqa.selenium.remote.RemoteWebDriver`. +# +# + remoteAddress - The `javanet:URL` value required to map with the Java constructor parameter. +# + capabilities - The `orgopenqaselenium:Capabilities` value required to map with the Java constructor parameter. +# + enableTracing - The `boolean` value required to map with the Java constructor parameter. +# + return - The new `RemoteWebDriver` class generated. +public isolated function newRemoteWebDriver5(javanet:URL remoteAddress, orgopenqaselenium:Capabilities capabilities, boolean enableTracing) returns RemoteWebDriver { + handle externalObj = org_openqa_selenium_remote_RemoteWebDriver_newRemoteWebDriver5(remoteAddress.jObj, capabilities.jObj, enableTracing); + RemoteWebDriver newObj = new (externalObj); + return newObj; +} + +# The function that maps to the `builder` method of `org.openqa.selenium.remote.RemoteWebDriver`. +# +# + return - The `RemoteWebDriverBuilder` value returning from the Java mapping. +public isolated function RemoteWebDriver_builder() returns RemoteWebDriverBuilder { + handle externalObj = org_openqa_selenium_remote_RemoteWebDriver_builder(); + RemoteWebDriverBuilder newObj = new (externalObj); + return newObj; +} + +isolated function org_openqa_selenium_remote_RemoteWebDriver_addVirtualAuthenticator(handle receiver, handle options) returns handle = @java:Method { + name: "addVirtualAuthenticator", + 'class: "org.openqa.selenium.remote.RemoteWebDriver", + paramTypes: ["org.openqa.selenium.virtualauthenticator.VirtualAuthenticatorOptions"] +} external; + +isolated function org_openqa_selenium_remote_RemoteWebDriver_builder() returns handle = @java:Method { + name: "builder", + 'class: "org.openqa.selenium.remote.RemoteWebDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_remote_RemoteWebDriver_close(handle receiver) = @java:Method { + name: "close", + 'class: "org.openqa.selenium.remote.RemoteWebDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_remote_RemoteWebDriver_deleteDownloadableFiles(handle receiver) = @java:Method { + name: "deleteDownloadableFiles", + 'class: "org.openqa.selenium.remote.RemoteWebDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_remote_RemoteWebDriver_downloadFile(handle receiver, handle fileName, handle targetLocation) returns error? = @java:Method { + name: "downloadFile", + 'class: "org.openqa.selenium.remote.RemoteWebDriver", + paramTypes: ["java.lang.String", "java.nio.file.Path"] +} external; + +isolated function org_openqa_selenium_remote_RemoteWebDriver_equals(handle receiver, handle arg0) returns boolean = @java:Method { + name: "equals", + 'class: "org.openqa.selenium.remote.RemoteWebDriver", + paramTypes: ["java.lang.Object"] +} external; + +isolated function org_openqa_selenium_remote_RemoteWebDriver_executeAsyncScript(handle receiver, handle script, handle args) returns handle = @java:Method { + name: "executeAsyncScript", + 'class: "org.openqa.selenium.remote.RemoteWebDriver", + paramTypes: ["java.lang.String", "[Ljava.lang.Object;"] +} external; + +isolated function org_openqa_selenium_remote_RemoteWebDriver_executeScript(handle receiver, handle 'key, handle args) returns handle = @java:Method { + name: "executeScript", + 'class: "org.openqa.selenium.remote.RemoteWebDriver", + paramTypes: ["org.openqa.selenium.ScriptKey", "[Ljava.lang.Object;"] +} external; + +isolated function org_openqa_selenium_remote_RemoteWebDriver_executeScript2(handle receiver, handle script, handle args) returns handle = @java:Method { + name: "executeScript", + 'class: "org.openqa.selenium.remote.RemoteWebDriver", + paramTypes: ["java.lang.String", "[Ljava.lang.Object;"] +} external; + +isolated function org_openqa_selenium_remote_RemoteWebDriver_findElement(handle receiver, handle locator) returns handle = @java:Method { + name: "findElement", + 'class: "org.openqa.selenium.remote.RemoteWebDriver", + paramTypes: ["org.openqa.selenium.By"] +} external; + +isolated function org_openqa_selenium_remote_RemoteWebDriver_findElements(handle receiver, handle locator) returns handle = @java:Method { + name: "findElements", + 'class: "org.openqa.selenium.remote.RemoteWebDriver", + paramTypes: ["org.openqa.selenium.By"] +} external; + +isolated function org_openqa_selenium_remote_RemoteWebDriver_findElements2(handle receiver, handle context, handle findCommand, handle locator) returns handle = @java:Method { + name: "findElements", + 'class: "org.openqa.selenium.remote.RemoteWebDriver", + paramTypes: ["org.openqa.selenium.SearchContext", "java.util.function.BiFunction", "org.openqa.selenium.By"] +} external; + +isolated function org_openqa_selenium_remote_RemoteWebDriver_get(handle receiver, handle url) = @java:Method { + name: "get", + 'class: "org.openqa.selenium.remote.RemoteWebDriver", + paramTypes: ["java.lang.String"] +} external; + +isolated function org_openqa_selenium_remote_RemoteWebDriver_getCapabilities(handle receiver) returns handle = @java:Method { + name: "getCapabilities", + 'class: "org.openqa.selenium.remote.RemoteWebDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_remote_RemoteWebDriver_getClass(handle receiver) returns handle = @java:Method { + name: "getClass", + 'class: "org.openqa.selenium.remote.RemoteWebDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_remote_RemoteWebDriver_getCommandExecutor(handle receiver) returns handle = @java:Method { + name: "getCommandExecutor", + 'class: "org.openqa.selenium.remote.RemoteWebDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_remote_RemoteWebDriver_getCurrentUrl(handle receiver) returns handle = @java:Method { + name: "getCurrentUrl", + 'class: "org.openqa.selenium.remote.RemoteWebDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_remote_RemoteWebDriver_getDownloadableFiles(handle receiver) returns handle = @java:Method { + name: "getDownloadableFiles", + 'class: "org.openqa.selenium.remote.RemoteWebDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_remote_RemoteWebDriver_getErrorHandler(handle receiver) returns handle = @java:Method { + name: "getErrorHandler", + 'class: "org.openqa.selenium.remote.RemoteWebDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_remote_RemoteWebDriver_getFederatedCredentialManagementDialog(handle receiver) returns handle = @java:Method { + name: "getFederatedCredentialManagementDialog", + 'class: "org.openqa.selenium.remote.RemoteWebDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_remote_RemoteWebDriver_getFileDetector(handle receiver) returns handle = @java:Method { + name: "getFileDetector", + 'class: "org.openqa.selenium.remote.RemoteWebDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_remote_RemoteWebDriver_getPageSource(handle receiver) returns handle = @java:Method { + name: "getPageSource", + 'class: "org.openqa.selenium.remote.RemoteWebDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_remote_RemoteWebDriver_getPinnedScripts(handle receiver) returns handle = @java:Method { + name: "getPinnedScripts", + 'class: "org.openqa.selenium.remote.RemoteWebDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_remote_RemoteWebDriver_getScreenshotAs(handle receiver, handle outputType) returns handle = @java:Method { + name: "getScreenshotAs", + 'class: "org.openqa.selenium.remote.RemoteWebDriver", + paramTypes: ["org.openqa.selenium.OutputType"] +} external; + +isolated function org_openqa_selenium_remote_RemoteWebDriver_getSessionId(handle receiver) returns handle = @java:Method { + name: "getSessionId", + 'class: "org.openqa.selenium.remote.RemoteWebDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_remote_RemoteWebDriver_getTitle(handle receiver) returns handle = @java:Method { + name: "getTitle", + 'class: "org.openqa.selenium.remote.RemoteWebDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_remote_RemoteWebDriver_getWindowHandle(handle receiver) returns handle = @java:Method { + name: "getWindowHandle", + 'class: "org.openqa.selenium.remote.RemoteWebDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_remote_RemoteWebDriver_getWindowHandles(handle receiver) returns handle = @java:Method { + name: "getWindowHandles", + 'class: "org.openqa.selenium.remote.RemoteWebDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_remote_RemoteWebDriver_hashCode(handle receiver) returns int = @java:Method { + name: "hashCode", + 'class: "org.openqa.selenium.remote.RemoteWebDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_remote_RemoteWebDriver_manage(handle receiver) returns handle = @java:Method { + name: "manage", + 'class: "org.openqa.selenium.remote.RemoteWebDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_remote_RemoteWebDriver_navigate(handle receiver) returns handle = @java:Method { + name: "navigate", + 'class: "org.openqa.selenium.remote.RemoteWebDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_remote_RemoteWebDriver_network(handle receiver) returns handle = @java:Method { + name: "network", + 'class: "org.openqa.selenium.remote.RemoteWebDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_remote_RemoteWebDriver_notify(handle receiver) = @java:Method { + name: "notify", + 'class: "org.openqa.selenium.remote.RemoteWebDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_remote_RemoteWebDriver_notifyAll(handle receiver) = @java:Method { + name: "notifyAll", + 'class: "org.openqa.selenium.remote.RemoteWebDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_remote_RemoteWebDriver_perform(handle receiver, handle actions) = @java:Method { + name: "perform", + 'class: "org.openqa.selenium.remote.RemoteWebDriver", + paramTypes: ["java.util.Collection"] +} external; + +isolated function org_openqa_selenium_remote_RemoteWebDriver_pin(handle receiver, handle script) returns handle = @java:Method { + name: "pin", + 'class: "org.openqa.selenium.remote.RemoteWebDriver", + paramTypes: ["java.lang.String"] +} external; + +isolated function org_openqa_selenium_remote_RemoteWebDriver_print(handle receiver, handle printOptions) returns handle = @java:Method { + name: "print", + 'class: "org.openqa.selenium.remote.RemoteWebDriver", + paramTypes: ["org.openqa.selenium.print.PrintOptions"] +} external; + +isolated function org_openqa_selenium_remote_RemoteWebDriver_quit(handle receiver) = @java:Method { + name: "quit", + 'class: "org.openqa.selenium.remote.RemoteWebDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_remote_RemoteWebDriver_removeVirtualAuthenticator(handle receiver, handle authenticator) = @java:Method { + name: "removeVirtualAuthenticator", + 'class: "org.openqa.selenium.remote.RemoteWebDriver", + paramTypes: ["org.openqa.selenium.virtualauthenticator.VirtualAuthenticator"] +} external; + +isolated function org_openqa_selenium_remote_RemoteWebDriver_requireDownloadsEnabled(handle receiver, handle capabilities) = @java:Method { + name: "requireDownloadsEnabled", + 'class: "org.openqa.selenium.remote.RemoteWebDriver", + paramTypes: ["org.openqa.selenium.Capabilities"] +} external; + +isolated function org_openqa_selenium_remote_RemoteWebDriver_resetCooldown(handle receiver) = @java:Method { + name: "resetCooldown", + 'class: "org.openqa.selenium.remote.RemoteWebDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_remote_RemoteWebDriver_resetInputState(handle receiver) = @java:Method { + name: "resetInputState", + 'class: "org.openqa.selenium.remote.RemoteWebDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_remote_RemoteWebDriver_script(handle receiver) returns handle = @java:Method { + name: "script", + 'class: "org.openqa.selenium.remote.RemoteWebDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_remote_RemoteWebDriver_setDelayEnabled(handle receiver, boolean enabled) = @java:Method { + name: "setDelayEnabled", + 'class: "org.openqa.selenium.remote.RemoteWebDriver", + paramTypes: ["boolean"] +} external; + +isolated function org_openqa_selenium_remote_RemoteWebDriver_setErrorHandler(handle receiver, handle handler) = @java:Method { + name: "setErrorHandler", + 'class: "org.openqa.selenium.remote.RemoteWebDriver", + paramTypes: ["org.openqa.selenium.remote.ErrorHandler"] +} external; + +isolated function org_openqa_selenium_remote_RemoteWebDriver_setFileDetector(handle receiver, handle detector) = @java:Method { + name: "setFileDetector", + 'class: "org.openqa.selenium.remote.RemoteWebDriver", + paramTypes: ["org.openqa.selenium.remote.FileDetector"] +} external; + +isolated function org_openqa_selenium_remote_RemoteWebDriver_setLogLevel(handle receiver, handle level) = @java:Method { + name: "setLogLevel", + 'class: "org.openqa.selenium.remote.RemoteWebDriver", + paramTypes: ["java.util.logging.Level"] +} external; + +isolated function org_openqa_selenium_remote_RemoteWebDriver_switchTo(handle receiver) returns handle = @java:Method { + name: "switchTo", + 'class: "org.openqa.selenium.remote.RemoteWebDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_remote_RemoteWebDriver_unpin(handle receiver, handle 'key) = @java:Method { + name: "unpin", + 'class: "org.openqa.selenium.remote.RemoteWebDriver", + paramTypes: ["org.openqa.selenium.ScriptKey"] +} external; + +isolated function org_openqa_selenium_remote_RemoteWebDriver_wait(handle receiver) returns error? = @java:Method { + name: "wait", + 'class: "org.openqa.selenium.remote.RemoteWebDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_remote_RemoteWebDriver_wait2(handle receiver, int arg0) returns error? = @java:Method { + name: "wait", + 'class: "org.openqa.selenium.remote.RemoteWebDriver", + paramTypes: ["long"] +} external; + +isolated function org_openqa_selenium_remote_RemoteWebDriver_wait3(handle receiver, int arg0, int arg1) returns error? = @java:Method { + name: "wait", + 'class: "org.openqa.selenium.remote.RemoteWebDriver", + paramTypes: ["long", "int"] +} external; + +isolated function org_openqa_selenium_remote_RemoteWebDriver_newRemoteWebDriver1(handle capabilities) returns handle = @java:Constructor { + 'class: "org.openqa.selenium.remote.RemoteWebDriver", + paramTypes: ["org.openqa.selenium.Capabilities"] +} external; + +isolated function org_openqa_selenium_remote_RemoteWebDriver_newRemoteWebDriver2(handle capabilities, boolean enableTracing) returns handle = @java:Constructor { + 'class: "org.openqa.selenium.remote.RemoteWebDriver", + paramTypes: ["org.openqa.selenium.Capabilities", "boolean"] +} external; + +isolated function org_openqa_selenium_remote_RemoteWebDriver_newRemoteWebDriver3(handle executor, handle capabilities) returns handle = @java:Constructor { + 'class: "org.openqa.selenium.remote.RemoteWebDriver", + paramTypes: ["org.openqa.selenium.remote.CommandExecutor", "org.openqa.selenium.Capabilities"] +} external; + +isolated function org_openqa_selenium_remote_RemoteWebDriver_newRemoteWebDriver4(handle remoteAddress, handle capabilities) returns handle = @java:Constructor { + 'class: "org.openqa.selenium.remote.RemoteWebDriver", + paramTypes: ["java.net.URL", "org.openqa.selenium.Capabilities"] +} external; + +isolated function org_openqa_selenium_remote_RemoteWebDriver_newRemoteWebDriver5(handle remoteAddress, handle capabilities, boolean enableTracing) returns handle = @java:Constructor { + 'class: "org.openqa.selenium.remote.RemoteWebDriver", + paramTypes: ["java.net.URL", "org.openqa.selenium.Capabilities", "boolean"] +} external; + diff --git a/ballerina/modules/org.openqa.selenium.remote/RemoteWebDriverBuilder.bal b/ballerina/modules/org.openqa.selenium.remote/RemoteWebDriverBuilder.bal new file mode 100644 index 0000000..966e8ac --- /dev/null +++ b/ballerina/modules/org.openqa.selenium.remote/RemoteWebDriverBuilder.bal @@ -0,0 +1,39 @@ +// This is an empty Ballerina class autogenerated to represent the `org.openqa.selenium.remote.RemoteWebDriverBuilder` Java class. +// +// If you need the implementation of this class generated, please use the following command. +// +// $ bal bindgen [(-cp|--classpath) ...] +// [(-mvn|--maven) ::] +// [(-o|--output) ] +// [--public] +// (...) +// +// E.g. $ bal bindgen org.openqa.selenium.remote.RemoteWebDriverBuilder + +import ballerina/jballerina.java; + +# Ballerina class mapping for the Java `org.openqa.selenium.remote.RemoteWebDriverBuilder` class. +@java:Binding {'class: "org.openqa.selenium.remote.RemoteWebDriverBuilder"} +public distinct class RemoteWebDriverBuilder { + + *java:JObject; + + # The `handle` field that stores the reference to the `org.openqa.selenium.remote.RemoteWebDriverBuilder` object. + public handle jObj; + + # The init function of the Ballerina class mapping the `org.openqa.selenium.remote.RemoteWebDriverBuilder` Java class. + # + # + obj - The `handle` value containing the Java reference of the object. + public isolated function init(handle obj) { + self.jObj = obj; + } + + # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.remote.RemoteWebDriverBuilder` Java class. + # + # + return - The `string` form of the Java object instance. + public isolated function toString() returns string { + return java:toString(self.jObj) ?: ""; + } + +} + diff --git a/ballerina/modules/org.openqa.selenium.remote/Script.bal b/ballerina/modules/org.openqa.selenium.remote/Script.bal new file mode 100644 index 0000000..58dda26 --- /dev/null +++ b/ballerina/modules/org.openqa.selenium.remote/Script.bal @@ -0,0 +1,39 @@ +// This is an empty Ballerina class autogenerated to represent the `org.openqa.selenium.remote.Script` Java interface. +// +// If you need the implementation of this class generated, please use the following command. +// +// $ bal bindgen [(-cp|--classpath) ...] +// [(-mvn|--maven) ::] +// [(-o|--output) ] +// [--public] +// (...) +// +// E.g. $ bal bindgen org.openqa.selenium.remote.Script + +import ballerina/jballerina.java; + +# Ballerina class mapping for the Java `org.openqa.selenium.remote.Script` interface. +@java:Binding {'class: "org.openqa.selenium.remote.Script"} +public distinct class Script { + + *java:JObject; + + # The `handle` field that stores the reference to the `org.openqa.selenium.remote.Script` object. + public handle jObj; + + # The init function of the Ballerina class mapping the `org.openqa.selenium.remote.Script` Java interface. + # + # + obj - The `handle` value containing the Java reference of the object. + public isolated function init(handle obj) { + self.jObj = obj; + } + + # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.remote.Script` Java interface. + # + # + return - The `string` form of the Java object instance. + public isolated function toString() returns string { + return java:toString(self.jObj) ?: ""; + } + +} + diff --git a/ballerina/modules/org.openqa.selenium.remote/SessionId.bal b/ballerina/modules/org.openqa.selenium.remote/SessionId.bal new file mode 100644 index 0000000..c0bc485 --- /dev/null +++ b/ballerina/modules/org.openqa.selenium.remote/SessionId.bal @@ -0,0 +1,39 @@ +// This is an empty Ballerina class autogenerated to represent the `org.openqa.selenium.remote.SessionId` Java class. +// +// If you need the implementation of this class generated, please use the following command. +// +// $ bal bindgen [(-cp|--classpath) ...] +// [(-mvn|--maven) ::] +// [(-o|--output) ] +// [--public] +// (...) +// +// E.g. $ bal bindgen org.openqa.selenium.remote.SessionId + +import ballerina/jballerina.java; + +# Ballerina class mapping for the Java `org.openqa.selenium.remote.SessionId` class. +@java:Binding {'class: "org.openqa.selenium.remote.SessionId"} +public distinct class SessionId { + + *java:JObject; + + # The `handle` field that stores the reference to the `org.openqa.selenium.remote.SessionId` object. + public handle jObj; + + # The init function of the Ballerina class mapping the `org.openqa.selenium.remote.SessionId` Java class. + # + # + obj - The `handle` value containing the Java reference of the object. + public isolated function init(handle obj) { + self.jObj = obj; + } + + # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.remote.SessionId` Java class. + # + # + return - The `string` form of the Java object instance. + public isolated function toString() returns string { + return java:toString(self.jObj) ?: ""; + } + +} + diff --git a/ballerina/modules/org.openqa.selenium.safari/SafariDriver.bal b/ballerina/modules/org.openqa.selenium.safari/SafariDriver.bal new file mode 100644 index 0000000..15c48d2 --- /dev/null +++ b/ballerina/modules/org.openqa.selenium.safari/SafariDriver.bal @@ -0,0 +1,911 @@ +import selenium.java.io as javaio; +import selenium.java.lang as javalang; +import selenium.java.nio.file as javaniofile; +import selenium.java.util as javautil; +import selenium.java.util.'function as javautilfunction; +import selenium.java.util.logging as javautillogging; +import selenium.org.openqa.selenium as orgopenqaselenium; +import selenium.org.openqa.selenium.'remote as orgopenqaseleniumremote; +import selenium.org.openqa.selenium.'remote.'service as orgopenqaseleniumremoteservice; +import selenium.org.openqa.selenium.'remote.http as orgopenqaseleniumremotehttp; +import selenium.org.openqa.selenium.federatedcredentialmanagement as orgopenqaseleniumfederatedcredentialmanagement; +import selenium.org.openqa.selenium.print as orgopenqaseleniumprint; +import selenium.org.openqa.selenium.virtualauthenticator as orgopenqaseleniumvirtualauthenticator; + +import ballerina/jballerina.java; +import ballerina/jballerina.java.arrays as jarrays; + +# Ballerina class mapping for the Java `org.openqa.selenium.safari.SafariDriver` class. +@java:Binding {'class: "org.openqa.selenium.safari.SafariDriver"} +public distinct class SafariDriver { + + *java:JObject; + *orgopenqaseleniumremote:RemoteWebDriver; + + # The `handle` field that stores the reference to the `org.openqa.selenium.safari.SafariDriver` object. + public handle jObj; + + # The init function of the Ballerina class mapping the `org.openqa.selenium.safari.SafariDriver` Java class. + # + # + obj - The `handle` value containing the Java reference of the object. + public isolated function init(handle obj) { + self.jObj = obj; + } + + # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.safari.SafariDriver` Java class. + # + # + return - The `string` form of the Java object instance. + public isolated function toString() returns string { + return java:toString(self.jObj) ?: ""; + } + + # The function that maps to the `addVirtualAuthenticator` method of `org.openqa.selenium.safari.SafariDriver`. + # + # + options - The `orgopenqaseleniumvirtualauthenticator:VirtualAuthenticatorOptions` value required to map with the Java method parameter. + # + return - The `orgopenqaseleniumvirtualauthenticator:VirtualAuthenticator` value returning from the Java mapping. + public isolated function addVirtualAuthenticator(orgopenqaseleniumvirtualauthenticator:VirtualAuthenticatorOptions options) returns orgopenqaseleniumvirtualauthenticator:VirtualAuthenticator { + handle externalObj = org_openqa_selenium_safari_SafariDriver_addVirtualAuthenticator(self.jObj, options.jObj); + orgopenqaseleniumvirtualauthenticator:VirtualAuthenticator newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `attachDebugger` method of `org.openqa.selenium.safari.SafariDriver`. + public isolated function attachDebugger() { + org_openqa_selenium_safari_SafariDriver_attachDebugger(self.jObj); + } + + # The function that maps to the `close` method of `org.openqa.selenium.safari.SafariDriver`. + public isolated function close() { + org_openqa_selenium_safari_SafariDriver_close(self.jObj); + } + + # The function that maps to the `deleteDownloadableFiles` method of `org.openqa.selenium.safari.SafariDriver`. + public isolated function deleteDownloadableFiles() { + org_openqa_selenium_safari_SafariDriver_deleteDownloadableFiles(self.jObj); + } + + # The function that maps to the `downloadFile` method of `org.openqa.selenium.safari.SafariDriver`. + # + # + fileName - The `string` value required to map with the Java method parameter. + # + targetLocation - The `javaniofile:Path` value required to map with the Java method parameter. + # + return - The `javaio:IOException` value returning from the Java mapping. + public isolated function downloadFile(string fileName, javaniofile:Path targetLocation) returns javaio:IOException? { + error|() externalObj = org_openqa_selenium_safari_SafariDriver_downloadFile(self.jObj, java:fromString(fileName), targetLocation.jObj); + if (externalObj is error) { + javaio:IOException e = error javaio:IOException(javaio:IOEXCEPTION, externalObj, message = externalObj.message()); + return e; + } + } + + # The function that maps to the `equals` method of `org.openqa.selenium.safari.SafariDriver`. + # + # + arg0 - The `javalang:Object` value required to map with the Java method parameter. + # + return - The `boolean` value returning from the Java mapping. + public isolated function 'equals(javalang:Object arg0) returns boolean { + return org_openqa_selenium_safari_SafariDriver_equals(self.jObj, arg0.jObj); + } + + # The function that maps to the `executeAsyncScript` method of `org.openqa.selenium.safari.SafariDriver`. + # + # + script - The `string` value required to map with the Java method parameter. + # + args - The `javalang:Object[]` value required to map with the Java method parameter. + # + return - The `javalang:Object` value returning from the Java mapping. + public isolated function executeAsyncScript(string script, javalang:Object[] args) returns javalang:Object|error { + handle externalObj = org_openqa_selenium_safari_SafariDriver_executeAsyncScript(self.jObj, java:fromString(script), check jarrays:toHandle(args, "java.lang.Object")); + javalang:Object newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `executeScript` method of `org.openqa.selenium.safari.SafariDriver`. + # + # + 'key - The `orgopenqaselenium:ScriptKey` value required to map with the Java method parameter. + # + args - The `javalang:Object[]` value required to map with the Java method parameter. + # + return - The `javalang:Object` value returning from the Java mapping. + public isolated function executeScript(orgopenqaselenium:ScriptKey 'key, javalang:Object[] args) returns javalang:Object|error { + handle externalObj = org_openqa_selenium_safari_SafariDriver_executeScript(self.jObj, 'key.jObj, check jarrays:toHandle(args, "java.lang.Object")); + javalang:Object newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `executeScript` method of `org.openqa.selenium.safari.SafariDriver`. + # + # + script - The `string` value required to map with the Java method parameter. + # + args - The `javalang:Object[]` value required to map with the Java method parameter. + # + return - The `javalang:Object` value returning from the Java mapping. + public isolated function executeScript2(string script, javalang:Object[] args) returns javalang:Object|error { + handle externalObj = org_openqa_selenium_safari_SafariDriver_executeScript2(self.jObj, java:fromString(script), check jarrays:toHandle(args, "java.lang.Object")); + javalang:Object newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `findElement` method of `org.openqa.selenium.safari.SafariDriver`. + # + # + locator - The `orgopenqaselenium:By` value required to map with the Java method parameter. + # + return - The `orgopenqaselenium:WebElement` value returning from the Java mapping. + public isolated function findElement(orgopenqaselenium:By locator) returns orgopenqaselenium:WebElement { + handle externalObj = org_openqa_selenium_safari_SafariDriver_findElement(self.jObj, locator.jObj); + orgopenqaselenium:WebElement newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `findElements` method of `org.openqa.selenium.safari.SafariDriver`. + # + # + locator - The `orgopenqaselenium:By` value required to map with the Java method parameter. + # + return - The `javautil:List` value returning from the Java mapping. + public isolated function findElements(orgopenqaselenium:By locator) returns javautil:List { + handle externalObj = org_openqa_selenium_safari_SafariDriver_findElements(self.jObj, locator.jObj); + javautil:List newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `findElements` method of `org.openqa.selenium.safari.SafariDriver`. + # + # + context - The `orgopenqaselenium:SearchContext` value required to map with the Java method parameter. + # + findCommand - The `javautilfunction:BiFunction` value required to map with the Java method parameter. + # + locator - The `orgopenqaselenium:By` value required to map with the Java method parameter. + # + return - The `javautil:List` value returning from the Java mapping. + public isolated function findElements2(orgopenqaselenium:SearchContext context, javautilfunction:BiFunction findCommand, orgopenqaselenium:By locator) returns javautil:List { + handle externalObj = org_openqa_selenium_safari_SafariDriver_findElements2(self.jObj, context.jObj, findCommand.jObj, locator.jObj); + javautil:List newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `get` method of `org.openqa.selenium.safari.SafariDriver`. + # + # + url - The `string` value required to map with the Java method parameter. + public isolated function get(string url) { + org_openqa_selenium_safari_SafariDriver_get(self.jObj, java:fromString(url)); + } + + # The function that maps to the `getCapabilities` method of `org.openqa.selenium.safari.SafariDriver`. + # + # + return - The `orgopenqaselenium:Capabilities` value returning from the Java mapping. + public isolated function getCapabilities() returns orgopenqaselenium:Capabilities { + handle externalObj = org_openqa_selenium_safari_SafariDriver_getCapabilities(self.jObj); + orgopenqaselenium:Capabilities newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getClass` method of `org.openqa.selenium.safari.SafariDriver`. + # + # + return - The `javalang:Class` value returning from the Java mapping. + public isolated function getClass() returns javalang:Class { + handle externalObj = org_openqa_selenium_safari_SafariDriver_getClass(self.jObj); + javalang:Class newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getCommandExecutor` method of `org.openqa.selenium.safari.SafariDriver`. + # + # + return - The `orgopenqaseleniumremote:CommandExecutor` value returning from the Java mapping. + public isolated function getCommandExecutor() returns orgopenqaseleniumremote:CommandExecutor { + handle externalObj = org_openqa_selenium_safari_SafariDriver_getCommandExecutor(self.jObj); + orgopenqaseleniumremote:CommandExecutor newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getCurrentUrl` method of `org.openqa.selenium.safari.SafariDriver`. + # + # + return - The `string` value returning from the Java mapping. + public isolated function getCurrentUrl() returns string { + return java:toString(org_openqa_selenium_safari_SafariDriver_getCurrentUrl(self.jObj)) ?: ""; + } + + # The function that maps to the `getDownloadableFiles` method of `org.openqa.selenium.safari.SafariDriver`. + # + # + return - The `javautil:List` value returning from the Java mapping. + public isolated function getDownloadableFiles() returns javautil:List { + handle externalObj = org_openqa_selenium_safari_SafariDriver_getDownloadableFiles(self.jObj); + javautil:List newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getErrorHandler` method of `org.openqa.selenium.safari.SafariDriver`. + # + # + return - The `orgopenqaseleniumremote:ErrorHandler` value returning from the Java mapping. + public isolated function getErrorHandler() returns orgopenqaseleniumremote:ErrorHandler { + handle externalObj = org_openqa_selenium_safari_SafariDriver_getErrorHandler(self.jObj); + orgopenqaseleniumremote:ErrorHandler newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getFederatedCredentialManagementDialog` method of `org.openqa.selenium.safari.SafariDriver`. + # + # + return - The `orgopenqaseleniumfederatedcredentialmanagement:FederatedCredentialManagementDialog` value returning from the Java mapping. + public isolated function getFederatedCredentialManagementDialog() returns orgopenqaseleniumfederatedcredentialmanagement:FederatedCredentialManagementDialog { + handle externalObj = org_openqa_selenium_safari_SafariDriver_getFederatedCredentialManagementDialog(self.jObj); + orgopenqaseleniumfederatedcredentialmanagement:FederatedCredentialManagementDialog newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getFileDetector` method of `org.openqa.selenium.safari.SafariDriver`. + # + # + return - The `orgopenqaseleniumremote:FileDetector` value returning from the Java mapping. + public isolated function getFileDetector() returns orgopenqaseleniumremote:FileDetector { + handle externalObj = org_openqa_selenium_safari_SafariDriver_getFileDetector(self.jObj); + orgopenqaseleniumremote:FileDetector newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getPageSource` method of `org.openqa.selenium.safari.SafariDriver`. + # + # + return - The `string` value returning from the Java mapping. + public isolated function getPageSource() returns string { + return java:toString(org_openqa_selenium_safari_SafariDriver_getPageSource(self.jObj)) ?: ""; + } + + # The function that maps to the `getPermissions` method of `org.openqa.selenium.safari.SafariDriver`. + # + # + return - The `javautil:Map` value returning from the Java mapping. + public isolated function getPermissions() returns javautil:Map { + handle externalObj = org_openqa_selenium_safari_SafariDriver_getPermissions(self.jObj); + javautil:Map newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getPinnedScripts` method of `org.openqa.selenium.safari.SafariDriver`. + # + # + return - The `javautil:Set` value returning from the Java mapping. + public isolated function getPinnedScripts() returns javautil:Set { + handle externalObj = org_openqa_selenium_safari_SafariDriver_getPinnedScripts(self.jObj); + javautil:Set newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getScreenshotAs` method of `org.openqa.selenium.safari.SafariDriver`. + # + # + outputType - The `orgopenqaselenium:OutputType` value required to map with the Java method parameter. + # + return - The `javalang:Object` value returning from the Java mapping. + public isolated function getScreenshotAs(orgopenqaselenium:OutputType outputType) returns javalang:Object { + handle externalObj = org_openqa_selenium_safari_SafariDriver_getScreenshotAs(self.jObj, outputType.jObj); + javalang:Object newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getSessionId` method of `org.openqa.selenium.safari.SafariDriver`. + # + # + return - The `orgopenqaseleniumremote:SessionId` value returning from the Java mapping. + public isolated function getSessionId() returns orgopenqaseleniumremote:SessionId { + handle externalObj = org_openqa_selenium_safari_SafariDriver_getSessionId(self.jObj); + orgopenqaseleniumremote:SessionId newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getTitle` method of `org.openqa.selenium.safari.SafariDriver`. + # + # + return - The `string` value returning from the Java mapping. + public isolated function getTitle() returns string { + return java:toString(org_openqa_selenium_safari_SafariDriver_getTitle(self.jObj)) ?: ""; + } + + # The function that maps to the `getWindowHandle` method of `org.openqa.selenium.safari.SafariDriver`. + # + # + return - The `string` value returning from the Java mapping. + public isolated function getWindowHandle() returns string { + return java:toString(org_openqa_selenium_safari_SafariDriver_getWindowHandle(self.jObj)) ?: ""; + } + + # The function that maps to the `getWindowHandles` method of `org.openqa.selenium.safari.SafariDriver`. + # + # + return - The `javautil:Set` value returning from the Java mapping. + public isolated function getWindowHandles() returns javautil:Set { + handle externalObj = org_openqa_selenium_safari_SafariDriver_getWindowHandles(self.jObj); + javautil:Set newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `hashCode` method of `org.openqa.selenium.safari.SafariDriver`. + # + # + return - The `int` value returning from the Java mapping. + public isolated function hashCode() returns int { + return org_openqa_selenium_safari_SafariDriver_hashCode(self.jObj); + } + + # The function that maps to the `manage` method of `org.openqa.selenium.safari.SafariDriver`. + # + # + return - The `orgopenqaselenium:Options` value returning from the Java mapping. + public isolated function manage() returns orgopenqaselenium:Options { + handle externalObj = org_openqa_selenium_safari_SafariDriver_manage(self.jObj); + orgopenqaselenium:Options newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `navigate` method of `org.openqa.selenium.safari.SafariDriver`. + # + # + return - The `orgopenqaselenium:Navigation` value returning from the Java mapping. + public isolated function navigate() returns orgopenqaselenium:Navigation { + handle externalObj = org_openqa_selenium_safari_SafariDriver_navigate(self.jObj); + orgopenqaselenium:Navigation newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `network` method of `org.openqa.selenium.safari.SafariDriver`. + # + # + return - The `orgopenqaseleniumremote:Network` value returning from the Java mapping. + public isolated function network() returns orgopenqaseleniumremote:Network { + handle externalObj = org_openqa_selenium_safari_SafariDriver_network(self.jObj); + orgopenqaseleniumremote:Network newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `notify` method of `org.openqa.selenium.safari.SafariDriver`. + public isolated function notify() { + org_openqa_selenium_safari_SafariDriver_notify(self.jObj); + } + + # The function that maps to the `notifyAll` method of `org.openqa.selenium.safari.SafariDriver`. + public isolated function notifyAll() { + org_openqa_selenium_safari_SafariDriver_notifyAll(self.jObj); + } + + # The function that maps to the `perform` method of `org.openqa.selenium.safari.SafariDriver`. + # + # + actions - The `javautil:Collection` value required to map with the Java method parameter. + public isolated function perform(javautil:Collection actions) { + org_openqa_selenium_safari_SafariDriver_perform(self.jObj, actions.jObj); + } + + # The function that maps to the `pin` method of `org.openqa.selenium.safari.SafariDriver`. + # + # + script - The `string` value required to map with the Java method parameter. + # + return - The `orgopenqaselenium:ScriptKey` value returning from the Java mapping. + public isolated function pin(string script) returns orgopenqaselenium:ScriptKey { + handle externalObj = org_openqa_selenium_safari_SafariDriver_pin(self.jObj, java:fromString(script)); + orgopenqaselenium:ScriptKey newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `print` method of `org.openqa.selenium.safari.SafariDriver`. + # + # + printOptions - The `orgopenqaseleniumprint:PrintOptions` value required to map with the Java method parameter. + # + return - The `orgopenqaselenium:Pdf` value returning from the Java mapping. + public isolated function print(orgopenqaseleniumprint:PrintOptions printOptions) returns orgopenqaselenium:Pdf { + handle externalObj = org_openqa_selenium_safari_SafariDriver_print(self.jObj, printOptions.jObj); + orgopenqaselenium:Pdf newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `quit` method of `org.openqa.selenium.safari.SafariDriver`. + public isolated function quit() { + org_openqa_selenium_safari_SafariDriver_quit(self.jObj); + } + + # The function that maps to the `removeVirtualAuthenticator` method of `org.openqa.selenium.safari.SafariDriver`. + # + # + authenticator - The `orgopenqaseleniumvirtualauthenticator:VirtualAuthenticator` value required to map with the Java method parameter. + public isolated function removeVirtualAuthenticator(orgopenqaseleniumvirtualauthenticator:VirtualAuthenticator authenticator) { + org_openqa_selenium_safari_SafariDriver_removeVirtualAuthenticator(self.jObj, authenticator.jObj); + } + + # The function that maps to the `requireDownloadsEnabled` method of `org.openqa.selenium.safari.SafariDriver`. + # + # + capabilities - The `orgopenqaselenium:Capabilities` value required to map with the Java method parameter. + public isolated function requireDownloadsEnabled(orgopenqaselenium:Capabilities capabilities) { + org_openqa_selenium_safari_SafariDriver_requireDownloadsEnabled(self.jObj, capabilities.jObj); + } + + # The function that maps to the `resetCooldown` method of `org.openqa.selenium.safari.SafariDriver`. + public isolated function resetCooldown() { + org_openqa_selenium_safari_SafariDriver_resetCooldown(self.jObj); + } + + # The function that maps to the `resetInputState` method of `org.openqa.selenium.safari.SafariDriver`. + public isolated function resetInputState() { + org_openqa_selenium_safari_SafariDriver_resetInputState(self.jObj); + } + + # The function that maps to the `script` method of `org.openqa.selenium.safari.SafariDriver`. + # + # + return - The `orgopenqaseleniumremote:Script` value returning from the Java mapping. + public isolated function script() returns orgopenqaseleniumremote:Script { + handle externalObj = org_openqa_selenium_safari_SafariDriver_script(self.jObj); + orgopenqaseleniumremote:Script newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `setDelayEnabled` method of `org.openqa.selenium.safari.SafariDriver`. + # + # + enabled - The `boolean` value required to map with the Java method parameter. + public isolated function setDelayEnabled(boolean enabled) { + org_openqa_selenium_safari_SafariDriver_setDelayEnabled(self.jObj, enabled); + } + + # The function that maps to the `setErrorHandler` method of `org.openqa.selenium.safari.SafariDriver`. + # + # + handler - The `orgopenqaseleniumremote:ErrorHandler` value required to map with the Java method parameter. + public isolated function setErrorHandler(orgopenqaseleniumremote:ErrorHandler handler) { + org_openqa_selenium_safari_SafariDriver_setErrorHandler(self.jObj, handler.jObj); + } + + # The function that maps to the `setFileDetector` method of `org.openqa.selenium.safari.SafariDriver`. + # + # + detector - The `orgopenqaseleniumremote:FileDetector` value required to map with the Java method parameter. + public isolated function setFileDetector(orgopenqaseleniumremote:FileDetector detector) { + org_openqa_selenium_safari_SafariDriver_setFileDetector(self.jObj, detector.jObj); + } + + # The function that maps to the `setLogLevel` method of `org.openqa.selenium.safari.SafariDriver`. + # + # + level - The `javautillogging:Level` value required to map with the Java method parameter. + public isolated function setLogLevel(javautillogging:Level level) { + org_openqa_selenium_safari_SafariDriver_setLogLevel(self.jObj, level.jObj); + } + + # The function that maps to the `setPermissions` method of `org.openqa.selenium.safari.SafariDriver`. + # + # + permission - The `string` value required to map with the Java method parameter. + # + value - The `boolean` value required to map with the Java method parameter. + public isolated function setPermissions(string permission, boolean value) { + org_openqa_selenium_safari_SafariDriver_setPermissions(self.jObj, java:fromString(permission), value); + } + + # The function that maps to the `switchTo` method of `org.openqa.selenium.safari.SafariDriver`. + # + # + return - The `orgopenqaselenium:TargetLocator` value returning from the Java mapping. + public isolated function switchTo() returns orgopenqaselenium:TargetLocator { + handle externalObj = org_openqa_selenium_safari_SafariDriver_switchTo(self.jObj); + orgopenqaselenium:TargetLocator newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `unpin` method of `org.openqa.selenium.safari.SafariDriver`. + # + # + 'key - The `orgopenqaselenium:ScriptKey` value required to map with the Java method parameter. + public isolated function unpin(orgopenqaselenium:ScriptKey 'key) { + org_openqa_selenium_safari_SafariDriver_unpin(self.jObj, 'key.jObj); + } + + # The function that maps to the `wait` method of `org.openqa.selenium.safari.SafariDriver`. + # + # + return - The `javalang:InterruptedException` value returning from the Java mapping. + public isolated function 'wait() returns javalang:InterruptedException? { + error|() externalObj = org_openqa_selenium_safari_SafariDriver_wait(self.jObj); + if (externalObj is error) { + javalang:InterruptedException e = error javalang:InterruptedException(javalang:INTERRUPTEDEXCEPTION, externalObj, message = externalObj.message()); + return e; + } + } + + # The function that maps to the `wait` method of `org.openqa.selenium.safari.SafariDriver`. + # + # + arg0 - The `int` value required to map with the Java method parameter. + # + return - The `javalang:InterruptedException` value returning from the Java mapping. + public isolated function wait2(int arg0) returns javalang:InterruptedException? { + error|() externalObj = org_openqa_selenium_safari_SafariDriver_wait2(self.jObj, arg0); + if (externalObj is error) { + javalang:InterruptedException e = error javalang:InterruptedException(javalang:INTERRUPTEDEXCEPTION, externalObj, message = externalObj.message()); + return e; + } + } + + # The function that maps to the `wait` method of `org.openqa.selenium.safari.SafariDriver`. + # + # + arg0 - The `int` value required to map with the Java method parameter. + # + arg1 - The `int` value required to map with the Java method parameter. + # + return - The `javalang:InterruptedException` value returning from the Java mapping. + public isolated function wait3(int arg0, int arg1) returns javalang:InterruptedException? { + error|() externalObj = org_openqa_selenium_safari_SafariDriver_wait3(self.jObj, arg0, arg1); + if (externalObj is error) { + javalang:InterruptedException e = error javalang:InterruptedException(javalang:INTERRUPTEDEXCEPTION, externalObj, message = externalObj.message()); + return e; + } + } + +} + +# The constructor function to generate an object of `org.openqa.selenium.safari.SafariDriver`. +# +# + return - The new `SafariDriver` class generated. +public isolated function newSafariDriver1() returns SafariDriver { + handle externalObj = org_openqa_selenium_safari_SafariDriver_newSafariDriver1(); + SafariDriver newObj = new (externalObj); + return newObj; +} + +# The constructor function to generate an object of `org.openqa.selenium.safari.SafariDriver`. +# +# + 'service - The `orgopenqaseleniumremoteservice:DriverService` value required to map with the Java constructor parameter. +# + options - The `SafariOptions` value required to map with the Java constructor parameter. +# + return - The new `SafariDriver` class generated. +public isolated function newSafariDriver2(orgopenqaseleniumremoteservice:DriverService 'service, SafariOptions options) returns SafariDriver { + handle externalObj = org_openqa_selenium_safari_SafariDriver_newSafariDriver2('service.jObj, options.jObj); + SafariDriver newObj = new (externalObj); + return newObj; +} + +# The constructor function to generate an object of `org.openqa.selenium.safari.SafariDriver`. +# +# + 'service - The `orgopenqaseleniumremoteservice:DriverService` value required to map with the Java constructor parameter. +# + options - The `SafariOptions` value required to map with the Java constructor parameter. +# + clientConfig - The `orgopenqaseleniumremotehttp:ClientConfig` value required to map with the Java constructor parameter. +# + return - The new `SafariDriver` class generated. +public isolated function newSafariDriver3(orgopenqaseleniumremoteservice:DriverService 'service, SafariOptions options, orgopenqaseleniumremotehttp:ClientConfig clientConfig) returns SafariDriver { + handle externalObj = org_openqa_selenium_safari_SafariDriver_newSafariDriver3('service.jObj, options.jObj, clientConfig.jObj); + SafariDriver newObj = new (externalObj); + return newObj; +} + +# The constructor function to generate an object of `org.openqa.selenium.safari.SafariDriver`. +# +# + safariService - The `SafariDriverService` value required to map with the Java constructor parameter. +# + return - The new `SafariDriver` class generated. +public isolated function newSafariDriver4(SafariDriverService safariService) returns SafariDriver { + handle externalObj = org_openqa_selenium_safari_SafariDriver_newSafariDriver4(safariService.jObj); + SafariDriver newObj = new (externalObj); + return newObj; +} + +# The constructor function to generate an object of `org.openqa.selenium.safari.SafariDriver`. +# +# + safariOptions - The `SafariOptions` value required to map with the Java constructor parameter. +# + return - The new `SafariDriver` class generated. +public isolated function newSafariDriver5(SafariOptions safariOptions) returns SafariDriver { + handle externalObj = org_openqa_selenium_safari_SafariDriver_newSafariDriver5(safariOptions.jObj); + SafariDriver newObj = new (externalObj); + return newObj; +} + +# The function that maps to the `builder` method of `org.openqa.selenium.safari.SafariDriver`. +# +# + return - The `orgopenqaseleniumremote:RemoteWebDriverBuilder` value returning from the Java mapping. +public isolated function SafariDriver_builder() returns orgopenqaseleniumremote:RemoteWebDriverBuilder { + handle externalObj = org_openqa_selenium_safari_SafariDriver_builder(); + orgopenqaseleniumremote:RemoteWebDriverBuilder newObj = new (externalObj); + return newObj; +} + +isolated function org_openqa_selenium_safari_SafariDriver_addVirtualAuthenticator(handle receiver, handle options) returns handle = @java:Method { + name: "addVirtualAuthenticator", + 'class: "org.openqa.selenium.safari.SafariDriver", + paramTypes: ["org.openqa.selenium.virtualauthenticator.VirtualAuthenticatorOptions"] +} external; + +isolated function org_openqa_selenium_safari_SafariDriver_attachDebugger(handle receiver) = @java:Method { + name: "attachDebugger", + 'class: "org.openqa.selenium.safari.SafariDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_safari_SafariDriver_builder() returns handle = @java:Method { + name: "builder", + 'class: "org.openqa.selenium.safari.SafariDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_safari_SafariDriver_close(handle receiver) = @java:Method { + name: "close", + 'class: "org.openqa.selenium.safari.SafariDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_safari_SafariDriver_deleteDownloadableFiles(handle receiver) = @java:Method { + name: "deleteDownloadableFiles", + 'class: "org.openqa.selenium.safari.SafariDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_safari_SafariDriver_downloadFile(handle receiver, handle fileName, handle targetLocation) returns error? = @java:Method { + name: "downloadFile", + 'class: "org.openqa.selenium.safari.SafariDriver", + paramTypes: ["java.lang.String", "java.nio.file.Path"] +} external; + +isolated function org_openqa_selenium_safari_SafariDriver_equals(handle receiver, handle arg0) returns boolean = @java:Method { + name: "equals", + 'class: "org.openqa.selenium.safari.SafariDriver", + paramTypes: ["java.lang.Object"] +} external; + +isolated function org_openqa_selenium_safari_SafariDriver_executeAsyncScript(handle receiver, handle script, handle args) returns handle = @java:Method { + name: "executeAsyncScript", + 'class: "org.openqa.selenium.safari.SafariDriver", + paramTypes: ["java.lang.String", "[Ljava.lang.Object;"] +} external; + +isolated function org_openqa_selenium_safari_SafariDriver_executeScript(handle receiver, handle 'key, handle args) returns handle = @java:Method { + name: "executeScript", + 'class: "org.openqa.selenium.safari.SafariDriver", + paramTypes: ["org.openqa.selenium.ScriptKey", "[Ljava.lang.Object;"] +} external; + +isolated function org_openqa_selenium_safari_SafariDriver_executeScript2(handle receiver, handle script, handle args) returns handle = @java:Method { + name: "executeScript", + 'class: "org.openqa.selenium.safari.SafariDriver", + paramTypes: ["java.lang.String", "[Ljava.lang.Object;"] +} external; + +isolated function org_openqa_selenium_safari_SafariDriver_findElement(handle receiver, handle locator) returns handle = @java:Method { + name: "findElement", + 'class: "org.openqa.selenium.safari.SafariDriver", + paramTypes: ["org.openqa.selenium.By"] +} external; + +isolated function org_openqa_selenium_safari_SafariDriver_findElements(handle receiver, handle locator) returns handle = @java:Method { + name: "findElements", + 'class: "org.openqa.selenium.safari.SafariDriver", + paramTypes: ["org.openqa.selenium.By"] +} external; + +isolated function org_openqa_selenium_safari_SafariDriver_findElements2(handle receiver, handle context, handle findCommand, handle locator) returns handle = @java:Method { + name: "findElements", + 'class: "org.openqa.selenium.safari.SafariDriver", + paramTypes: ["org.openqa.selenium.SearchContext", "java.util.function.BiFunction", "org.openqa.selenium.By"] +} external; + +isolated function org_openqa_selenium_safari_SafariDriver_get(handle receiver, handle url) = @java:Method { + name: "get", + 'class: "org.openqa.selenium.safari.SafariDriver", + paramTypes: ["java.lang.String"] +} external; + +isolated function org_openqa_selenium_safari_SafariDriver_getCapabilities(handle receiver) returns handle = @java:Method { + name: "getCapabilities", + 'class: "org.openqa.selenium.safari.SafariDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_safari_SafariDriver_getClass(handle receiver) returns handle = @java:Method { + name: "getClass", + 'class: "org.openqa.selenium.safari.SafariDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_safari_SafariDriver_getCommandExecutor(handle receiver) returns handle = @java:Method { + name: "getCommandExecutor", + 'class: "org.openqa.selenium.safari.SafariDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_safari_SafariDriver_getCurrentUrl(handle receiver) returns handle = @java:Method { + name: "getCurrentUrl", + 'class: "org.openqa.selenium.safari.SafariDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_safari_SafariDriver_getDownloadableFiles(handle receiver) returns handle = @java:Method { + name: "getDownloadableFiles", + 'class: "org.openqa.selenium.safari.SafariDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_safari_SafariDriver_getErrorHandler(handle receiver) returns handle = @java:Method { + name: "getErrorHandler", + 'class: "org.openqa.selenium.safari.SafariDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_safari_SafariDriver_getFederatedCredentialManagementDialog(handle receiver) returns handle = @java:Method { + name: "getFederatedCredentialManagementDialog", + 'class: "org.openqa.selenium.safari.SafariDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_safari_SafariDriver_getFileDetector(handle receiver) returns handle = @java:Method { + name: "getFileDetector", + 'class: "org.openqa.selenium.safari.SafariDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_safari_SafariDriver_getPageSource(handle receiver) returns handle = @java:Method { + name: "getPageSource", + 'class: "org.openqa.selenium.safari.SafariDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_safari_SafariDriver_getPermissions(handle receiver) returns handle = @java:Method { + name: "getPermissions", + 'class: "org.openqa.selenium.safari.SafariDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_safari_SafariDriver_getPinnedScripts(handle receiver) returns handle = @java:Method { + name: "getPinnedScripts", + 'class: "org.openqa.selenium.safari.SafariDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_safari_SafariDriver_getScreenshotAs(handle receiver, handle outputType) returns handle = @java:Method { + name: "getScreenshotAs", + 'class: "org.openqa.selenium.safari.SafariDriver", + paramTypes: ["org.openqa.selenium.OutputType"] +} external; + +isolated function org_openqa_selenium_safari_SafariDriver_getSessionId(handle receiver) returns handle = @java:Method { + name: "getSessionId", + 'class: "org.openqa.selenium.safari.SafariDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_safari_SafariDriver_getTitle(handle receiver) returns handle = @java:Method { + name: "getTitle", + 'class: "org.openqa.selenium.safari.SafariDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_safari_SafariDriver_getWindowHandle(handle receiver) returns handle = @java:Method { + name: "getWindowHandle", + 'class: "org.openqa.selenium.safari.SafariDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_safari_SafariDriver_getWindowHandles(handle receiver) returns handle = @java:Method { + name: "getWindowHandles", + 'class: "org.openqa.selenium.safari.SafariDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_safari_SafariDriver_hashCode(handle receiver) returns int = @java:Method { + name: "hashCode", + 'class: "org.openqa.selenium.safari.SafariDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_safari_SafariDriver_manage(handle receiver) returns handle = @java:Method { + name: "manage", + 'class: "org.openqa.selenium.safari.SafariDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_safari_SafariDriver_navigate(handle receiver) returns handle = @java:Method { + name: "navigate", + 'class: "org.openqa.selenium.safari.SafariDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_safari_SafariDriver_network(handle receiver) returns handle = @java:Method { + name: "network", + 'class: "org.openqa.selenium.safari.SafariDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_safari_SafariDriver_notify(handle receiver) = @java:Method { + name: "notify", + 'class: "org.openqa.selenium.safari.SafariDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_safari_SafariDriver_notifyAll(handle receiver) = @java:Method { + name: "notifyAll", + 'class: "org.openqa.selenium.safari.SafariDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_safari_SafariDriver_perform(handle receiver, handle actions) = @java:Method { + name: "perform", + 'class: "org.openqa.selenium.safari.SafariDriver", + paramTypes: ["java.util.Collection"] +} external; + +isolated function org_openqa_selenium_safari_SafariDriver_pin(handle receiver, handle script) returns handle = @java:Method { + name: "pin", + 'class: "org.openqa.selenium.safari.SafariDriver", + paramTypes: ["java.lang.String"] +} external; + +isolated function org_openqa_selenium_safari_SafariDriver_print(handle receiver, handle printOptions) returns handle = @java:Method { + name: "print", + 'class: "org.openqa.selenium.safari.SafariDriver", + paramTypes: ["org.openqa.selenium.print.PrintOptions"] +} external; + +isolated function org_openqa_selenium_safari_SafariDriver_quit(handle receiver) = @java:Method { + name: "quit", + 'class: "org.openqa.selenium.safari.SafariDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_safari_SafariDriver_removeVirtualAuthenticator(handle receiver, handle authenticator) = @java:Method { + name: "removeVirtualAuthenticator", + 'class: "org.openqa.selenium.safari.SafariDriver", + paramTypes: ["org.openqa.selenium.virtualauthenticator.VirtualAuthenticator"] +} external; + +isolated function org_openqa_selenium_safari_SafariDriver_requireDownloadsEnabled(handle receiver, handle capabilities) = @java:Method { + name: "requireDownloadsEnabled", + 'class: "org.openqa.selenium.safari.SafariDriver", + paramTypes: ["org.openqa.selenium.Capabilities"] +} external; + +isolated function org_openqa_selenium_safari_SafariDriver_resetCooldown(handle receiver) = @java:Method { + name: "resetCooldown", + 'class: "org.openqa.selenium.safari.SafariDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_safari_SafariDriver_resetInputState(handle receiver) = @java:Method { + name: "resetInputState", + 'class: "org.openqa.selenium.safari.SafariDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_safari_SafariDriver_script(handle receiver) returns handle = @java:Method { + name: "script", + 'class: "org.openqa.selenium.safari.SafariDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_safari_SafariDriver_setDelayEnabled(handle receiver, boolean enabled) = @java:Method { + name: "setDelayEnabled", + 'class: "org.openqa.selenium.safari.SafariDriver", + paramTypes: ["boolean"] +} external; + +isolated function org_openqa_selenium_safari_SafariDriver_setErrorHandler(handle receiver, handle handler) = @java:Method { + name: "setErrorHandler", + 'class: "org.openqa.selenium.safari.SafariDriver", + paramTypes: ["org.openqa.selenium.remote.ErrorHandler"] +} external; + +isolated function org_openqa_selenium_safari_SafariDriver_setFileDetector(handle receiver, handle detector) = @java:Method { + name: "setFileDetector", + 'class: "org.openqa.selenium.safari.SafariDriver", + paramTypes: ["org.openqa.selenium.remote.FileDetector"] +} external; + +isolated function org_openqa_selenium_safari_SafariDriver_setLogLevel(handle receiver, handle level) = @java:Method { + name: "setLogLevel", + 'class: "org.openqa.selenium.safari.SafariDriver", + paramTypes: ["java.util.logging.Level"] +} external; + +isolated function org_openqa_selenium_safari_SafariDriver_setPermissions(handle receiver, handle permission, boolean value) = @java:Method { + name: "setPermissions", + 'class: "org.openqa.selenium.safari.SafariDriver", + paramTypes: ["java.lang.String", "boolean"] +} external; + +isolated function org_openqa_selenium_safari_SafariDriver_switchTo(handle receiver) returns handle = @java:Method { + name: "switchTo", + 'class: "org.openqa.selenium.safari.SafariDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_safari_SafariDriver_unpin(handle receiver, handle 'key) = @java:Method { + name: "unpin", + 'class: "org.openqa.selenium.safari.SafariDriver", + paramTypes: ["org.openqa.selenium.ScriptKey"] +} external; + +isolated function org_openqa_selenium_safari_SafariDriver_wait(handle receiver) returns error? = @java:Method { + name: "wait", + 'class: "org.openqa.selenium.safari.SafariDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_safari_SafariDriver_wait2(handle receiver, int arg0) returns error? = @java:Method { + name: "wait", + 'class: "org.openqa.selenium.safari.SafariDriver", + paramTypes: ["long"] +} external; + +isolated function org_openqa_selenium_safari_SafariDriver_wait3(handle receiver, int arg0, int arg1) returns error? = @java:Method { + name: "wait", + 'class: "org.openqa.selenium.safari.SafariDriver", + paramTypes: ["long", "int"] +} external; + +isolated function org_openqa_selenium_safari_SafariDriver_newSafariDriver1() returns handle = @java:Constructor { + 'class: "org.openqa.selenium.safari.SafariDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_safari_SafariDriver_newSafariDriver2(handle 'service, handle options) returns handle = @java:Constructor { + 'class: "org.openqa.selenium.safari.SafariDriver", + paramTypes: ["org.openqa.selenium.remote.service.DriverService", "org.openqa.selenium.safari.SafariOptions"] +} external; + +isolated function org_openqa_selenium_safari_SafariDriver_newSafariDriver3(handle 'service, handle options, handle clientConfig) returns handle = @java:Constructor { + 'class: "org.openqa.selenium.safari.SafariDriver", + paramTypes: ["org.openqa.selenium.remote.service.DriverService", "org.openqa.selenium.safari.SafariOptions", "org.openqa.selenium.remote.http.ClientConfig"] +} external; + +isolated function org_openqa_selenium_safari_SafariDriver_newSafariDriver4(handle safariService) returns handle = @java:Constructor { + 'class: "org.openqa.selenium.safari.SafariDriver", + paramTypes: ["org.openqa.selenium.safari.SafariDriverService"] +} external; + +isolated function org_openqa_selenium_safari_SafariDriver_newSafariDriver5(handle safariOptions) returns handle = @java:Constructor { + 'class: "org.openqa.selenium.safari.SafariDriver", + paramTypes: ["org.openqa.selenium.safari.SafariOptions"] +} external; + diff --git a/ballerina/modules/org.openqa.selenium.safari/SafariDriverService.bal b/ballerina/modules/org.openqa.selenium.safari/SafariDriverService.bal new file mode 100644 index 0000000..05d481a --- /dev/null +++ b/ballerina/modules/org.openqa.selenium.safari/SafariDriverService.bal @@ -0,0 +1,39 @@ +// This is an empty Ballerina class autogenerated to represent the `org.openqa.selenium.safari.SafariDriverService` Java class. +// +// If you need the implementation of this class generated, please use the following command. +// +// $ bal bindgen [(-cp|--classpath) ...] +// [(-mvn|--maven) ::] +// [(-o|--output) ] +// [--public] +// (...) +// +// E.g. $ bal bindgen org.openqa.selenium.safari.SafariDriverService + +import ballerina/jballerina.java; + +# Ballerina class mapping for the Java `org.openqa.selenium.safari.SafariDriverService` class. +@java:Binding {'class: "org.openqa.selenium.safari.SafariDriverService"} +public distinct class SafariDriverService { + + *java:JObject; + + # The `handle` field that stores the reference to the `org.openqa.selenium.safari.SafariDriverService` object. + public handle jObj; + + # The init function of the Ballerina class mapping the `org.openqa.selenium.safari.SafariDriverService` Java class. + # + # + obj - The `handle` value containing the Java reference of the object. + public isolated function init(handle obj) { + self.jObj = obj; + } + + # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.safari.SafariDriverService` Java class. + # + # + return - The `string` form of the Java object instance. + public isolated function toString() returns string { + return java:toString(self.jObj) ?: ""; + } + +} + diff --git a/ballerina/modules/org.openqa.selenium.safari/SafariOptions.bal b/ballerina/modules/org.openqa.selenium.safari/SafariOptions.bal new file mode 100644 index 0000000..dc93c06 --- /dev/null +++ b/ballerina/modules/org.openqa.selenium.safari/SafariOptions.bal @@ -0,0 +1,39 @@ +// This is an empty Ballerina class autogenerated to represent the `org.openqa.selenium.safari.SafariOptions` Java class. +// +// If you need the implementation of this class generated, please use the following command. +// +// $ bal bindgen [(-cp|--classpath) ...] +// [(-mvn|--maven) ::] +// [(-o|--output) ] +// [--public] +// (...) +// +// E.g. $ bal bindgen org.openqa.selenium.safari.SafariOptions + +import ballerina/jballerina.java; + +# Ballerina class mapping for the Java `org.openqa.selenium.safari.SafariOptions` class. +@java:Binding {'class: "org.openqa.selenium.safari.SafariOptions"} +public distinct class SafariOptions { + + *java:JObject; + + # The `handle` field that stores the reference to the `org.openqa.selenium.safari.SafariOptions` object. + public handle jObj; + + # The init function of the Ballerina class mapping the `org.openqa.selenium.safari.SafariOptions` Java class. + # + # + obj - The `handle` value containing the Java reference of the object. + public isolated function init(handle obj) { + self.jObj = obj; + } + + # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.safari.SafariOptions` Java class. + # + # + return - The `string` form of the Java object instance. + public isolated function toString() returns string { + return java:toString(self.jObj) ?: ""; + } + +} + diff --git a/ballerina/modules/org.openqa.selenium.virtualauthenticator/VirtualAuthenticator.bal b/ballerina/modules/org.openqa.selenium.virtualauthenticator/VirtualAuthenticator.bal new file mode 100644 index 0000000..33b47f6 --- /dev/null +++ b/ballerina/modules/org.openqa.selenium.virtualauthenticator/VirtualAuthenticator.bal @@ -0,0 +1,39 @@ +// This is an empty Ballerina class autogenerated to represent the `org.openqa.selenium.virtualauthenticator.VirtualAuthenticator` Java interface. +// +// If you need the implementation of this class generated, please use the following command. +// +// $ bal bindgen [(-cp|--classpath) ...] +// [(-mvn|--maven) ::] +// [(-o|--output) ] +// [--public] +// (...) +// +// E.g. $ bal bindgen org.openqa.selenium.virtualauthenticator.VirtualAuthenticator + +import ballerina/jballerina.java; + +# Ballerina class mapping for the Java `org.openqa.selenium.virtualauthenticator.VirtualAuthenticator` interface. +@java:Binding {'class: "org.openqa.selenium.virtualauthenticator.VirtualAuthenticator"} +public distinct class VirtualAuthenticator { + + *java:JObject; + + # The `handle` field that stores the reference to the `org.openqa.selenium.virtualauthenticator.VirtualAuthenticator` object. + public handle jObj; + + # The init function of the Ballerina class mapping the `org.openqa.selenium.virtualauthenticator.VirtualAuthenticator` Java interface. + # + # + obj - The `handle` value containing the Java reference of the object. + public isolated function init(handle obj) { + self.jObj = obj; + } + + # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.virtualauthenticator.VirtualAuthenticator` Java interface. + # + # + return - The `string` form of the Java object instance. + public isolated function toString() returns string { + return java:toString(self.jObj) ?: ""; + } + +} + diff --git a/ballerina/modules/org.openqa.selenium.virtualauthenticator/VirtualAuthenticatorOptions.bal b/ballerina/modules/org.openqa.selenium.virtualauthenticator/VirtualAuthenticatorOptions.bal new file mode 100644 index 0000000..b8d3dfc --- /dev/null +++ b/ballerina/modules/org.openqa.selenium.virtualauthenticator/VirtualAuthenticatorOptions.bal @@ -0,0 +1,39 @@ +// This is an empty Ballerina class autogenerated to represent the `org.openqa.selenium.virtualauthenticator.VirtualAuthenticatorOptions` Java class. +// +// If you need the implementation of this class generated, please use the following command. +// +// $ bal bindgen [(-cp|--classpath) ...] +// [(-mvn|--maven) ::] +// [(-o|--output) ] +// [--public] +// (...) +// +// E.g. $ bal bindgen org.openqa.selenium.virtualauthenticator.VirtualAuthenticatorOptions + +import ballerina/jballerina.java; + +# Ballerina class mapping for the Java `org.openqa.selenium.virtualauthenticator.VirtualAuthenticatorOptions` class. +@java:Binding {'class: "org.openqa.selenium.virtualauthenticator.VirtualAuthenticatorOptions"} +public distinct class VirtualAuthenticatorOptions { + + *java:JObject; + + # The `handle` field that stores the reference to the `org.openqa.selenium.virtualauthenticator.VirtualAuthenticatorOptions` object. + public handle jObj; + + # The init function of the Ballerina class mapping the `org.openqa.selenium.virtualauthenticator.VirtualAuthenticatorOptions` Java class. + # + # + obj - The `handle` value containing the Java reference of the object. + public isolated function init(handle obj) { + self.jObj = obj; + } + + # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.virtualauthenticator.VirtualAuthenticatorOptions` Java class. + # + # + return - The `string` form of the Java object instance. + public isolated function toString() returns string { + return java:toString(self.jObj) ?: ""; + } + +} + diff --git a/ballerina/modules/org.openqa.selenium/By.bal b/ballerina/modules/org.openqa.selenium/By.bal new file mode 100644 index 0000000..98895b2 --- /dev/null +++ b/ballerina/modules/org.openqa.selenium/By.bal @@ -0,0 +1,309 @@ +import selenium.java.lang as javalang; +import selenium.java.util as javautil; + +import ballerina/jballerina.java; + +# Ballerina class mapping for the Java `org.openqa.selenium.By` class. +@java:Binding {'class: "org.openqa.selenium.By"} +public distinct class By { + + *java:JObject; + *javalang:Object; + + # The `handle` field that stores the reference to the `org.openqa.selenium.By` object. + public handle jObj; + + # The init function of the Ballerina class mapping the `org.openqa.selenium.By` Java class. + # + # + obj - The `handle` value containing the Java reference of the object. + public isolated function init(handle obj) { + self.jObj = obj; + } + + # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.By` Java class. + # + # + return - The `string` form of the Java object instance. + public isolated function toString() returns string { + return java:toString(self.jObj) ?: ""; + } + + # The function that maps to the `equals` method of `org.openqa.selenium.By`. + # + # + o - The `javalang:Object` value required to map with the Java method parameter. + # + return - The `boolean` value returning from the Java mapping. + public isolated function 'equals(javalang:Object o) returns boolean { + return org_openqa_selenium_By_equals(self.jObj, o.jObj); + } + + # The function that maps to the `findElement` method of `org.openqa.selenium.By`. + # + # + context - The `SearchContext` value required to map with the Java method parameter. + # + return - The `WebElement` value returning from the Java mapping. + public isolated function findElement(SearchContext context) returns WebElement { + handle externalObj = org_openqa_selenium_By_findElement(self.jObj, context.jObj); + WebElement newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `findElements` method of `org.openqa.selenium.By`. + # + # + context - The `SearchContext` value required to map with the Java method parameter. + # + return - The `javautil:List` value returning from the Java mapping. + public isolated function findElements(SearchContext context) returns javautil:List { + handle externalObj = org_openqa_selenium_By_findElements(self.jObj, context.jObj); + javautil:List newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getClass` method of `org.openqa.selenium.By`. + # + # + return - The `javalang:Class` value returning from the Java mapping. + public isolated function getClass() returns javalang:Class { + handle externalObj = org_openqa_selenium_By_getClass(self.jObj); + javalang:Class newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `hashCode` method of `org.openqa.selenium.By`. + # + # + return - The `int` value returning from the Java mapping. + public isolated function hashCode() returns int { + return org_openqa_selenium_By_hashCode(self.jObj); + } + + # The function that maps to the `notify` method of `org.openqa.selenium.By`. + public isolated function notify() { + org_openqa_selenium_By_notify(self.jObj); + } + + # The function that maps to the `notifyAll` method of `org.openqa.selenium.By`. + public isolated function notifyAll() { + org_openqa_selenium_By_notifyAll(self.jObj); + } + + # The function that maps to the `wait` method of `org.openqa.selenium.By`. + # + # + return - The `javalang:InterruptedException` value returning from the Java mapping. + public isolated function 'wait() returns javalang:InterruptedException? { + error|() externalObj = org_openqa_selenium_By_wait(self.jObj); + if (externalObj is error) { + javalang:InterruptedException e = error javalang:InterruptedException(javalang:INTERRUPTEDEXCEPTION, externalObj, message = externalObj.message()); + return e; + } + } + + # The function that maps to the `wait` method of `org.openqa.selenium.By`. + # + # + arg0 - The `int` value required to map with the Java method parameter. + # + return - The `javalang:InterruptedException` value returning from the Java mapping. + public isolated function wait2(int arg0) returns javalang:InterruptedException? { + error|() externalObj = org_openqa_selenium_By_wait2(self.jObj, arg0); + if (externalObj is error) { + javalang:InterruptedException e = error javalang:InterruptedException(javalang:INTERRUPTEDEXCEPTION, externalObj, message = externalObj.message()); + return e; + } + } + + # The function that maps to the `wait` method of `org.openqa.selenium.By`. + # + # + arg0 - The `int` value required to map with the Java method parameter. + # + arg1 - The `int` value required to map with the Java method parameter. + # + return - The `javalang:InterruptedException` value returning from the Java mapping. + public isolated function wait3(int arg0, int arg1) returns javalang:InterruptedException? { + error|() externalObj = org_openqa_selenium_By_wait3(self.jObj, arg0, arg1); + if (externalObj is error) { + javalang:InterruptedException e = error javalang:InterruptedException(javalang:INTERRUPTEDEXCEPTION, externalObj, message = externalObj.message()); + return e; + } + } + +} + +# The function that maps to the `className` method of `org.openqa.selenium.By`. +# +# + className - The `string` value required to map with the Java method parameter. +# + return - The `By` value returning from the Java mapping. +public isolated function By_className(string className) returns By { + handle externalObj = org_openqa_selenium_By_className(java:fromString(className)); + By newObj = new (externalObj); + return newObj; +} + +# The function that maps to the `cssSelector` method of `org.openqa.selenium.By`. +# +# + cssSelector - The `string` value required to map with the Java method parameter. +# + return - The `By` value returning from the Java mapping. +public isolated function By_cssSelector(string cssSelector) returns By { + handle externalObj = org_openqa_selenium_By_cssSelector(java:fromString(cssSelector)); + By newObj = new (externalObj); + return newObj; +} + +# The function that maps to the `id` method of `org.openqa.selenium.By`. +# +# + id - The `string` value required to map with the Java method parameter. +# + return - The `By` value returning from the Java mapping. +public isolated function By_id(string id) returns By { + handle externalObj = org_openqa_selenium_By_id(java:fromString(id)); + By newObj = new (externalObj); + return newObj; +} + +# The function that maps to the `linkText` method of `org.openqa.selenium.By`. +# +# + linkText - The `string` value required to map with the Java method parameter. +# + return - The `By` value returning from the Java mapping. +public isolated function By_linkText(string linkText) returns By { + handle externalObj = org_openqa_selenium_By_linkText(java:fromString(linkText)); + By newObj = new (externalObj); + return newObj; +} + +# The function that maps to the `name` method of `org.openqa.selenium.By`. +# +# + name - The `string` value required to map with the Java method parameter. +# + return - The `By` value returning from the Java mapping. +public isolated function By_name(string name) returns By { + handle externalObj = org_openqa_selenium_By_name(java:fromString(name)); + By newObj = new (externalObj); + return newObj; +} + +# The function that maps to the `partialLinkText` method of `org.openqa.selenium.By`. +# +# + partialLinkText - The `string` value required to map with the Java method parameter. +# + return - The `By` value returning from the Java mapping. +public isolated function By_partialLinkText(string partialLinkText) returns By { + handle externalObj = org_openqa_selenium_By_partialLinkText(java:fromString(partialLinkText)); + By newObj = new (externalObj); + return newObj; +} + +# The function that maps to the `tagName` method of `org.openqa.selenium.By`. +# +# + tagName - The `string` value required to map with the Java method parameter. +# + return - The `By` value returning from the Java mapping. +public isolated function By_tagName(string tagName) returns By { + handle externalObj = org_openqa_selenium_By_tagName(java:fromString(tagName)); + By newObj = new (externalObj); + return newObj; +} + +# The function that maps to the `xpath` method of `org.openqa.selenium.By`. +# +# + xpathExpression - The `string` value required to map with the Java method parameter. +# + return - The `By` value returning from the Java mapping. +public isolated function By_xpath(string xpathExpression) returns By { + handle externalObj = org_openqa_selenium_By_xpath(java:fromString(xpathExpression)); + By newObj = new (externalObj); + return newObj; +} + +isolated function org_openqa_selenium_By_className(handle className) returns handle = @java:Method { + name: "className", + 'class: "org.openqa.selenium.By", + paramTypes: ["java.lang.String"] +} external; + +isolated function org_openqa_selenium_By_cssSelector(handle cssSelector) returns handle = @java:Method { + name: "cssSelector", + 'class: "org.openqa.selenium.By", + paramTypes: ["java.lang.String"] +} external; + +isolated function org_openqa_selenium_By_equals(handle receiver, handle o) returns boolean = @java:Method { + name: "equals", + 'class: "org.openqa.selenium.By", + paramTypes: ["java.lang.Object"] +} external; + +isolated function org_openqa_selenium_By_findElement(handle receiver, handle context) returns handle = @java:Method { + name: "findElement", + 'class: "org.openqa.selenium.By", + paramTypes: ["org.openqa.selenium.SearchContext"] +} external; + +isolated function org_openqa_selenium_By_findElements(handle receiver, handle context) returns handle = @java:Method { + name: "findElements", + 'class: "org.openqa.selenium.By", + paramTypes: ["org.openqa.selenium.SearchContext"] +} external; + +isolated function org_openqa_selenium_By_getClass(handle receiver) returns handle = @java:Method { + name: "getClass", + 'class: "org.openqa.selenium.By", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_By_hashCode(handle receiver) returns int = @java:Method { + name: "hashCode", + 'class: "org.openqa.selenium.By", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_By_id(handle id) returns handle = @java:Method { + name: "id", + 'class: "org.openqa.selenium.By", + paramTypes: ["java.lang.String"] +} external; + +isolated function org_openqa_selenium_By_linkText(handle linkText) returns handle = @java:Method { + name: "linkText", + 'class: "org.openqa.selenium.By", + paramTypes: ["java.lang.String"] +} external; + +isolated function org_openqa_selenium_By_name(handle name) returns handle = @java:Method { + name: "name", + 'class: "org.openqa.selenium.By", + paramTypes: ["java.lang.String"] +} external; + +isolated function org_openqa_selenium_By_notify(handle receiver) = @java:Method { + name: "notify", + 'class: "org.openqa.selenium.By", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_By_notifyAll(handle receiver) = @java:Method { + name: "notifyAll", + 'class: "org.openqa.selenium.By", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_By_partialLinkText(handle partialLinkText) returns handle = @java:Method { + name: "partialLinkText", + 'class: "org.openqa.selenium.By", + paramTypes: ["java.lang.String"] +} external; + +isolated function org_openqa_selenium_By_tagName(handle tagName) returns handle = @java:Method { + name: "tagName", + 'class: "org.openqa.selenium.By", + paramTypes: ["java.lang.String"] +} external; + +isolated function org_openqa_selenium_By_wait(handle receiver) returns error? = @java:Method { + name: "wait", + 'class: "org.openqa.selenium.By", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_By_wait2(handle receiver, int arg0) returns error? = @java:Method { + name: "wait", + 'class: "org.openqa.selenium.By", + paramTypes: ["long"] +} external; + +isolated function org_openqa_selenium_By_wait3(handle receiver, int arg0, int arg1) returns error? = @java:Method { + name: "wait", + 'class: "org.openqa.selenium.By", + paramTypes: ["long", "int"] +} external; + +isolated function org_openqa_selenium_By_xpath(handle xpathExpression) returns handle = @java:Method { + name: "xpath", + 'class: "org.openqa.selenium.By", + paramTypes: ["java.lang.String"] +} external; + diff --git a/ballerina/modules/org.openqa.selenium/Capabilities.bal b/ballerina/modules/org.openqa.selenium/Capabilities.bal new file mode 100644 index 0000000..e0f5d3a --- /dev/null +++ b/ballerina/modules/org.openqa.selenium/Capabilities.bal @@ -0,0 +1,39 @@ +// This is an empty Ballerina class autogenerated to represent the `org.openqa.selenium.Capabilities` Java interface. +// +// If you need the implementation of this class generated, please use the following command. +// +// $ bal bindgen [(-cp|--classpath) ...] +// [(-mvn|--maven) ::] +// [(-o|--output) ] +// [--public] +// (...) +// +// E.g. $ bal bindgen org.openqa.selenium.Capabilities + +import ballerina/jballerina.java; + +# Ballerina class mapping for the Java `org.openqa.selenium.Capabilities` interface. +@java:Binding {'class: "org.openqa.selenium.Capabilities"} +public distinct class Capabilities { + + *java:JObject; + + # The `handle` field that stores the reference to the `org.openqa.selenium.Capabilities` object. + public handle jObj; + + # The init function of the Ballerina class mapping the `org.openqa.selenium.Capabilities` Java interface. + # + # + obj - The `handle` value containing the Java reference of the object. + public isolated function init(handle obj) { + self.jObj = obj; + } + + # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.Capabilities` Java interface. + # + # + return - The `string` form of the Java object instance. + public isolated function toString() returns string { + return java:toString(self.jObj) ?: ""; + } + +} + diff --git a/ballerina/modules/org.openqa.selenium/Dimension.bal b/ballerina/modules/org.openqa.selenium/Dimension.bal new file mode 100644 index 0000000..1d3e79e --- /dev/null +++ b/ballerina/modules/org.openqa.selenium/Dimension.bal @@ -0,0 +1,190 @@ +import selenium.java.lang as javalang; + +import ballerina/jballerina.java; + +# Ballerina class mapping for the Java `org.openqa.selenium.Dimension` class. +@java:Binding {'class: "org.openqa.selenium.Dimension"} +public distinct class Dimension { + + *java:JObject; + *javalang:Object; + + # The `handle` field that stores the reference to the `org.openqa.selenium.Dimension` object. + public handle jObj; + + # The init function of the Ballerina class mapping the `org.openqa.selenium.Dimension` Java class. + # + # + obj - The `handle` value containing the Java reference of the object. + public isolated function init(handle obj) { + self.jObj = obj; + } + + # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.Dimension` Java class. + # + # + return - The `string` form of the Java object instance. + public isolated function toString() returns string { + return java:toString(self.jObj) ?: ""; + } + + # The function that maps to the `equals` method of `org.openqa.selenium.Dimension`. + # + # + o - The `javalang:Object` value required to map with the Java method parameter. + # + return - The `boolean` value returning from the Java mapping. + public isolated function 'equals(javalang:Object o) returns boolean { + return org_openqa_selenium_Dimension_equals(self.jObj, o.jObj); + } + + # The function that maps to the `getClass` method of `org.openqa.selenium.Dimension`. + # + # + return - The `javalang:Class` value returning from the Java mapping. + public isolated function getClass() returns javalang:Class { + handle externalObj = org_openqa_selenium_Dimension_getClass(self.jObj); + javalang:Class newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getHeight` method of `org.openqa.selenium.Dimension`. + # + # + return - The `int` value returning from the Java mapping. + public isolated function getHeight() returns int { + return org_openqa_selenium_Dimension_getHeight(self.jObj); + } + + # The function that maps to the `getWidth` method of `org.openqa.selenium.Dimension`. + # + # + return - The `int` value returning from the Java mapping. + public isolated function getWidth() returns int { + return org_openqa_selenium_Dimension_getWidth(self.jObj); + } + + # The function that maps to the `hashCode` method of `org.openqa.selenium.Dimension`. + # + # + return - The `int` value returning from the Java mapping. + public isolated function hashCode() returns int { + return org_openqa_selenium_Dimension_hashCode(self.jObj); + } + + # The function that maps to the `notify` method of `org.openqa.selenium.Dimension`. + public isolated function notify() { + org_openqa_selenium_Dimension_notify(self.jObj); + } + + # The function that maps to the `notifyAll` method of `org.openqa.selenium.Dimension`. + public isolated function notifyAll() { + org_openqa_selenium_Dimension_notifyAll(self.jObj); + } + + # The function that maps to the `wait` method of `org.openqa.selenium.Dimension`. + # + # + return - The `javalang:InterruptedException` value returning from the Java mapping. + public isolated function 'wait() returns javalang:InterruptedException? { + error|() externalObj = org_openqa_selenium_Dimension_wait(self.jObj); + if (externalObj is error) { + javalang:InterruptedException e = error javalang:InterruptedException(javalang:INTERRUPTEDEXCEPTION, externalObj, message = externalObj.message()); + return e; + } + } + + # The function that maps to the `wait` method of `org.openqa.selenium.Dimension`. + # + # + arg0 - The `int` value required to map with the Java method parameter. + # + return - The `javalang:InterruptedException` value returning from the Java mapping. + public isolated function wait2(int arg0) returns javalang:InterruptedException? { + error|() externalObj = org_openqa_selenium_Dimension_wait2(self.jObj, arg0); + if (externalObj is error) { + javalang:InterruptedException e = error javalang:InterruptedException(javalang:INTERRUPTEDEXCEPTION, externalObj, message = externalObj.message()); + return e; + } + } + + # The function that maps to the `wait` method of `org.openqa.selenium.Dimension`. + # + # + arg0 - The `int` value required to map with the Java method parameter. + # + arg1 - The `int` value required to map with the Java method parameter. + # + return - The `javalang:InterruptedException` value returning from the Java mapping. + public isolated function wait3(int arg0, int arg1) returns javalang:InterruptedException? { + error|() externalObj = org_openqa_selenium_Dimension_wait3(self.jObj, arg0, arg1); + if (externalObj is error) { + javalang:InterruptedException e = error javalang:InterruptedException(javalang:INTERRUPTEDEXCEPTION, externalObj, message = externalObj.message()); + return e; + } + } + +} + +# The constructor function to generate an object of `org.openqa.selenium.Dimension`. +# +# + width - The `int` value required to map with the Java constructor parameter. +# + height - The `int` value required to map with the Java constructor parameter. +# + return - The new `Dimension` class generated. +public isolated function newDimension1(int width, int height) returns Dimension { + handle externalObj = org_openqa_selenium_Dimension_newDimension1(width, height); + Dimension newObj = new (externalObj); + return newObj; +} + +isolated function org_openqa_selenium_Dimension_equals(handle receiver, handle o) returns boolean = @java:Method { + name: "equals", + 'class: "org.openqa.selenium.Dimension", + paramTypes: ["java.lang.Object"] +} external; + +isolated function org_openqa_selenium_Dimension_getClass(handle receiver) returns handle = @java:Method { + name: "getClass", + 'class: "org.openqa.selenium.Dimension", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_Dimension_getHeight(handle receiver) returns int = @java:Method { + name: "getHeight", + 'class: "org.openqa.selenium.Dimension", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_Dimension_getWidth(handle receiver) returns int = @java:Method { + name: "getWidth", + 'class: "org.openqa.selenium.Dimension", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_Dimension_hashCode(handle receiver) returns int = @java:Method { + name: "hashCode", + 'class: "org.openqa.selenium.Dimension", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_Dimension_notify(handle receiver) = @java:Method { + name: "notify", + 'class: "org.openqa.selenium.Dimension", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_Dimension_notifyAll(handle receiver) = @java:Method { + name: "notifyAll", + 'class: "org.openqa.selenium.Dimension", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_Dimension_wait(handle receiver) returns error? = @java:Method { + name: "wait", + 'class: "org.openqa.selenium.Dimension", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_Dimension_wait2(handle receiver, int arg0) returns error? = @java:Method { + name: "wait", + 'class: "org.openqa.selenium.Dimension", + paramTypes: ["long"] +} external; + +isolated function org_openqa_selenium_Dimension_wait3(handle receiver, int arg0, int arg1) returns error? = @java:Method { + name: "wait", + 'class: "org.openqa.selenium.Dimension", + paramTypes: ["long", "int"] +} external; + +isolated function org_openqa_selenium_Dimension_newDimension1(int width, int height) returns handle = @java:Constructor { + 'class: "org.openqa.selenium.Dimension", + paramTypes: ["int", "int"] +} external; + diff --git a/ballerina/modules/org.openqa.selenium/Navigation.bal b/ballerina/modules/org.openqa.selenium/Navigation.bal new file mode 100644 index 0000000..595d875 --- /dev/null +++ b/ballerina/modules/org.openqa.selenium/Navigation.bal @@ -0,0 +1,39 @@ +// This is an empty Ballerina class autogenerated to represent the `org.openqa.selenium.WebDriver$Navigation` Java interface. +// +// If you need the implementation of this class generated, please use the following command. +// +// $ bal bindgen [(-cp|--classpath) ...] +// [(-mvn|--maven) ::] +// [(-o|--output) ] +// [--public] +// (...) +// +// E.g. $ bal bindgen org.openqa.selenium.WebDriver\$Navigation + +import ballerina/jballerina.java; + +# Ballerina class mapping for the Java `org.openqa.selenium.WebDriver$Navigation` interface. +@java:Binding {'class: "org.openqa.selenium.WebDriver$Navigation"} +public distinct class Navigation { + + *java:JObject; + + # The `handle` field that stores the reference to the `org.openqa.selenium.WebDriver$Navigation` object. + public handle jObj; + + # The init function of the Ballerina class mapping the `org.openqa.selenium.WebDriver$Navigation` Java interface. + # + # + obj - The `handle` value containing the Java reference of the object. + public isolated function init(handle obj) { + self.jObj = obj; + } + + # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.WebDriver$Navigation` Java interface. + # + # + return - The `string` form of the Java object instance. + public isolated function toString() returns string { + return java:toString(self.jObj) ?: ""; + } + +} + diff --git a/ballerina/modules/org.openqa.selenium/Options.bal b/ballerina/modules/org.openqa.selenium/Options.bal new file mode 100644 index 0000000..9e4e134 --- /dev/null +++ b/ballerina/modules/org.openqa.selenium/Options.bal @@ -0,0 +1,39 @@ +// This is an empty Ballerina class autogenerated to represent the `org.openqa.selenium.WebDriver$Options` Java interface. +// +// If you need the implementation of this class generated, please use the following command. +// +// $ bal bindgen [(-cp|--classpath) ...] +// [(-mvn|--maven) ::] +// [(-o|--output) ] +// [--public] +// (...) +// +// E.g. $ bal bindgen org.openqa.selenium.WebDriver\$Options + +import ballerina/jballerina.java; + +# Ballerina class mapping for the Java `org.openqa.selenium.WebDriver$Options` interface. +@java:Binding {'class: "org.openqa.selenium.WebDriver$Options"} +public distinct class Options { + + *java:JObject; + + # The `handle` field that stores the reference to the `org.openqa.selenium.WebDriver$Options` object. + public handle jObj; + + # The init function of the Ballerina class mapping the `org.openqa.selenium.WebDriver$Options` Java interface. + # + # + obj - The `handle` value containing the Java reference of the object. + public isolated function init(handle obj) { + self.jObj = obj; + } + + # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.WebDriver$Options` Java interface. + # + # + return - The `string` form of the Java object instance. + public isolated function toString() returns string { + return java:toString(self.jObj) ?: ""; + } + +} + diff --git a/ballerina/modules/org.openqa.selenium/OutputType.bal b/ballerina/modules/org.openqa.selenium/OutputType.bal new file mode 100644 index 0000000..352fed9 --- /dev/null +++ b/ballerina/modules/org.openqa.selenium/OutputType.bal @@ -0,0 +1,39 @@ +// This is an empty Ballerina class autogenerated to represent the `org.openqa.selenium.OutputType` Java interface. +// +// If you need the implementation of this class generated, please use the following command. +// +// $ bal bindgen [(-cp|--classpath) ...] +// [(-mvn|--maven) ::] +// [(-o|--output) ] +// [--public] +// (...) +// +// E.g. $ bal bindgen org.openqa.selenium.OutputType + +import ballerina/jballerina.java; + +# Ballerina class mapping for the Java `org.openqa.selenium.OutputType` interface. +@java:Binding {'class: "org.openqa.selenium.OutputType"} +public distinct class OutputType { + + *java:JObject; + + # The `handle` field that stores the reference to the `org.openqa.selenium.OutputType` object. + public handle jObj; + + # The init function of the Ballerina class mapping the `org.openqa.selenium.OutputType` Java interface. + # + # + obj - The `handle` value containing the Java reference of the object. + public isolated function init(handle obj) { + self.jObj = obj; + } + + # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.OutputType` Java interface. + # + # + return - The `string` form of the Java object instance. + public isolated function toString() returns string { + return java:toString(self.jObj) ?: ""; + } + +} + diff --git a/ballerina/modules/org.openqa.selenium/Pdf.bal b/ballerina/modules/org.openqa.selenium/Pdf.bal new file mode 100644 index 0000000..f5534b8 --- /dev/null +++ b/ballerina/modules/org.openqa.selenium/Pdf.bal @@ -0,0 +1,39 @@ +// This is an empty Ballerina class autogenerated to represent the `org.openqa.selenium.Pdf` Java class. +// +// If you need the implementation of this class generated, please use the following command. +// +// $ bal bindgen [(-cp|--classpath) ...] +// [(-mvn|--maven) ::] +// [(-o|--output) ] +// [--public] +// (...) +// +// E.g. $ bal bindgen org.openqa.selenium.Pdf + +import ballerina/jballerina.java; + +# Ballerina class mapping for the Java `org.openqa.selenium.Pdf` class. +@java:Binding {'class: "org.openqa.selenium.Pdf"} +public distinct class Pdf { + + *java:JObject; + + # The `handle` field that stores the reference to the `org.openqa.selenium.Pdf` object. + public handle jObj; + + # The init function of the Ballerina class mapping the `org.openqa.selenium.Pdf` Java class. + # + # + obj - The `handle` value containing the Java reference of the object. + public isolated function init(handle obj) { + self.jObj = obj; + } + + # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.Pdf` Java class. + # + # + return - The `string` form of the Java object instance. + public isolated function toString() returns string { + return java:toString(self.jObj) ?: ""; + } + +} + diff --git a/ballerina/modules/org.openqa.selenium/Point.bal b/ballerina/modules/org.openqa.selenium/Point.bal new file mode 100644 index 0000000..1eaa46b --- /dev/null +++ b/ballerina/modules/org.openqa.selenium/Point.bal @@ -0,0 +1,39 @@ +// This is an empty Ballerina class autogenerated to represent the `org.openqa.selenium.Point` Java class. +// +// If you need the implementation of this class generated, please use the following command. +// +// $ bal bindgen [(-cp|--classpath) ...] +// [(-mvn|--maven) ::] +// [(-o|--output) ] +// [--public] +// (...) +// +// E.g. $ bal bindgen org.openqa.selenium.Point + +import ballerina/jballerina.java; + +# Ballerina class mapping for the Java `org.openqa.selenium.Point` class. +@java:Binding {'class: "org.openqa.selenium.Point"} +public distinct class Point { + + *java:JObject; + + # The `handle` field that stores the reference to the `org.openqa.selenium.Point` object. + public handle jObj; + + # The init function of the Ballerina class mapping the `org.openqa.selenium.Point` Java class. + # + # + obj - The `handle` value containing the Java reference of the object. + public isolated function init(handle obj) { + self.jObj = obj; + } + + # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.Point` Java class. + # + # + return - The `string` form of the Java object instance. + public isolated function toString() returns string { + return java:toString(self.jObj) ?: ""; + } + +} + diff --git a/ballerina/modules/org.openqa.selenium/Rectangle.bal b/ballerina/modules/org.openqa.selenium/Rectangle.bal new file mode 100644 index 0000000..a5e0f5a --- /dev/null +++ b/ballerina/modules/org.openqa.selenium/Rectangle.bal @@ -0,0 +1,39 @@ +// This is an empty Ballerina class autogenerated to represent the `org.openqa.selenium.Rectangle` Java class. +// +// If you need the implementation of this class generated, please use the following command. +// +// $ bal bindgen [(-cp|--classpath) ...] +// [(-mvn|--maven) ::] +// [(-o|--output) ] +// [--public] +// (...) +// +// E.g. $ bal bindgen org.openqa.selenium.Rectangle + +import ballerina/jballerina.java; + +# Ballerina class mapping for the Java `org.openqa.selenium.Rectangle` class. +@java:Binding {'class: "org.openqa.selenium.Rectangle"} +public distinct class Rectangle { + + *java:JObject; + + # The `handle` field that stores the reference to the `org.openqa.selenium.Rectangle` object. + public handle jObj; + + # The init function of the Ballerina class mapping the `org.openqa.selenium.Rectangle` Java class. + # + # + obj - The `handle` value containing the Java reference of the object. + public isolated function init(handle obj) { + self.jObj = obj; + } + + # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.Rectangle` Java class. + # + # + return - The `string` form of the Java object instance. + public isolated function toString() returns string { + return java:toString(self.jObj) ?: ""; + } + +} + diff --git a/ballerina/modules/org.openqa.selenium/ScriptKey.bal b/ballerina/modules/org.openqa.selenium/ScriptKey.bal new file mode 100644 index 0000000..cae631e --- /dev/null +++ b/ballerina/modules/org.openqa.selenium/ScriptKey.bal @@ -0,0 +1,39 @@ +// This is an empty Ballerina class autogenerated to represent the `org.openqa.selenium.ScriptKey` Java class. +// +// If you need the implementation of this class generated, please use the following command. +// +// $ bal bindgen [(-cp|--classpath) ...] +// [(-mvn|--maven) ::] +// [(-o|--output) ] +// [--public] +// (...) +// +// E.g. $ bal bindgen org.openqa.selenium.ScriptKey + +import ballerina/jballerina.java; + +# Ballerina class mapping for the Java `org.openqa.selenium.ScriptKey` class. +@java:Binding {'class: "org.openqa.selenium.ScriptKey"} +public distinct class ScriptKey { + + *java:JObject; + + # The `handle` field that stores the reference to the `org.openqa.selenium.ScriptKey` object. + public handle jObj; + + # The init function of the Ballerina class mapping the `org.openqa.selenium.ScriptKey` Java class. + # + # + obj - The `handle` value containing the Java reference of the object. + public isolated function init(handle obj) { + self.jObj = obj; + } + + # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.ScriptKey` Java class. + # + # + return - The `string` form of the Java object instance. + public isolated function toString() returns string { + return java:toString(self.jObj) ?: ""; + } + +} + diff --git a/ballerina/modules/org.openqa.selenium/SearchContext.bal b/ballerina/modules/org.openqa.selenium/SearchContext.bal new file mode 100644 index 0000000..3bc1a42 --- /dev/null +++ b/ballerina/modules/org.openqa.selenium/SearchContext.bal @@ -0,0 +1,39 @@ +// This is an empty Ballerina class autogenerated to represent the `org.openqa.selenium.SearchContext` Java interface. +// +// If you need the implementation of this class generated, please use the following command. +// +// $ bal bindgen [(-cp|--classpath) ...] +// [(-mvn|--maven) ::] +// [(-o|--output) ] +// [--public] +// (...) +// +// E.g. $ bal bindgen org.openqa.selenium.SearchContext + +import ballerina/jballerina.java; + +# Ballerina class mapping for the Java `org.openqa.selenium.SearchContext` interface. +@java:Binding {'class: "org.openqa.selenium.SearchContext"} +public distinct class SearchContext { + + *java:JObject; + + # The `handle` field that stores the reference to the `org.openqa.selenium.SearchContext` object. + public handle jObj; + + # The init function of the Ballerina class mapping the `org.openqa.selenium.SearchContext` Java interface. + # + # + obj - The `handle` value containing the Java reference of the object. + public isolated function init(handle obj) { + self.jObj = obj; + } + + # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.SearchContext` Java interface. + # + # + return - The `string` form of the Java object instance. + public isolated function toString() returns string { + return java:toString(self.jObj) ?: ""; + } + +} + diff --git a/ballerina/modules/org.openqa.selenium/TargetLocator.bal b/ballerina/modules/org.openqa.selenium/TargetLocator.bal new file mode 100644 index 0000000..3a544df --- /dev/null +++ b/ballerina/modules/org.openqa.selenium/TargetLocator.bal @@ -0,0 +1,39 @@ +// This is an empty Ballerina class autogenerated to represent the `org.openqa.selenium.WebDriver$TargetLocator` Java interface. +// +// If you need the implementation of this class generated, please use the following command. +// +// $ bal bindgen [(-cp|--classpath) ...] +// [(-mvn|--maven) ::] +// [(-o|--output) ] +// [--public] +// (...) +// +// E.g. $ bal bindgen org.openqa.selenium.WebDriver\$TargetLocator + +import ballerina/jballerina.java; + +# Ballerina class mapping for the Java `org.openqa.selenium.WebDriver$TargetLocator` interface. +@java:Binding {'class: "org.openqa.selenium.WebDriver$TargetLocator"} +public distinct class TargetLocator { + + *java:JObject; + + # The `handle` field that stores the reference to the `org.openqa.selenium.WebDriver$TargetLocator` object. + public handle jObj; + + # The init function of the Ballerina class mapping the `org.openqa.selenium.WebDriver$TargetLocator` Java interface. + # + # + obj - The `handle` value containing the Java reference of the object. + public isolated function init(handle obj) { + self.jObj = obj; + } + + # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.WebDriver$TargetLocator` Java interface. + # + # + return - The `string` form of the Java object instance. + public isolated function toString() returns string { + return java:toString(self.jObj) ?: ""; + } + +} + diff --git a/ballerina/modules/org.openqa.selenium/WebDriver.bal b/ballerina/modules/org.openqa.selenium/WebDriver.bal new file mode 100644 index 0000000..5f8b37e --- /dev/null +++ b/ballerina/modules/org.openqa.selenium/WebDriver.bal @@ -0,0 +1,208 @@ +import selenium.java.util as javautil; + +import ballerina/jballerina.java; + +# Ballerina class mapping for the Java `org.openqa.selenium.WebDriver` interface. +@java:Binding {'class: "org.openqa.selenium.WebDriver"} +public distinct class WebDriver { + + *java:JObject; + + # The `handle` field that stores the reference to the `org.openqa.selenium.WebDriver` object. + public handle jObj; + + # The init function of the Ballerina class mapping the `org.openqa.selenium.WebDriver` Java interface. + # + # + obj - The `handle` value containing the Java reference of the object. + public isolated function init(handle obj) { + self.jObj = obj; + } + + # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.WebDriver` Java interface. + # + # + return - The `string` form of the Java object instance. + public isolated function toString() returns string { + return java:toString(self.jObj) ?: ""; + } + + # The function that maps to the `close` method of `org.openqa.selenium.WebDriver`. + public isolated function close() { + org_openqa_selenium_WebDriver_close(self.jObj); + } + + # The function that maps to the `findElement` method of `org.openqa.selenium.WebDriver`. + # + # + arg0 - The `By` value required to map with the Java method parameter. + # + return - The `WebElement` value returning from the Java mapping. + public isolated function findElement(By arg0) returns WebElement { + handle externalObj = org_openqa_selenium_WebDriver_findElement(self.jObj, arg0.jObj); + WebElement newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `findElements` method of `org.openqa.selenium.WebDriver`. + # + # + arg0 - The `By` value required to map with the Java method parameter. + # + return - The `javautil:List` value returning from the Java mapping. + public isolated function findElements(By arg0) returns javautil:List { + handle externalObj = org_openqa_selenium_WebDriver_findElements(self.jObj, arg0.jObj); + javautil:List newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `get` method of `org.openqa.selenium.WebDriver`. + # + # + url - The `string` value required to map with the Java method parameter. + public isolated function get(string url) { + org_openqa_selenium_WebDriver_get(self.jObj, java:fromString(url)); + } + + # The function that maps to the `getCurrentUrl` method of `org.openqa.selenium.WebDriver`. + # + # + return - The `string` value returning from the Java mapping. + public isolated function getCurrentUrl() returns string { + return java:toString(org_openqa_selenium_WebDriver_getCurrentUrl(self.jObj)) ?: ""; + } + + # The function that maps to the `getPageSource` method of `org.openqa.selenium.WebDriver`. + # + # + return - The `string` value returning from the Java mapping. + public isolated function getPageSource() returns string { + return java:toString(org_openqa_selenium_WebDriver_getPageSource(self.jObj)) ?: ""; + } + + # The function that maps to the `getTitle` method of `org.openqa.selenium.WebDriver`. + # + # + return - The `string` value returning from the Java mapping. + public isolated function getTitle() returns string { + return java:toString(org_openqa_selenium_WebDriver_getTitle(self.jObj)) ?: ""; + } + + # The function that maps to the `getWindowHandle` method of `org.openqa.selenium.WebDriver`. + # + # + return - The `string` value returning from the Java mapping. + public isolated function getWindowHandle() returns string { + return java:toString(org_openqa_selenium_WebDriver_getWindowHandle(self.jObj)) ?: ""; + } + + # The function that maps to the `getWindowHandles` method of `org.openqa.selenium.WebDriver`. + # + # + return - The `javautil:Set` value returning from the Java mapping. + public isolated function getWindowHandles() returns javautil:Set { + handle externalObj = org_openqa_selenium_WebDriver_getWindowHandles(self.jObj); + javautil:Set newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `manage` method of `org.openqa.selenium.WebDriver`. + # + # + return - The `Options` value returning from the Java mapping. + public isolated function manage() returns Options { + handle externalObj = org_openqa_selenium_WebDriver_manage(self.jObj); + Options newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `navigate` method of `org.openqa.selenium.WebDriver`. + # + # + return - The `Navigation` value returning from the Java mapping. + public isolated function navigate() returns Navigation { + handle externalObj = org_openqa_selenium_WebDriver_navigate(self.jObj); + Navigation newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `quit` method of `org.openqa.selenium.WebDriver`. + public isolated function quit() { + org_openqa_selenium_WebDriver_quit(self.jObj); + } + + # The function that maps to the `switchTo` method of `org.openqa.selenium.WebDriver`. + # + # + return - The `TargetLocator` value returning from the Java mapping. + public isolated function switchTo() returns TargetLocator { + handle externalObj = org_openqa_selenium_WebDriver_switchTo(self.jObj); + TargetLocator newObj = new (externalObj); + return newObj; + } + +} + +isolated function org_openqa_selenium_WebDriver_close(handle receiver) = @java:Method { + name: "close", + 'class: "org.openqa.selenium.WebDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_WebDriver_findElement(handle receiver, handle arg0) returns handle = @java:Method { + name: "findElement", + 'class: "org.openqa.selenium.WebDriver", + paramTypes: ["org.openqa.selenium.By"] +} external; + +isolated function org_openqa_selenium_WebDriver_findElements(handle receiver, handle arg0) returns handle = @java:Method { + name: "findElements", + 'class: "org.openqa.selenium.WebDriver", + paramTypes: ["org.openqa.selenium.By"] +} external; + +isolated function org_openqa_selenium_WebDriver_get(handle receiver, handle url) = @java:Method { + name: "get", + 'class: "org.openqa.selenium.WebDriver", + paramTypes: ["java.lang.String"] +} external; + +isolated function org_openqa_selenium_WebDriver_getCurrentUrl(handle receiver) returns handle = @java:Method { + name: "getCurrentUrl", + 'class: "org.openqa.selenium.WebDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_WebDriver_getPageSource(handle receiver) returns handle = @java:Method { + name: "getPageSource", + 'class: "org.openqa.selenium.WebDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_WebDriver_getTitle(handle receiver) returns handle = @java:Method { + name: "getTitle", + 'class: "org.openqa.selenium.WebDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_WebDriver_getWindowHandle(handle receiver) returns handle = @java:Method { + name: "getWindowHandle", + 'class: "org.openqa.selenium.WebDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_WebDriver_getWindowHandles(handle receiver) returns handle = @java:Method { + name: "getWindowHandles", + 'class: "org.openqa.selenium.WebDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_WebDriver_manage(handle receiver) returns handle = @java:Method { + name: "manage", + 'class: "org.openqa.selenium.WebDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_WebDriver_navigate(handle receiver) returns handle = @java:Method { + name: "navigate", + 'class: "org.openqa.selenium.WebDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_WebDriver_quit(handle receiver) = @java:Method { + name: "quit", + 'class: "org.openqa.selenium.WebDriver", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_WebDriver_switchTo(handle receiver) returns handle = @java:Method { + name: "switchTo", + 'class: "org.openqa.selenium.WebDriver", + paramTypes: [] +} external; + diff --git a/ballerina/modules/org.openqa.selenium/WebElement.bal b/ballerina/modules/org.openqa.selenium/WebElement.bal new file mode 100644 index 0000000..d7704d1 --- /dev/null +++ b/ballerina/modules/org.openqa.selenium/WebElement.bal @@ -0,0 +1,333 @@ +import selenium.java.lang as javalang; +import selenium.java.util as javautil; + +import ballerina/jballerina.java; +import ballerina/jballerina.java.arrays as jarrays; + +# Ballerina class mapping for the Java `org.openqa.selenium.WebElement` interface. +@java:Binding {'class: "org.openqa.selenium.WebElement"} +public distinct class WebElement { + + *java:JObject; + + # The `handle` field that stores the reference to the `org.openqa.selenium.WebElement` object. + public handle jObj; + + # The init function of the Ballerina class mapping the `org.openqa.selenium.WebElement` Java interface. + # + # + obj - The `handle` value containing the Java reference of the object. + public isolated function init(handle obj) { + self.jObj = obj; + } + + # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.WebElement` Java interface. + # + # + return - The `string` form of the Java object instance. + public isolated function toString() returns string { + return java:toString(self.jObj) ?: ""; + } + + # The function that maps to the `clear` method of `org.openqa.selenium.WebElement`. + public isolated function clear() { + org_openqa_selenium_WebElement_clear(self.jObj); + } + + # The function that maps to the `click` method of `org.openqa.selenium.WebElement`. + public isolated function click() { + org_openqa_selenium_WebElement_click(self.jObj); + } + + # The function that maps to the `findElement` method of `org.openqa.selenium.WebElement`. + # + # + arg0 - The `By` value required to map with the Java method parameter. + # + return - The `WebElement` value returning from the Java mapping. + public isolated function findElement(By arg0) returns WebElement { + handle externalObj = org_openqa_selenium_WebElement_findElement(self.jObj, arg0.jObj); + WebElement newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `findElements` method of `org.openqa.selenium.WebElement`. + # + # + arg0 - The `By` value required to map with the Java method parameter. + # + return - The `javautil:List` value returning from the Java mapping. + public isolated function findElements(By arg0) returns javautil:List { + handle externalObj = org_openqa_selenium_WebElement_findElements(self.jObj, arg0.jObj); + javautil:List newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getAccessibleName` method of `org.openqa.selenium.WebElement`. + # + # + return - The `string` value returning from the Java mapping. + public isolated function getAccessibleName() returns string { + return java:toString(org_openqa_selenium_WebElement_getAccessibleName(self.jObj)) ?: ""; + } + + # The function that maps to the `getAriaRole` method of `org.openqa.selenium.WebElement`. + # + # + return - The `string` value returning from the Java mapping. + public isolated function getAriaRole() returns string { + return java:toString(org_openqa_selenium_WebElement_getAriaRole(self.jObj)) ?: ""; + } + + # The function that maps to the `getAttribute` method of `org.openqa.selenium.WebElement`. + # + # + name - The `string` value required to map with the Java method parameter. + # + return - The `string` value returning from the Java mapping. + public isolated function getAttribute(string name) returns string { + return java:toString(org_openqa_selenium_WebElement_getAttribute(self.jObj, java:fromString(name))) ?: ""; + } + + # The function that maps to the `getCssValue` method of `org.openqa.selenium.WebElement`. + # + # + propertyName - The `string` value required to map with the Java method parameter. + # + return - The `string` value returning from the Java mapping. + public isolated function getCssValue(string propertyName) returns string { + return java:toString(org_openqa_selenium_WebElement_getCssValue(self.jObj, java:fromString(propertyName))) ?: ""; + } + + # The function that maps to the `getDomAttribute` method of `org.openqa.selenium.WebElement`. + # + # + name - The `string` value required to map with the Java method parameter. + # + return - The `string` value returning from the Java mapping. + public isolated function getDomAttribute(string name) returns string { + return java:toString(org_openqa_selenium_WebElement_getDomAttribute(self.jObj, java:fromString(name))) ?: ""; + } + + # The function that maps to the `getDomProperty` method of `org.openqa.selenium.WebElement`. + # + # + name - The `string` value required to map with the Java method parameter. + # + return - The `string` value returning from the Java mapping. + public isolated function getDomProperty(string name) returns string { + return java:toString(org_openqa_selenium_WebElement_getDomProperty(self.jObj, java:fromString(name))) ?: ""; + } + + # The function that maps to the `getLocation` method of `org.openqa.selenium.WebElement`. + # + # + return - The `Point` value returning from the Java mapping. + public isolated function getLocation() returns Point { + handle externalObj = org_openqa_selenium_WebElement_getLocation(self.jObj); + Point newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getRect` method of `org.openqa.selenium.WebElement`. + # + # + return - The `Rectangle` value returning from the Java mapping. + public isolated function getRect() returns Rectangle { + handle externalObj = org_openqa_selenium_WebElement_getRect(self.jObj); + Rectangle newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getScreenshotAs` method of `org.openqa.selenium.WebElement`. + # + # + target - The `OutputType` value required to map with the Java method parameter. + # + return - The `javalang:Object` value returning from the Java mapping. + public isolated function getScreenshotAs(OutputType target) returns javalang:Object { + handle externalObj = org_openqa_selenium_WebElement_getScreenshotAs(self.jObj, target.jObj); + javalang:Object newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getShadowRoot` method of `org.openqa.selenium.WebElement`. + # + # + return - The `SearchContext` value returning from the Java mapping. + public isolated function getShadowRoot() returns SearchContext { + handle externalObj = org_openqa_selenium_WebElement_getShadowRoot(self.jObj); + SearchContext newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getSize` method of `org.openqa.selenium.WebElement`. + # + # + return - The `Dimension` value returning from the Java mapping. + public isolated function getSize() returns Dimension { + handle externalObj = org_openqa_selenium_WebElement_getSize(self.jObj); + Dimension newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `getTagName` method of `org.openqa.selenium.WebElement`. + # + # + return - The `string` value returning from the Java mapping. + public isolated function getTagName() returns string { + return java:toString(org_openqa_selenium_WebElement_getTagName(self.jObj)) ?: ""; + } + + # The function that maps to the `getText` method of `org.openqa.selenium.WebElement`. + # + # + return - The `string` value returning from the Java mapping. + public isolated function getText() returns string { + return java:toString(org_openqa_selenium_WebElement_getText(self.jObj)) ?: ""; + } + + # The function that maps to the `isDisplayed` method of `org.openqa.selenium.WebElement`. + # + # + return - The `boolean` value returning from the Java mapping. + public isolated function isDisplayed() returns boolean { + return org_openqa_selenium_WebElement_isDisplayed(self.jObj); + } + + # The function that maps to the `isEnabled` method of `org.openqa.selenium.WebElement`. + # + # + return - The `boolean` value returning from the Java mapping. + public isolated function isEnabled() returns boolean { + return org_openqa_selenium_WebElement_isEnabled(self.jObj); + } + + # The function that maps to the `isSelected` method of `org.openqa.selenium.WebElement`. + # + # + return - The `boolean` value returning from the Java mapping. + public isolated function isSelected() returns boolean { + return org_openqa_selenium_WebElement_isSelected(self.jObj); + } + + # The function that maps to the `sendKeys` method of `org.openqa.selenium.WebElement`. + # + # + keysToSend - The `javalang:CharSequence[]` value required to map with the Java method parameter. + # + return - The `error?` value returning from the Java mapping. + public isolated function sendKeys(string[] keysToSend) returns error? { + org_openqa_selenium_WebElement_sendKeys(self.jObj, check jarrays:toHandle(keysToSend, "java.lang.CharSequence")); + } + + # The function that maps to the `submit` method of `org.openqa.selenium.WebElement`. + public isolated function submit() { + org_openqa_selenium_WebElement_submit(self.jObj); + } + +} + +isolated function org_openqa_selenium_WebElement_clear(handle receiver) = @java:Method { + name: "clear", + 'class: "org.openqa.selenium.WebElement", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_WebElement_click(handle receiver) = @java:Method { + name: "click", + 'class: "org.openqa.selenium.WebElement", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_WebElement_findElement(handle receiver, handle arg0) returns handle = @java:Method { + name: "findElement", + 'class: "org.openqa.selenium.WebElement", + paramTypes: ["org.openqa.selenium.By"] +} external; + +isolated function org_openqa_selenium_WebElement_findElements(handle receiver, handle arg0) returns handle = @java:Method { + name: "findElements", + 'class: "org.openqa.selenium.WebElement", + paramTypes: ["org.openqa.selenium.By"] +} external; + +isolated function org_openqa_selenium_WebElement_getAccessibleName(handle receiver) returns handle = @java:Method { + name: "getAccessibleName", + 'class: "org.openqa.selenium.WebElement", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_WebElement_getAriaRole(handle receiver) returns handle = @java:Method { + name: "getAriaRole", + 'class: "org.openqa.selenium.WebElement", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_WebElement_getAttribute(handle receiver, handle name) returns handle = @java:Method { + name: "getAttribute", + 'class: "org.openqa.selenium.WebElement", + paramTypes: ["java.lang.String"] +} external; + +isolated function org_openqa_selenium_WebElement_getCssValue(handle receiver, handle propertyName) returns handle = @java:Method { + name: "getCssValue", + 'class: "org.openqa.selenium.WebElement", + paramTypes: ["java.lang.String"] +} external; + +isolated function org_openqa_selenium_WebElement_getDomAttribute(handle receiver, handle name) returns handle = @java:Method { + name: "getDomAttribute", + 'class: "org.openqa.selenium.WebElement", + paramTypes: ["java.lang.String"] +} external; + +isolated function org_openqa_selenium_WebElement_getDomProperty(handle receiver, handle name) returns handle = @java:Method { + name: "getDomProperty", + 'class: "org.openqa.selenium.WebElement", + paramTypes: ["java.lang.String"] +} external; + +isolated function org_openqa_selenium_WebElement_getLocation(handle receiver) returns handle = @java:Method { + name: "getLocation", + 'class: "org.openqa.selenium.WebElement", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_WebElement_getRect(handle receiver) returns handle = @java:Method { + name: "getRect", + 'class: "org.openqa.selenium.WebElement", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_WebElement_getScreenshotAs(handle receiver, handle target) returns handle = @java:Method { + name: "getScreenshotAs", + 'class: "org.openqa.selenium.WebElement", + paramTypes: ["org.openqa.selenium.OutputType"] +} external; + +isolated function org_openqa_selenium_WebElement_getShadowRoot(handle receiver) returns handle = @java:Method { + name: "getShadowRoot", + 'class: "org.openqa.selenium.WebElement", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_WebElement_getSize(handle receiver) returns handle = @java:Method { + name: "getSize", + 'class: "org.openqa.selenium.WebElement", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_WebElement_getTagName(handle receiver) returns handle = @java:Method { + name: "getTagName", + 'class: "org.openqa.selenium.WebElement", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_WebElement_getText(handle receiver) returns handle = @java:Method { + name: "getText", + 'class: "org.openqa.selenium.WebElement", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_WebElement_isDisplayed(handle receiver) returns boolean = @java:Method { + name: "isDisplayed", + 'class: "org.openqa.selenium.WebElement", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_WebElement_isEnabled(handle receiver) returns boolean = @java:Method { + name: "isEnabled", + 'class: "org.openqa.selenium.WebElement", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_WebElement_isSelected(handle receiver) returns boolean = @java:Method { + name: "isSelected", + 'class: "org.openqa.selenium.WebElement", + paramTypes: [] +} external; + +isolated function org_openqa_selenium_WebElement_sendKeys(handle receiver, handle keysToSend) = @java:Method { + name: "sendKeys", + 'class: "org.openqa.selenium.WebElement", + paramTypes: ["[Ljava.lang.CharSequence;"] +} external; + +isolated function org_openqa_selenium_WebElement_submit(handle receiver) = @java:Method { + name: "submit", + 'class: "org.openqa.selenium.WebElement", + paramTypes: [] +} external; + diff --git a/ballerina/resources/enter base url - side.png b/ballerina/resources/enter base url - side.png new file mode 100644 index 0000000000000000000000000000000000000000..4d7c9f3fa37bbc61ac7968e886689cfad50c08ea GIT binary patch literal 76545 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 m18!!1ooEtgZT8H4y=03& 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 literal 0 HcmV?d00001 diff --git a/ballerina/resources/new project - side.png b/ballerina/resources/new project - side.png new file mode 100644 index 0000000000000000000000000000000000000000..70963fba53d8df6a5dd606572d52d22f6420b4b0 GIT binary patch literal 84398 zcmd@6c{tSTA3u)kbjqRVRF)z-t#%Sa_EN|$vtY(jG?p2IFoY~6IuR=SG9(N$W9(xY z%OqK{Z!^O%Bn>f^&{)Gyr%vbnxqjF6`Rn`r>w90AO1MFcjdSKeDdDMJ|9a1U9O_;Q!{&&-(9YmUgP2_ zjXU)1&Vju;kJn8bA1*GT3*TS+3@y)p;o{oOGrVyPbl-lC$$eXterI>-^wqHazpr6e zlVm$8W#jH&=*sN!vjhYIa!k|va!una4H<(d?0~b1>BzI#^QivNRr|`x`)y^i9gOs| zQvA<zxY4VF+ImgrXuIdUaJW1@4xg#_ zycXuuh`?Th50_O4VN^!a?*4rrye|XS(>%$43GZEh!P`x$b8ZW?)x*nPAXl~^-Fs(jC}{3f)>8^ zG2)Vp4CraAi@7^yJOxi{EF9DM-kU9i0kO~Kbs)Zce_rmN{!QYRoc4V<_10?dE?4=T zmK3ehU2$mpZ+o>A@s0glcfW-EvG@IUB_5d$0*>n&+k9_$=(wEkzD_}+&G$}a&j;Ia z^Ze7>_j_DiuRxEk*QZ*nk`}ki$br8dXMQnB?04R^WV%CK(?=;c0C@?dzU9h;+aqGd z?V#_E`cdA%&x=RjZAqA)6)W3G&%FGsOBJl(c(KCtJkZEyrSqa2W=5&?`@H#4!aCxr z>ZAuOSKW$h2XJX*!NNPbR!XRmUM!!C$UGPAlH6U>?fN+1VU`T7@^hwEzF?fhr^=+z zZ^fQfRo_SL-)>^W+O@aQ{)}sLz7Gpu80F1D%0hS2V4Ti$y38H95iy~3k7%OcE+@x; zIyOhAk>mn74!b&ft;eNheAulH57O&({_SjUh&|>OqRYQ`fQD}~15(Q>e1Z9oiZ`s!bqmq?@hGXSVaol=%w3K2`8QNws|-Q$xDE$! zQRc(v9uHW;%Hrk>rtt2kv;GcsD81CN)l7}A6zC`pm=tw-1mwV_21ckJ_> z5nXcgDNf<~;>R2>qU@O+m#yBQzHaPI3C?(fg zR;sFY-C{L5YolbLZc?k;vc=e8>0EVP=PZ`?58+JT_n$WREE4g`0L*D`|1= zv3;3I{LRN{@$+Rn)80}TBesUW*vsPn9HffhXTo^sJ7`t~UGR8&npa;N-#*hf>k2f} zGYJ?5D0}XS4ks&cYQ-Kwhr=D7J8aPG$W!F>`La8@!$Be2PQO|IOKaGHg$?sDY|az$ z0hD=QQc>NedcGebZXv+JfBV}Ol;TEc;0zdKF!ESRr+34&x1Jthuu>llk6v9h-~I3d||&?O@0UUR%5*eXFL>843xmQ=!a zFmvAS+~=N+R#Vny0WkkIVigjw`xp6(DGI{#f7#ubYX9 zV6*wbvoA_KhOE!UwdOEeTQQ8hX{XRFkL|5#9p~injfNv^s^^1zyKXowef}A)QcAE& zDeLwltAV#@%}fhl%{%_rGHza!_|2xNP?TR!@Km~HDym%z9`&rX=a74};^~L7*knFW zQ>(sT1X$ae{Dl-a-X;PDYX@aAJ#p=PHa`0qg~lh_MEoSv`7FBrEQP~8>`0}iJq@TF z`}I$9fgd>pQiz_D^Zq9ztd~`VogRuvU2CN^>#bqt360iEEJw5~>`qTKAFrwL&?xT2 z5uNpP!>zg*R*yIBZVHWz9jj0Vu**i^wcu{}tWPl@R8595R&f*1+CdR2cklEa+wkr< zo>{~lvSR!{bI$r3me*MU{TK3z9DIPL^By)uGtLZ*7+cv}EM!<6I@K#@3!M5EMFXC?HoR5^xF;6;1pi6DzMti-MjJ^TbRxs9NuqfFOo zoi97pnpMT!`HgN>_dz8{mO2+AVSY+mAq8MUr+5aAY+bBms|OT*@biJkuGMJl`h8rV z+Uz2w{<#`ZMM3ljnEnmprH_BpSe@klHM~j3j*}af;>MB5rhjfNPmik~ZA)8nR?zzk zIh0-a-gI&)SB2=&f4ctbK@@Bpn`3u9&^0vfk&~ib6$z+{f?;o5hI^)CRH&Z z-o{y$Hag!~Hr)OD+ZERK=?$0s^YvpVUGGz8`Qlr`0CZ$aK)toe9~t$F!?>ZOj$gFr zz07jxbbia4i5ufIKK+93DGHje;X#gn_~f1Z=y*GM?%v&E%4;A}olQln6!bip+_%k{ z4#BO3%ua8%B`@^tZZE$wNw+%Q=2toR8QfC?T?}D$ZAQ~a@v049)KPXLg?E?VKC)55 z7P?(PKr2M1o?K8>222#VnWpvpPSUbVy{hWqx9dXrur?n6QMo^_=EKNzK~W}z@)KUn zLjxLQ9Y}utLp8%?ZuNUV$jh_%Y@f<*uk7zKtC>*!#YKs=vPxC^66?Le-F2|=G zP!A8B8K|1IE3VTc#!!Vv9ch;y;&=|24sB*u!F7k+jll!6fZgI#Ce|b9+3I?22Nhoc z^VsyFi*J_Hsi`TpmQTBsT*#C?b9p^q&G;8}hpa+!%7#s;s;zg7hs_Gnf6eQy`^SQUTB1aycVY|F;n# z1=?%W#S!)j97awndU0spzlL-Wu-5;0=%3A8e=LyO{eTkH2o(832BY>{3Q&59p%Qv-XD9wbG_?Ye#MXi~aD%O4ibIQr9rDU}_~2#3o4%*BRX@gRHN zDe`jd@0mS{uG0fZkI>i5-_-m^ZT};#bgQ#f=T+P`3VRK^$J-rukKsa!K;zsENo1f{ zk?dOAI!9$TYKveb0dpF9d3MHL~%@2AtGLmxcv?T&wwMUOwc<m?=46OKzaG}b%E4UXohcbK4 z*V_3}^4cF0v$o%H&wG3Pk&ecN+h`;J>iObYkCT_$;em7+51Nn1NC8cs(sEX@Hr-Ll z%w6+E#dMq)yXrdq!%%gISI^PljoP5EP2;Ef;ubaV#k=>j>cp$2E}Jc2{Oer$?-x5C zwjKa4ZS5=!bPMfmiIinx?H&i4>7g#K0jM+BXvgE74Id9wnKF7F*R4zh(*S9-{F+JH z&WLKrL}9)1a_bl%j_Et03H}R7e%j5{){q+%qWoefIR}hXWvu7~uPhGBU3W4LPI6uDOY(?j$)AE_! z`P$1?o8NRo+T<6tFcs5z&QHqBgP0hji$DZ&nZ37?sFRg)K;!xz501#;R^P9_S9iBo zwi%%h-i*zp#h}RBI4f6hPfBjsS{ztw;ACy~ z)wgD(^{4#-H%-gDi3Qm&^p#DCkW|tvDmxdj)ogc*>y3YF(#np;Nl-^W4B%tcsUWKY zg-h6YttOE;_{+P=Ge?Fm@zjGaCVY3xeiW~ovg^ZE+Zz-@t*5m|74mF`7X8!k1p*Wf zcP<<q|+#@HSCw;L|5WYOBJiC7xhq%6&B zO|IGBS^d8?^?v*%6)sckZ;9JwiuvT{@9-Z{xk3TFsRVAR?|GN+t z;1{w2`LF(_?#%xX9d_*O|LZmH`OzAs`Go(ha;}wUN&neyTo$_jW6Ax0u2zK6@W)~< z{}ND1ZtmNCe9x@#HI4o+U@}+%Q8AjA@`SAL#}~!fw?g8||Gp4yA@r+xGDICav2ad3 z#2KWRkN-2yGgZZ|)ON=vmoNdWtsqdq8h(Y(dvG%Kj}P)M^zSsxh{rUI;N|Ej%aup` z&N;KgwFdcTyFX?GfG7xp3JI*7L_Ol9viB zHh57KXLMiV+yx%^b&0QU7R14xW7#s$c1-(k$M&mNBPpAMcvCClt?h(3rd%BTTvdln z-RHOJ^~hwhttnzP2t!soaT>DdWwHadV$UY-7^`+8E*DN*HDSeY2I|J9gtNbU_dkk! z_8qYr|6+Z0f7e$0NymYqFn;X{hhUs{qIrcZsy|YcM(DF?_czoXei%+hQYu)LrU*Yg zHlaj(w<(CK1e5`J*3%qFreeayHJ-61k|T6SEdv=J`M(BpnwXZYE&Ll8e4+J+$7cMX zA@-n;wbpEJBtPXXGl(?(xnz_Gs|a=~Z&&c^JvGz6VAm>mnFrTV4A7`V27sNxQe7w7 z8482(cU)#3czD)4KzCF)Grg(i$G`SGdAQ%-Ei@E6N@l5`(w4x7|K%qv0(F&pkx|@> zuY2Pu-M0^O1&~`^F1fLy+t|6ZnUSY!l&REpF+ooMa_;dXi?o?`Q!*UMzTkRCT~AV@ zYqIn1vydQ+NlU&Q8Rg?lu>SD(swOSx1~bqu82;peuwqJAk9Kf#!-9P80Ua0IeUt2m zlZ>riZBC3vqVX+h{8($O)CbvLfrbyq3fyV4F`^ZB9NRtfYzVPk=@su&Y0AmQf~L@T zApO>)dmt|NSXAu6LHfAWsK6f`ljY*ALt*6o*P1Q6?+M|STR4n+@F$~9Op#~miNc0( z)~6-+m1N^Q_mN7}qJR5=W`n>%CGQ1KK5Rmi>m|!PK_XQeoHCEJ&jS-K16TCi)5Juz ziLI-e*aeHkG%J9^yKAq0?G;Jnl7r@al8|v+H~G+sVqe`ZuZ<5(&!?__s@(9kK z#gL<(7R4E#*OX+R!R1*L2`uz4aIenZFsB^kJ{X-D*<>hnvd?SR2BUV|66`|2D?sCi zs~>4;i4eMjVzB`kV`MX;_iWSteC1a{#CD!_+Zjd7yf_f;l0U_AQ+P=r-{Q;syX7q$ zZ$r{cSC>{W>X@`aJ3O#oVcrEbx$q-*-`}~=Sw;ZEJekVyEM_#&{Ih&W-+T=B4_p%qxE-gjQA}TD3Fjx~qlI0V!T02Y{_f9M zh(^5_U~q0{L5oMS1%>aJ(2Y?LIe7g>X!eKIg0dp$`v&_1^PtMW*B5X#HMOf*{WxI0 z0MXUr^XG6z(0Z;JW(HX1kt!nHxtat51-Guwyvfc{4;+Pt;*FWx*G1N7ga(EZjyj*~ z1eqo!#qbf>y&>}&zBeSypd-F$nM+faU^}98M+VAUZDdjB!HrgP>yfMl%f%1X?QBud zJh~fUf3wyMAzOa;VW<6Uz|H%8kd7h7{~G<{+hBffW;Uwull_e zkh=-oZuPzW%1G4D9pse#4S%AjI!`)UE#4a(6eN&YDOTKcYC5}KUHeZ<$B&nuc3M}h?X55$Cyw)#uD4yQ zrMbXlGby22YNOqe&tA7*_`l=(#S08Rt-`D(UKb{q&iF7o@BcgC#EH(z=YrDK9 zeAT!yjUUCRyT+y!_NBRD(W0tu17%Q`d}D>9?a!t~{}?8kDMZ;slug9f`qJ(EG3g;I zVXK+GWckYb3S0N#hH=Q?f0x(<0fX5ZRo%#&HP5#Nz6 zjf%#A3l}5fTzmTN)M}Da0{Jys?`@Diim)}Sm{?fR$SeJLJZxI6bn&t7YNft){@Q7) zwr)Eu1oJ_ThvJB*!x@U(U+J;9wE|K-Pk6ejO)KLyq#W1f>)>uTiApw5Li}R6Gx>R> z!Fh-4n08E>8V|ozfj*V0){$(fM})$l(dh{J&$oKACe8)kUegxS^s?CU(|L7HN$FP3Pd7YzJ9V)J9)2TBx1O^G)v~lR6Yg}Nts&9oAb2zD7PP77-H`>7C zv5O$O`R~Y{353+sj_4_-sir?yQ9?PE{HMYMj-8~nRU4p5!nC*OAu~TDScAS0r{FX3 zq3uRE&?fK2?U3Z!yn7F`3t^eOlr#vck3;vgToEuOB9YymvF@rpeuIEd5j90nfLZR= zzL>*m&A(YXIkm55o?*uqe&}(wGO(J531$Cu&`mITl_IW*7N|hxBA>++6LxGU&LQiV!Q%H8| zj1bee$Gb+lmXN7xDzedi2W%jPou}zMIPY9yR|_jA848 z@=OxDLf$N>4L8gugcJoK17k6Sp}&8l?Z*`_X$U5pxmWavC!_s zf*8P_Kpbl9($f@5_>eE;yKQ*C-0z0>Mg&U4>U)PMV-G#>iS-F_ec-_;y?lI`%q$OX zqpb=rH~reK!#XmQGTpZ$VkJa7pGk~-kaf^)RN|h$XXB#Ev8IR4fK>{6H)GhO*ApKr zUIOH8Bw?_iBIC&y*>y*K2d*6`b0U*PsFzHY7M9b}o(g*o1)gzcG>J%YwA1F>?z~BF6oXc58Bh#H3fmS~yB4%$r`M%O!YRJ0mLq#5S zcxKu6y{?Ua$7S?=CDx6_ka?}+meMG>^G&nC?pc8?N^I$5q9xl`p)d_Xf?uD@o@9)R zlEP_2y|*ykv3jr(T%~&nbfBnvj;-agHF!TOHp{y#z>26o!n0 z7|42MxiNhdWAw#?USUa21$7Y;1Sf)jll2QVuNFg4~N*hDq87gTJFFa7A_w-=g@>e)%p>j z62C#7s4a2=Mruc;*HqoQD%qsqjZYK>SNl*BL=|Ko5k0o|Z z>tkK`oBI7V?Fh(1Z*1bqxT5Fh^J{?4qX6OqDCs$G*}UGf|ldBJw+{q*9H{Lg6fqn%Kc(f zh`?KOPHT2S%u-Sv`=T-Iw-psMf#7eFxe9>Vgrhsn!_A!SY03)Pp`D5fxhQFEda0`KivdOcHH+q*)vfx>h-`1L7BI&Gk*gQf) z>8@*qanRafyKhNl$!%xQFD93uvI{PgqUff zS|a==uf4@g4!Qh3_`Qg%v+nTmJ1+Oe)+^Hf$5-OY1!-d6)#XQd1k`03pHOko{68H} zpPB0aB6VCA=l{nK;*vb`|E(HbDRb#r1@ONR5Lc%XeZFekO!CleqsH64nW`!(j6E#+ zXX)f;3jYV-UFA9YKS7%RTg|%U*we>AXx$Hh_eW>19@|!phXgUC_P+^u)c8uv)7`yd z`rij}3CFuhv6t>=}KAi^;1jQ^SZu}J2#?KiRCMS5MU~BcjU^Occg~)tz%}@cKpewQFx`r$G*44Fa zp6GJ%y2yz?aNaCGyL!BD%Q-7(ri|+=@r@MW7w8a{HMSU!v~4(UiiJ7hdT2(E#+5J$YKiu z9Vhc*gAcy{yPDyn6MM-V8LBOM!*}pczKmNAH}PNSxY9Y%kGeVptZrm2w`VajvV4s zE@X8+Nd7s|!Jkx#Hp_C2tX)I&^i8}xSYFNt&*2U&c=+V}czITKOTZlIl9=YJvBmkM zqHR00`?3b9Ih7iGFEOzLwt&%uQ|>8r5UMVkKh=HWx|YKTzJGPHVyT%WeH17QH|22& z=({;A2S47Z#Mu2%&md8Zn-pEB$C4|>$tO)7XbM=ETUBj7$(izywO`8RxVD4Uq@Dvb z@s}tkEO}Vkq`fdmdp&J2^5n%h8DcJ{128jJC3&GqhxjOoq>8-x(`}g zH=O~UE0?^B7+r{JGUWY}1^Sn-_3ByEk7^aVD>I4Edoe{e_N>7q$ZAF&^64R2uNU%K z-@b&U71!wJ?UbgECzb7q?7Q-pgC=TY!&^<(sysHJs;=x!2)KK-$0aiEbAv%p_i4(& zJUtCrmHch2Q~&OVXPd1ugZ)t4&D%G!mvRlISp-i={CMqppf5jX#`mx6*-A42v^_lM7( z=9NyXuwOy>Jm~s4$*XVb&Z-SMZTs_Q$Oi+#F$iMU%<+;!BNQQt;Ma()C_i%7C$X$~ z&K=qwDgKQdXlN!KkjAMXwXik#+?IcDBr6}+Hk9Kj7Z@vOrRoUcDV z=a6xH4M)q5UJ-?7o=a2byp0Fwg;5a(EW0@_1OznHVghkQWqTWu_-QpbN#A5Ji zO)FKBuy)47xe!hblmy?p2oPRrvolOE&5tn?;cwy}kU1-DZWAm{q1+}XOcq^atWtE8!7*fzOg-E~IvNeec#1p^5 z&XF-U#gS?%*?(nl5>+Y(2TCkL);t}TDIW~+StzU6@}pY#F;Aw#T9?8tHh#{!ctFO@ zc=*PL5i&Ai(jY;T6(!!)Ccd$Tm>hcuJyRK!oTMpU-JbAyJ!&v0Xz|f zboadx?(zgo8^nsRzr45B#eoJrFyLEsJeG{uV2iT+xqa6s_RsQ2fERi)2#oYWYgbUy zwu>OgzranNXJ5&ma+^tIgu#q0@p)+=+%7#y!4pWmPch5VCKipo>Q6-DIRQcr^o9ch z9{Xlrj=R3*}>wD*_Mr6owYFW9ZfE-(*Ap`(5*rKH87JDBapVnNOOS97|Rg*-suCk_i^%-Nk`Pl?%i96e{5YPy^oF4C~I zC9>Yt#H+nopxb0$qmc&A42Ej4qWn+ySF3|zcU61xkgRjvoc0UdE!CKOCrX5LYV$kMe-7fuETDgqB z!%`=@cYd3>Y8vERyNZz7GXx(#22uQ4-__7iHTtUd!)~gg;yj1VGmwyDP9k&j5dXEq zz{OWBg)944q*E<4#dSiB&SR(tXg2ZXflK$S@aRc?rgxJHu_$)7bBEh^F+2{3yfWop z0;>7MQ6)HSc#~+5_kxF{dI$29f}5i3myh=4PvZ-~KCt{G7`@?vO+HlQ!Lq%X;qA`} zv8#rrY`P$m0T7(+Z{S|T%ZwGG+3C3rIqHDuhf<>?BnhjSH*~-7O9GybPb6LVcHk%e z_d#=}#O(AHq8CR5^*IB}Q(D>E&rNt{V()_OLM=<<`o?!GvK!PlGQZX$f@plpU*~DP!4f`Y z`jomZxY3crk^>be=L=iiDr2FLCO7s=h&v?Ys_ihDQDn@Yk%;zmcdI?ldi=Vtx;}&D z#(XX6S#36wWIAr7fN39%T>8BJ=?j%&L?62!UIe3Gsp4kiAV6few4Ibjgu;~?X=*Pc z7eUT?S0~axu@{03Kcanq=c{YgSsG=*;80;XmRtOa`+WW1iF9OhBAtz8tKhnn@RLD{ z16sBG1cjH$7T6r#)is<#DDUG!|M=!MV*92LT7J=x|8GXgh_IPeR%ifJ z-n^BUT2z7UBFx!~^aQi)<^7$a@lXt|2C{G?`K`puW%pW}7*t3An}*xKnOn}|p{&ZM zE9-bT^u6E~C-^;CL3~CF+gS3cOg#9?mE7#?Q8&;;TS`m(J@B9$FdXeEJ$j47|4iys zTZOuqNVJsA)GcrgT4@<-2k)6d+Gk&sAaM3nsJezDhF#eGHG^v5WqVJl`;K0Orm%=s zZ5@6&Sw`@wWKuFujb;d-N;QKWc``*6jBrI-8Mx%DujK2y6)0rWWQzN+i3e!@D!9N* zazni&Q`o$bMT9tQd83t+q((>bii!q!A-)A&S%w*VAvY4+D{c=}kucw`kD^*nTVD-- z*^P(UTcx%WzTt^D3w0sz`C|}C0jrJIGyVPxLRM?dXV9l-AZ4g<2;DrCR5~#b=-%U` ze*C*W2QVtJeJ8)w+p?bS!<2@|rX>NajrF_}3E3*RhOs`w(6A3PLwJIQv6{tCxXP<0 zrFm_5&zK8*WzLeRas!q+Wz^K+QJ!GE0%HlYRVn)sY)ku|XCGm@);u*a<##JXabzLd zCH;Uvlk&@qnyru5BK$BQd~iGhn&Am^+RrPdj$6l_qkRi|6n6?(=2k0GRn@K(2))K0 zlZX}T9eUU)Am@-H;&3(RNg!*u#EwczZK{_3hA$vkdIY7sdvhnkocxJd`O&sx)GguL zu-NGtpu_maz~7ja^Acnmw5ogWstlxHEU+=}*wKiCJ)b}A7<_#byf%})Z6|`6iTfR| zj%EQw2cdQs{Vx}lPS|6#zZLvrB#-!j9y*Tjn>T}To0UQvKASAxfNg{u!RkWzYW9s$ z`{KHYi{?|U4V}Q-7%jO(%CVbL>R!6sr!|VMj>XNzVddK5o&v89D#x= zcKqHC#!bQHmh*CEb+ld;0Ap(Km#Zqmi~_3Ena7Kf&kvFXF>QQER#3N@+<0oLdgZ#Q zu|?`w8(PH%~W^TGiS|FqMvpZsmCPz=2SDnR* zR2o;6zi+TNxCY$m(pC68`oOTuWhnLgr(BU3+OMyYQ48eI0zHH%!^k{x~+$nln zgx~Irv{f*YfRGvWwi?8fNcODX%dQ%}i>&=R6uvh5aN9)yaEBJNhs3l%OgFEeF()P! zkG$d&UBObjqSxXsSYnN*#L=9?lCIkaiwaTHWkE5-s!Iru>=ha(_TWL^)j1o?{OMk= zEA}_6_;?};gCoyH*O^aQKZrbHs2E|8V`Ot=pvwD+$7to-g|h0Bf{#8Y)Q79Qqaju! z7l=b-NJxmp&ls&RxNxf^Hg2QBafNrod1Kqwas6*U9Y&7z{el^(EZ=Ei`N2JeHGT>YY?z%?d`kfgt!-gRRM4#3rNINexJ1#a z8HQ+)1tH*ZPL2qG%^OAV-wh}4Hf+x-Ws^p7W;Y>n4&{3EQ7;T+gGhe&xBm2``C${E zGGVD{io)ZprimY|AV>q`Uo z9h1g;nh)~NKCIU=BDwc*U?Ve$X!~^*>Sh1Ab3oOvz71aH<`pM-r8na}_gvbtfp8IE z-mGWcwXvoBBAZj8Go7j-1#RoyL;J4&R8Ox!2yRnj3mWyP$L1 z$Ea^Y8#6O|>o0+L0vw9y5 zQ^e-SuHVb9_f<&GGN@3EWC8DeQpJ{})=jEtI`%0tkMlrfGk+d@Mkv}S69Mkx_$PQq zsC1p!{JBG?I4E*XU3q=Gxy&Y1M_8-Yymoc%{XnUyh6Gs^lJDpYhgEq5Q-GQAH%hGP8z0x9=MlwSC)=tzi(8_e zcOTRTcvl*1pL61ki~T$|)1bHW2S?;_h*k zWYL#nMtoVD{8X^e(ILLmeZfZ-2A1OUeP==4gMuJESo*g^)2gY*CT>N zQBMw1{rxO*CV6UPz9C#uK%i-&X7og{w(fP2!}*_(2rK40g|o@+(u9Oq>o{s)dU2U} zM~#bOw#DwS&qH^+iG`FNiuoa%8cxoAC^K6cT|pPn@_2Jskt3#oy-K}|awSe33Hj+? z9LRaIHmr8c<;dq33l&Lr0eOrvB5(Ac3uA;Qaffl<8&qE-Czzr)|dSWXRjAL zPjk|y-^O>sq#W!pvv?Wr25wHl=(LqxFcI$!J#pb6KZ5>HI}cX*xjnHV04bJcl=sO` z1ZCFB@|Rj3a*DD-J*Uj*E*8N&;tb%KWh)J}F=7E%bF^q$L8EE!o8--$8W!}f*|Q@Z zs)EBANa=(VhYE^|&6{o|yU;#MOb*u4FsQD3B{wI^Y*@81F9~wl zvAz|fM$8Q3h_jY(4d|LA5}=)uvU#J*;{nv3om^C|nQbD7Jw4`YIn8Lt3ZA?|xcUx% z54Om<#a?@OGQ9GQ^5upUva%lmZBwh+D33N}Qg*)T6NAIWNeW20d4;<_M8xIu^5#2% zXqM>kZ5XsoL>%DRU=K?J&T5nxbNfI$ z$-yxQ6ps3-d#4>d(vNS+_@W}(hE1#byxEmpaG=Dc<^iE2;fmMI3Ehpxx<3$K--Ou` zR12Jij`X9q=BtwDUUDUvm4*s>Xa5S*3p@Xl+T?0ndn~-3ChAx-Yvs|8WpSjl*w+m& z3K*O5FOR}mKB8IWkI(LR89a?9yq3*gs^(O}AUH)W!k$da^`Bx4PFvRPFu3v z%jQqefot*@Nm#LH@j~0y)t^DN5B=>AvY6AdT}R?(>2^d^JXB6znTPMx{i|EtqX=f* z_4Kr8V=-f~wu{Gj0yOo+(O<&?8){)iqV}&=(ao{z(7K_%EW+Z>-w%4;&j{80v439 z#O?gTEh1%oAyt_Cb-ko}^?;yp?I&*-P#x|sF^{`!XS06j+ebTcqx-++2)tIs-7X*E za`>yRUuRe zKgd_*1Q=guC|blQTy=X3`?;JB8U7zohw(I_%k8|fmup-sf0n32<)7x;>UQ;|6;5s4 z>Is0dGx(qgL}mzKR{mA%+pp_xd=GX#V)CcNmyi9xTBaOybM{|1f~XQ25V(rOE~7m= zUBA^Vv;X!LiqmnWze3_6MNk5~%Q(MT`3C`BYBvw?&o%__19;Rle7*-!44o2a7bz{D z-CgPdXwO86NpgYtZ1J|J8gA3l_U_F3Rb_%6*q;1AV|E(jQB9CBu6 zdI#Ke{9#Il=}Bfc7%UF-m6?)5jNM?5UzeyoDbrWSf7q`B{Nie{Othf#S>dwlAqz8% z!+G&hs|y2d+gk!hjNxn#@Bl{!6tZvr*&b5&9lZKESYZj4QdOhMb=BwPB@@uO`sOlU z-h@YG#z2kX-hfJ6U2|F*K_c>#aqL$~TCo1ptDuWl(N(CV-Aw`r<}i-jF{J+&~HT)M$G~irU%>VkcWI84$X7$vsuFL;{uZAru zD=TT4KiA~mu~5H%hUR}Vn}s74|Mw*5ux8&Md}JxcCTfHU18Qz-m3juZi^p{Y>U=C4s&&<8t>e? zlyD%d1H9S<&;EH-vU*f-b4*ra9~V|%@(>rl_LZO3rcdh{lIs$wY%kTKeq3tAu{5Q< zqXTn+E7{)Y#a^CSz_)5MKlIGk8F@~|{J?PI(dPa{e387>@Tou^`BfLKV^4=x@ObGU z`@-f`d&}7)&mR2slQ-R4vv*ogoIU!6b-PmS4>|b51G0izgzHDN3hE^y6YxlSnyD3X z3owG_2(l~4INj`p{fv5Ku~}@V$0fJBDX)|@y7U%yluUoH_D1*C=Pd#bTT|V;z3;Zv z9-J&x@afB~`Qae_r?ePG$h->5b_~0TD6V7CKsJQPSO9~(4MoAgd2h1o0}CbQ=AO>j zwsF554W2IhdAhb_$o8|pqi~r5m+S>!hr_ZrChHlL(5s2aV%n77xH9v2?I)rK$l$tV zy@9#(r$q~=ymG|BWT&-epY7iJXVy!83~X4$tZwbe%#Iyj)ZyE>6cqnQMvc#O?z_JP zc;7FsX&5V=SfDLs-*aiaHDxu@F0_%+Y~0<@^7z}l4D~X>M5=J-duECITDl=FHahPd zZYR9fmr;9*UPSbtbygWGHxKIGL^lHnpiXnIQXTfgt8f0v8dz}@^!YZiFxeh@=)HH1 zmUMBE71Ae0(=TRYSdH*J{~A&~nxbGc@Fb_Zl&Fy$yeoatq`u@0;PuXc3jm8C5nXRB zd2;(O7yF-n&7ut};>akyiM9Hh6f+ljq&7yZkT%BQA|joj?00R? zBY(>=0?}{`w)+DqJp;fgQ{1Rd2m9oLmBW4ht*%^9YjeNi7~yz+?rK*DD@%`iGE*e$ zSbe@Sbl3)j9FFL77v@bp}VwHqN`Xu`;Fx-RrIAT#c@Fz zFeos5YDm%N{_H83{hp~`xGSVW|FiN-$W+D|b_Q!zO{vjGaf&>icl@+yX{G_Ljtptg z6+U$Y`Of_V5kf3)e5Xwdg2xnFCMFK!-UfE^#I&{u^2JDj!36x}AmJETasJKMCSXno z_%8m(yu1`qb1+9~-fHe1kMllRzw*7Pf2$&VFF=$8vO)XU6C|>r5S0R5Lp}YI z@87=Zw1>WAq8U?Gz~I!#-tj%X&OXwcv|{= z?z(Blc#SyFrDIrOB>3L-#Ix7CLt2#S9?*T}vnopdBj4oHS89>5U)dnf?f}{0R(00B z{9*3otO=(hv$<=$cJ+?@n6S0e{oBDLMgu9hot9~HXz!R~nN+QC&$rGt8;63ekB{}a zHISnwZD557$WXo zd7X>Ck~|{gaGj8btZUz4+N+CMxt2IIInmUB-D*sl8bM@`_AzVF8*o$vwCiQBY6phTc~nBHFcWw#3T)lu5QMP<^aouY2wuYb!GER* zU&0JmLNFd%I9iu4KeY2V$%s$ZSGRK}fhuijoq17dLI8*c^Rm#)S+s*K?(SXdzNLc5 zC+EBYgVq3`;=`G+vmO)%L;*;cnHm!8d-EJTjj*T`w$#Wl{N(OL))g1K<#j$gii`*l zq<;1S?H%&Pm)l)T$C$nv76gs{o*|<#=aFFdVjmyh6*}DC;gpr^tmSrE;_Ri?A`@5N z^93*NN6hkmJu^ovDlhI+x5EZG=PL}EBzN7@xMVl{V!+O4RRrTjeHL9E7=XkYyKI&6 z4>Q&1bm1!thqrp0msl=^6ywHa6%xIB;(Z+dZ0F5XClMMLW;Eib|Nl>pE}EK*rno}KUeahka! zQ`h_aHzz~3OO+`=kS8LXR(f1f@3mpT0}>v$EGZZ*Ey6E#mh#Q-DnfTmDb***rQ2ra zo{V6el=vZ;jKYf5jyg99{XnYNA2Kgi3)&sdWzq8|{2S~Z%ey+I(%ApvWxzK4Pr zpj`o5#4Whi5p4>dAPq_qu~K$qHdR}Z8alO%5BA`Zf8|yaY^gg4FgQUf9j~MvxHAxJJ6(f;h5ot{0vKPD*%qv{k8jwM)`ch{cfjr z2rZ@8*QC_fvTx!JpT>ZzeecNy_Q1_ixlmaCY&kU%;H?)a$g9@qmg^9Fjuya9W<86T z0i)Gl-(fq~%z0ft-hNSLRzla(shVPbXM*tzx370jF*4-|nA%3PIWo%;{R3)9xpXfiMtNum%7K>&T z6;h8IGyg-iqcjjR{_f!&zCEwb2aF2{sGaRfDWLh0s5DXxbR@3>#P-1)f)m#YUo2=x z>`BXG9t5QNdTyIZreCI$ZRa`QRnjI>Q{+f0(iA@`j#LQ>o$ad^bSB{rES^_MK$p@=<`>%VYa(`M9=A)y1)QCJXg6`_l}wJP;3b#Oqr>sfiM3TDQMhLCXiUk; zzi7j!FrOd!Z#|SxR9$}3@j~N|f%Hco7KUkP>p`E>5_9?mH<>Tq*^w2qOx4k8VVkoX z4_m+AyvUH9UoEW4bA$%VRC98DqBq=Q?-phGzW2gKLG#u8wp{+T%pD$<183iGTX|*h z{vkNkZWeyxW5Zj{sh4(@>#DAa8E;jctk5&ENLlT30m&WGQk9tIiWW7reFvJYN7MV_ zUwheuuv^{1i&kpGv+uDnHcobU{fEw65Jz$#Df3)4nk@_F+ad8v-CAgx`M=>cD=M4} zok3mS6X1X8%7m^;bv3JOf)y>hQ(E}^F;$ZH<~wDQ9T-!2e^p7GX4iU^xJ6_|GBh1Z zjZBZdJZCwROfq-(UAA(ItHerwu`8xY2{lhw#TPuV=-p0IB>w{lf7s#Lv-xK!Msk5vZ@v(*VbETTDv^w6yWWN>h8g)MV*W9pcPay?+eA7BY(cz3WwwWv zle&`kUoLlC9vpf>|?bc_DsJA+1l#82C4<`x^eO-snJ z!>3j>6LIZaal|1Y5>sk77|yj&6T*FS^xLQY;g8#3JCryU_OGcO#km zYnm>L*tQyPf+Un{WPtToRA$>b^u<5>P3z_Jkw@$nP${spiFsS zj1v`@`Rr(Ws@}uFb>gXNi%)tXFo2!xucfKPz5KI%*tLiiCvn`6IG-^TBw;sZT9CB= zZhKE0TRSZ9aodC+^QqC{CUU7=_T(L*i^9=mcT!spD8!=Fpe( z+BgF>weANAwswl_53M;e0Q`Gg^Svtks?f8~LN{8IZ&nv;Sc|L3E=H;H7}<*Q9YObe z(AYxedEHBI1In&I(dmbh=PR^=zvx$ag=O+`)#w|Y8Gb>==cJA=THzqwbD>7JAa`gF zQ}R@1*V5mrN|rUy}jiMZsobf zIJ-*tE4cdaJ>PE(& z?b@TiXIj-H$}mc*6WE@fFJKdu3yY;8<&I}e{%D`k_Ls>&o+@TyoGACC75YJ=V0dPD z{s}qA;c6>;A@rkdraJEM(Qk?$Osg8w%Jxo2mrXudkd8e^M_ba$f-BY40ZxEef!ZV? z{;5Pr`Vy>sGApIvq!!BMbZ!NCkZXI#Qte}9^$5pwp(4o`W@(u?|EDJJ-e8cz@fUat zTkH3Q|Gwq^c9)i=<~{FeUJk9xkgVSrBnHc#>)Mw+|4`?v5xzDIAT9_6u{~Wb6cjF~ z#AT+GDIz5^x}4`v7sFd5;%w^=Y|K_a&__aLIwQRj3RkOMJ~cR4HD=hAR+#)eic1GG ziwe+|#xr9BcC#z^VxC_&Ofjhv-#&%@XjWNoP^mT;EId)dJcerbo`&4GBv}e*bG?_O zE>d4ROu9;{?H)+6omG03B8#S}=VJ2dg5D3J=&aURf*F^e+jsmd$-^6qxeMw?x5-=#Sm!ua522r{n)UlL)%D0zn2~i z^K$Y^Zn4GuEzh7!A9}N_@+Rtzi^SQJzV@LO9^@XV_{UV;H(TkFpI+3W4K7&@avbt+ zGFmm2{NA+e3bRAX(#w&tlJn>m4K0Xm>`fb~+ozT(`~~Ev%o|skO2L-iS!ztw?o<2l zlv#~shV{@$y2rJPCI!Xjjn4UM;IW1Nuj{|0cD@sHyV@j_ruY~zaH0Qz+Vrk8e=QxmDkE-ZKMNJ)1)&f(CzmA2S4W2(0-KFqWxUBRv#Rq}4X$E_e%qf1 zAJh)<+8>uix1yR}D=74~yz{V4F~rD~I2nKTn_N-Z(v79y=gJ~>^{2j_r;VwtpN)V0 zpM>^sN#WS5G^^{;%;BRi<&H~PtITrRgPo0bJVAgyLys6VvFP)da-|WRTU|U)JQ}?a zTd=Up1vA5dPk(z_cE}%^Eh#51c~sKugpO#TT3lY?V3oG`7xy$}bNQr;lZyMY=vRnZ zl0?t2#PYjtae9Y*PiO}E84ZRe4-dBkkcs@gn98=txyAecp-DQt`2BaU6EKmLK(%69 zMc((l_NYUDw1*r2M;UcZV$4U2WNT}&9nuj_BkQ_o0oN3Ns+J&a43j@x*dwNtu z{l2un=KYX|4ity{z|{TL5Id3`0Vd}tDRx~#Dxqz0WKm-e)Zb zO$gKAk{kr&Vk#8vs(hvxENx=PK6_|z=*!z@S5`VJwSiOZIY~@?slm|G4?s%~B1Wp+ zX`A7l6+UPyxNF{KXbq7tYIDim5ecc8OJi<`jz*R z!Z!|zCY*nu$8T!3U0njLY5x@`U`HUXx@svXTplPo;F{nnfG8o zduu37FWztIV2EW=*+0mg)7}R?P*Ig>fmS~~(5C@+srKsNr4cU#2q_^HJ;mk$7_;zo zImv-9bD#d~E+bj{<8r#BL)1nptrJ+uUeh!314|FM=H~&7`M`gM7%eRZ0LFYj-hb

goj-LJb~$w1&!S z51IxqVK?4f9o1ITRm5Qjx8BG2z_q1`e_JD4bfMlW@m?nmTDRLx%gI|;9_=4U^{Vqi zLVQd&uik6!+J~Z-RmRn0oN`LbCCj>P`+Ezu^X0k!4!!!Vu|!%j(|2@CZct54E>X`w zV(w_k@njQYx`_BF;p`1`>m?OMOJY$u8R0~md%me#>CG}&v}#NTqf0QAx0sf*8M(4e zyF`A!A&VKDE_hX6<>WR|E?I@CBvupcAc${&?cLXvMz}>&&MbE+CiO!P{7V$cLu+;v5&W#dGTWk~MZ8!}zrBC#Hdt>*#HquCL z%VUJc8;cUGbz_=W+(;pd8yLq5X&b2qINb`?FEmG+$`M}b^Dy~1?A>_<-&mYVUbUo-Oa7)k?DZ|+#S&~Q~vh3sCJ`Gyi4%v zNSe1}u5au}+3Wf&HA}r8drtvVIrF`l{n78E+s(V;$Ud%9DRCRq4*lreQHGC95B+_& zanbB|w|wF2{qvumRTD0~DZI-oGk|sWE^_hRaq|m-5``TZemkdvFCH!z(S*>-rso%C zv^7w2z+z`>KDfIf@5(vh26gj`gn_GM$aKj**fR;^e-9eolwfuYI9aQg>W4Ue^izkp z76K!)8lQ%p{Mj^@iA?O@WnUi#(u9&{Rghj%@6!S?fJ5AVXHm1C=TO}!K7x6BOD=|i zDFd$-2Pae~y*-N(Nd-M}|ILFO6@+Jhuvk809{t)pCTUVqWRHY#_0)=5VP&bAq6cMB z-(BBQ3!y)#?OGie+@5R?qU>a6QWLIF#Uym5PS8f?Y1TwxTnlQ|a5{;s$m2KPrXf4)_Nk-Ly$ zzVP4W)Awh{=LuQaCYCvVenytv+g;)yRNi$NNON`!mqpW#f8OfTxz>*KPrJ%Fvkbnz9aKtMsK zx?nEv{FVHYLP6M0s*DHaOJ3X7phXq`r+g9YmEWbVZj;nz+A2m{_99u zVHOyOZ+=`Zm>2uigp-B47#(=?NO)<-wmAapwu9Ve70R&>F6ZnW9lJ6mOP;152=MXo z>3v$(ADv>($$$(>Om>$Ok+Ay@-scAe_H*=Z99n;)a6-{M{0iNY$_xF3hhNf zhvIB^TtPbrWiKdjxM^=p8IURr)-=6)w-LDeo^+%?1L7B1*VV%@QaqiMjRk#AQ!MFp zOjS6XF`JrSBt;31NxCiPWn2(++Yfx(-YqYYI3kznR^+qUs@Q>nq@WQ*11n`!RNT3tXWz|zejhci0wH+L;Gyn;9`U|2cd|PyW%0(f zu>0gBN2_cjvLh<3(l?KiSWuo)#I9={Zt;QnmG!6^J61V(`c0)Uwl{dUySo2;;j@tf zbvg%5YmhyjpkpYIB8es0TbuxQswHLj052f-v=iNv!k`7x^6k2jpRFTrj=^P2`xD3B z$z-n%Q+5)#n)wC8@4=EM7x>Kjw#wsmNnJi;v=`7x*74j9E>%xv+u z-Fwwm;7bPh9JrGt6Pl*+=}I82e0l@_+CCK|QE1}GSB6%I%$;>?u20{|Ri?hr#~!gZ z@qfA2ptBftGDKw+Xi)hoO$gngu|1-HFZbF=xxSs&KKy5UcdAclh7wL6IL<$tDy%ST zQebiWy*=n{>!0^vzjzAfstWEpt@2Y8wsj!I@iz(Gfy~~lD@m) zo!jRD2Yg2~(OBcCpT~|WjZ63w*Zq0@=LrsTysDA&)=R5^lXNLKk+iquoCMcJeK1DN z9MoTZ%Uo{0c!#@jQJev{%Uvc5rF%Kn6;$nwYJLWg4IZnL#2n4xQ60!K*}=SD%EwXf z^3KMT+2WxbTA9$Gge!)(>xXx9>22F=Najy~tD&4u?&2jct>k&XU)+$+PPW(HdJjlS z{u_cmg0emM?_UE9(wLDTWoiD-Y#DhG&)}OF0y>b zG7Z0HEe{6Pdvvs;l|BqX`+WrkUhc}h5OwAh|4F*7;w86fUC`sCG!z*{jt_vZQ`)v7&o@p8yP zc`pcrEsW}T@BMwz+>N7&0Td| zimAH-DSDN@GY`_pzf*C>5z8s>O{E1cxB-ZoOWS6Y=hhA#`CR;F-0-Dc7X-Hd-%Xa^ zbgxnDIgo+=X^w-~2DaCAxR{_o>K{O>g}WW}-#UJYsU8t~7NNP5cy(7|6Dox{@xF?@ z)$HR@&D%G6r=BV1z@gl!^w0RkpZL2M#nnd-El&!icU1|L9Qow*{afm4_db`~6TSCf zV?#rpJxb3Cn))EjZ68>l1m5GC`=wlr!YK|ZQF~3==)oP+fn>%= zU~X7$+ZQFk4gQ?cF1c^>E<|-??7v?w+pY!u`62@D;}J-!?*w&$sJQJH{fmEf+(PDn zs+<1Bo%!6{v1XB~W=a0yyf3O_@Ad%kuNHf>cLjgo*T_(I#&@xFv;}PL1LTei=Q%P< zGpoCLhPSB}Kd!VkhdPrE{*s>}brKlrz~Vn%)*Pe%^Glb=m24@2gWG(E*@>o;KYwYe zTW7L6DjgVMpB9anhr>6fkN^DQVo1dDJ^}MnNqYmx=VqFawIawrem*7YTRL{&#paTT zfTB6jmnp{>6PO{f(1-&&y)i@esY6ZztxVlb5_Z}!8>0&to!8a&>5-C>qH~%r4#t#> zZ~>p9-=B0luNzoKx(?d%4oQRON)lkD_}2HUtgIv*$zbn8I19_l`_l5sirAo?>|n`2 zvGl^-!P1^D^k5Ss#Z+2N;8Fyt?F&*0Kkcv`?_9YID5z`p&f3`cSE%sDqvc39h z>W-0(e5;p9>lhIMmH&xh3;t0pcTrN2y z&BR(18@Al>J?;Wrt`Yj-qsd+p#Ba98kM)r%W^kh zHwy%$%RzeRPYSW^MeN!o_06erY}$Vw?3hHLVF0kjxQZI7{`f{G5@hcm*2aX0LVtbz zY2+&qws`fzSDK;91f{y^1qp6TjDJXq;z-_H-MR=)fy6@+tm;-(;^NLSXQ{fy*sZEo zTlvlAa^jpxPMO)XTYCLvZS@1ah9Lew@oUj^w@C^jD9(@a)g^UVTld3kr1xqXUX@c1 zsxdGbN+a{FW1g*TnDqD|I=keLlX5lm?nM);EDHKE!y;S7&r9QSCix{!yOG>xFM=N? zl9vOBKh+K^BAT_wWcZ|A1P5G17ti_#Shm^ucXpMLaKr3R?2{ z5#OFut5(_^u&Lf2!!L<|KFgrm!O9N5)DAzj zbhpPjOa*<9^Y065jO?{Hy59u3jj z8Ee=P)VNV&0`iIJbPr!`4W93>*F-m#eySbYQ*J^T{*dp``#@>7ovMLQ>A}xeYdW7y zx8i%wtpA*BfOi4BMp`l(v1P3tAvb=(G2A`EMm6Q*-DSp{l}E&obP?FnJbnN2o!<>4 zo}Z)!5SE{Y3*VrvTnhg#jTF)`CpRTkne=>fggY+~(`7Cr+-%rOx)Ni#E z1ue*QOSdM~uNR{CCa4awP~F8HZY^cf+$nJ=YtrPaAQIO-hN3kkAV2c9Wc+b#Wwf;n zhn6WDkK;elpg=h}HTb)rFrFwgVr@T5d7u7@&af-p+LIFDe(bA%&Ac2;*Q9BrKSU2+ z3C}`|;K>+Ocg8x(YywI_zY`H3hR^X@2laIQ5|p@NAl+P~uDa$QeM%jKRtB>sW5s8g zQ!X{&KYEIBq-*3tCf8x6E^YR+4BAC?!B)P9 zdkwE+EEn8ssqb=T_t7ZO;V`{4=1kb79uL+?%ogj=CP$TIq! zc=j{aaDJRzVvsF>s%n2yohp~Y?|5Fu(S)-8VOdXX`Ni3vVM?K*b z1-gP_dBZuC)(b3Y-{3FcRgh}>sv!nkzWYLXmyuCNJpw*xr8k(78K4O}W**tdvf3m` zVai%7y23e=+G|KG)hYmH?mrRfB7 zjFwKTTiM@1_Z5LSsO~G;|Ec5Ty|pTv>N;uFs4+r%7q-V|_%o9YN7K zky^yIWA{0f<8d=1BKlY-NQX)-!z)h;L9!Wja6?jbkz@#NAc;mdarCM;=-kwBgh|bC z_}RuHT*@q3Y2F6Q4`&~ho|7)`nAvhe9GY!^TKn2&Mog)tC2>KxWpPJow!{>OA{yKl zZju0rKh??7L$ryjwc4TgO-n<~5R7PN+Vy2_b@y7_Fs&s!<>O(Bn2dDVTw%rMN#X*^ z$k3+$B=O>|E_iFqppJ^4Qs#Id?}eRCh0jVV1&Yc;dp!i#Y!Th6-LJ<R^#5=qx^wA zZZpRSCUH3-PUTA`$SQ8lp;*-5$Nj@wyhl#H{BeI~oM4ZfSB8+Ck?_BNpTmH*u)D*7 zyy2Y12}T63y<@FHUS+g7W1L=zyHK9s&*IHog$IW;Ah>Z?S$e9iTcbsGYudCrqvne6 znoUT;kb-rbjY?j^#@tis*bIpCm&p!xw%(?APcpuWE)QNSrD!ayQ>iGp%qLstu+il3 zcxWwWW-?5TRK<8E%F9W2SvRlO^raU0;M!!rUTO@?#e^E0M&3VhA0$R5J(^H}%+Elf z!FY?#p62x2hqX(FJlSlDL*l#;myobV!DjP6VLjee7KFj|C)?c#4sthmr|z6*WORDi zIq~bW4t?gBN4}i+BYzsrxf=T+%e{ ze^J~?0sQeR1LIZMfsbd!Ffsne%5XgLqo|X24EwIhq4{ASO`JKt36A{nwzrP{X|0}V zetsHNZgz_~zh8s4im8n5LaZ#Qa+@3fB8=@Jn~e2&rp|u5BIB$m{-th{CP;66lSxP? zrl5rHi+=&UNqqzfS`CHIY;}_u+(lmn@zGYJ(J`f_4147P;gG)Q&eR<(=OZbw2urs;f`6(fx<7KjeE(B-tbD z<7~ULg$CX7E#%aE$)Xrv93qB61KLYr52Y0yVUD-H9w?+Fr%Vg#&20VGGSju&G{>AbuwB# z-}MSIBy#fAmIuieR@}1~npUrU>BB67dk?l~s_K;QrR8OpPzMB2`6AD^7$TH4qkPM6 zjxjN7BPM!2spVVjE^FGYOx0XZ*0JbraM~;8dz^oTJtU)KWs|CpQW_a_!>TF>mrv&C z6ZKH`TN9C+T?`V<*u+M^S7Oe@fpSYg`~^gWQgmf) zqL8MfB)MoFP8ot1^D;zgA=e&QZw3I|g5| zHIK(4gmV{l<)P=mkMp-zRo{T>iLM2ixcLM=@2%ca@oV2wFFhs;;%C?9{)7M&AsF}& zpaJ@laXUAPHriu@4$*}s>!o-oH}?71y>Yj{cSoYQOFe1x%S(-gN?hlNY_w4e}kr2yUdT*1gi!*3(tgY_0^7Y2OD#3LD=ZW-6O4c zjlOF*HfU1*h7?4Xp^_P`&SkxRwLaC#TO-)&#ih3|$suxNIHC&VB3Scd6uoSHS~hkH z*;esPEs@!iRE~B%yHM^1b_!5wEHqbNoi*_L0UMW?c8+KO7>{t){_OZQq|{l}BG`k7 zldsf_LaJnaRFJ*K|M5yosTAySXTd9UKI8_t`#AJ71FFuT?*XNo`2Q|@&Lx@*)Gp&2 zMG2_;E%|DW6O!&VUyXg!8#*sKO0lXbCsp8TssSB=JsUK@HPA)s4D;b<3h-%`Z8Ew5Sk{HhXIf+&Su_KFi8A)BQm{m-zQ zs_b%+-_k&v!w7 zkP|?SqJoBAdC;W`j5M&Jt}H!5CAXIIBwDQ2W%F7{-=oq`(xT4i#82RAC$0DF6b!I= zwY>*2yyEBLo@Vt1#`sNNl{hsN+GpE7ClhC~2X}+}c^IzZxeTtZhp$wkgFE`p`uhz) zuzsbqH$<%^eO({HMswv>Sg}W^;&zMxgni`JPf&R6=;Pi!PiBt6?j#Ifo@BFFMX=D3 zvBp$A4+{2X*ZrTy=?EPg02@4zmo|Hya+vf>c~z# zCHHNZpyYH~lxmjv$LrtP7OQsB^=^9{aSfRb(hcApiuiDacZN1?NnG2a>Of8sESL~>Fn$;I>Z85 z33W0KSRbUahH?YaDQ+Q+1RnNye(LDZJ=}JSrf$vO=DUOHj?of4hvrp=j{K*&k~TFJ(76XnK2-c{|FHy?@e*t3>0>3% z#wjlMi3j~a@19_Hl}DNTcRRE5;QdvoPL*9_V6-pdepgo=zEv6O?&wErKoDkQ;bSs% zsfs4t1|7k7W(_}bIiCipU!tLng#k|iaW<~it3T35etO2l4_>9~ z9ejQ++Z)BH@U9?-`_G?GOvzAtq`G>X6FcIEb8s))N-wKjY)_(deaIPy zvx*T`jfzqnAR+l9-DY#n^SrRY%YQSSDz1Vy20C5{J&2ptk9=RZGC^U!#_2K3e6;=x zFkYDe&O>=j$a)F5?BDYnD=Ve!aI1xa8-l$e#pJN{TWvFH>$xLJOeJdg7u)Lf?K^K@ zB|+P0k^6RiNSi%dT(O+-r0%0a20&@Sg!z7F#NX5n4xm5Xm;YrQ$P|`~W=qz5c=Ss{ zMIcoNfb(p|{U~*2*$QgFjJzrsUcqGb%q1f@2=3Rz%Y8DNO=4?npp8Nzp!3W;E5pgX z!;BxI05urHo2U`3KMHSdHzUgM2{6$QeNq71W%X%MIn2NEgX;V@)&N}0(s=;3HSZBl zI*WMMl&|7wYBF0W;u}t-`Sr86R@jxxQvSUFX*stJkXWvrRm0iM`Uh9-0N(-vkRN!g zgB*P82*IQ-GR{0>I2Gs^KCgVU+w2}{?-C+nE}A=$?}WnDOojVW2QbfuZx32o|CmtQ z)xdi6*|*^=y&fxc{b%woYYTMl19CeT0`jvl|3F5o;dzl;9P0(K>=RH$%;-oi622r6 z{ta4`ol&5-9HKrS!(UUWRO9@bvjPI97f9XNIz9f6_X@=SeWIU<#-hdm6nFkNg{yG@ zgdNs5lCg+zcXGL%XO>>3)|1jTqL_)eqgA)1pgs1fQ-7)1YCGW8Znd5t9K+VzT1p(x zpNVMv`e}=CBVj>93`x8y2s?P>xh7ahbz;E;#1m2*v;-jiBu{JBbaA6o8aHwLT+t#t)}4D;<3_we7%v`;`Bu< zA|!k3`*ZoV%=b;)>9#g@DX_f6@ zh3;mJ@*#P25NpOCY?ccJlm9O;zRmdO-cS0gd9bX!&qk!r{^7l%aE^Zt_D21d`!iGpI^JFy60ao!2^O-(i*{0!I z4JvAK0Sse<8Q!JPy!pBjS_EbS!97tzdKUN3l1R&%4Lgkmjgd8uLGzF$OTMAHdFGEk zmNPl}fjooSC1NKuji#D-Z=v(2Ed&H?+JTtE<&X6d{!$-kgSXb`gK71($0%(LLYQ%4 zRKJ8jGK;#M3#c$|GB985K^wcF%)QxpkmLFTMLJt_Kaca1Y-DNId4=CWWEs;7uZi)N z&|q+9gwj|q$}-MUTkqgt2XWt1=R%xKd^|^kkk`1TW2LrTGRk z3o(pV8iN}Ez`NdTp}R-N=T11UKOaj()J0~(i?1MTxL9Io&U&vPlm^nhsH`{H9W$V+ zi@BzPM%2#6)@fgV>Cpd!}BM-NeXH&e@l>X4%#PK3KI zCHmhz=+RS?cKr?ovrhfr267lr<3tM4a{cgDgP;#eK7z0K-`|O72e+byMmX0*BEE%G z%wqk^2pZigjt7ui-zS-gxaF@+2x#KI8LommfiFb*fc+Io2+L^xv6m zOnoqi)yeA=(F2Am3f0h=<#jyZ!0EnstZG@>$d2JkEC7AwhLdGrM1s>+o&P+Mw3#`^ zPIsOIgU0eVTLrT!qtW(bZ$a>BV<1!D#+-gTF5HzTdXm0@`vvf z8HiUb=^wR#UQf@dDCjNdvY{^Y$AM`FV*yz)#Vt0;p@2lKGMcctO%4BKQm=Wy)V0!j z8OE|B2#-6EFomV|agiQ9QA;{G^P=mHCeG;F{^^m`AeUv3r18RDiaoP&76V~rbUrNr zypcjR{6;3U`$H{2?)+4Vsu|Y`DJ~pj7J;GciNACjF1?opQMI>pkX72{mv>PkKAL21 ztsd9oxDpoKAl(}J_wY_|!~9yGZVhSi5msz0?J89Vm9RPW0p6Xi8|nJQ3CJ~EncT1Q zpBz77v>9#T;1i2G4di>{^*>9%U*uj{z9j|-q6Lpt$LTkMN%<*4$ zy@%%SQwFU)5hgeJ<+NhG$oWYk(TmjfHiz}xF?_Usxu1?iT=U;rh>SB3=Z+TH%hF|z z7|tp2m;Z6v^iKe4P*#~(D>8}-M|?wsH(>mYe`@)#x-gsFxoPT^)+QAxUCd{#O1Pe| z?~7?p>tsEaJ_8k3#yt1@oyR@9Gf~ z`)H-s3-vN{gH-$3jCj0;M#P-Hj;;bxUWSxgH5|CPI{r#ps3$s1zf(`=t15~Q3-xQ= z8D&2b<^m~Ey#Yr2mJ*pp4y0)dg;p6#^B!gY9Ux=aiggb zwfksH@Wq3v9o!He)Hl4<+?xF8oo)RJoIO`1270?R!B|FnF&EB5$O>RFR=ieay0Tru zS~jA~04Sk-!Cb8O5g z!1Ia)uEQ(>z6#lKy9)*Nk$VieEhBeFmJi zVg|^0nm@UlFWVHv);SnYdE{%@gV+GlEVAo1>?R=$IUU?i^%$;F|Lr)#_380#9^xgZnA$gt6;1j$G z`HTTOdjQBym}?YIPbo9FkluGAGU$p3V)Z2h#R}QF4WM0|N5Lsx^V|WG#XfmH^DZI! z<9^*#4T~Yyfym7`YqH}JrPDK#Vm743q5!Zf1+Vxl~^IM}*}1OVUa zu!zybCwFU^^G9AhVvd)G;sPxcVMKtS3n&)4z3h+%aeWEV_GA<6{=JxAYX&KJKhK*@K{gxfs zdC_fqusm4HfSEalqJC+P$Ycg))1ZZ0$h2;zDRB?cIg*|nzR?n{7bN#Fb+g0C?#oU@{K;oK zm+~9C00c`h*Y;>?Hy8zqjML_De4F~sKH3^k;cp?AzrLHW0Tjs%uF{@m@ChB~-6G~* zhG^x*z6ea%qAfdpVAm}HIuPUsF}3!@iaE8OS_2Swt%JF|jL6xVRzm71E7GqpCtLT? zOYe2rl+oY1xQ>^*4^ltTi#;& zdCX^lBHEbT>BCNLF|{Dxi2PbEDB?{O+P{*dHej_Nz8sq2==9M@02Y4EJH*++e!3Sc zCT1*&94yxO%L@Qp>ek!k*JQ9%6o2bU(OM67=svDwv$-*+fe7c4o!`O`CQ8!E@XCTIHQ&7!i(y7M0$9SDrsnv5(y4L zjs~t>*`PMTxxICl)vRF9*=658Yp0OBx|NoqH6S`Kw{MSR;`GGPX8ebnW z9WGXb*^ix8*3sRpTmBnw>b|36E*;OTzV7~)Y%H8ESVzBL%qqZ+`kRzL?8)f|)IL{OST389wiMiJ@ujcr-*wb%7=~X`)^P<~WN{&&- zC^~!VR{u=AH$mQG$8p#cZtK=$AurDeT)4HZ62kLd0Jul5)OWiadS#DPFv+k_-0bNT zHY%`?Gp_=uxB$k(=sDj?s=wYUl}c`{9V!%E489!=Y{=&ECPN=QMrxdJzRvRlIm=%Q zF2mP4*b9UZV;L1mliG)9r;Q}}wJ9m$7wfRdi^1y_e}g#myPL~BY%qVN!2b1}v)fy> zp98qTtQ>&-0mSw-g`U!3LEGP>n9* z09w%A7_1fCIJ)-O%d^mTFqT&yZm8` z9}Eu{cYvscx_%D!5P+&3FKpwT+gFMr;9k>?{+A;N{ObRvvP#2mZwlA6^72kuTGEq# z{2%b+lkRq8`rDs0hsqC+ZNO%(4wb)_ephw}(LA zRp&4~++n8^`w1)w=j7$}Spct~w@n8c+p9CuW&hX7`9F=gUo&j`W^ex=Rl4}dTAf`< zg~fc(7Jf1FKdEr>U4I-tu$S#JiqRKB0}|=u%pvP}^-){Yo$Nw(J%6)$shSoD5t7M7vICtWJ%*~GMNXj;d-c}7Ud3za z+;Gh%*_OMXS*~Z-%<8pq6|3h?Zcd#A^}f6QGVqsIAEE#u>EGgI)JR@|VXES-kL7{W z?IR;}CpeIIjbzMpB}Vx$7Y6YjRhfFQDs`Wsw^v2AuA%KJ+q=-QOd5#>G`H$_#P`dC z0|Qetzlo@ZuX(~5nbZsNC;Yv0fYY7uEe4YGQmO9aZc)v@^K-%rS!53xpvX>B^=iAk znp=C)$eW$MV#xx_+1ICaH#4V&no^y@ zZ=vmR#704xtW0~YvE%m^bEbz}69%P2MskG}Kb_FFhyM*}{U4N71zLC|J!%5G`vR@Nd}b$|DW z+DeB~eHKhTPy$`#Lx9pyk(=D^f3t#*4 z4Alb08$P^KmzU0Gm?ODK-8#!P4{8h(VDksgBd?xHcr;&nQBM|?%AdOdDkLmbgDI?I z2N3H`GIt)IQ(ETbwLGY0kHHe5VHwHsk7%WV@L1d98X7t&1@h;R;R^*HgjO~fJto9i zx;tCm()-vzVC&7%nlMP2pMMi&73^0%k1CUw-n6U7d_9tPTy>pC<=5$deiXcQ^OV_yZfS~^yGC)aTYv9hxhEQ&uCik?X*uv#bOapo+vg9Xi{u@pQ!uvWvKkuC-eTVBEtWLB zdFa7oFC+KdB_9YHuJF1Qbtz&!z|zukdd7e~8iK^&XEIJ7)TUSTzj~xCRpZj2o9XDj)myS-d*7{9If802h3q18quFdyD#~%sGPQI@4r|R!N0Ak~N&g8<($Nwfa7O<(0P*2*|!aHQl2T2K75@ET{ z-g)EOVVdqUK#$O(>6wV(5}|AW%dYgp)~wzR^xXnnh%rV7mw=n_4a*!0c3glt)z**s zhZruh<5SsT&{s?BZeQGJl|mYvN1*~T%lI?o*$CIx_`%qts&5#hwJ`R`uZ0yR46Hw% z_m6$U_YLMcO1j{Mg4X7GZ+)76dx<_X)?q2T|62o6F2*c2r#W(YWe4tW-(4NqS6_A5_|M{#m6JpCq9@BO{5oH!hZTD zw7HsEZ**nmR-){@34&{mZf}0}opsDe=kx}-Co;vSgZ>@u50~Gc+R>YDf_%W2E}0Fv zq31X9>4WsK2fTIZk2>R!6U*b|UE#sHW`e!?#Elo@*YzzrncmWyDmp&tY^yJ&@Ec8f~us z3|GfQ<8S0?MKIRiVfL`NX8Hy(Pedym2Yr@O$dBIdz9qPPJ_JS+>b(49-x<0&(l1;p zvxgK?$H+eY3d(L=4sF$`ax|F^*ZX0bA;_;TT%p3`!hk}!;aOeqC;ZTW40^I-(2nRafk<~bVY2Eg8-oTl ztk_{h zxhjgZaK{k>1gOMai;0m-W~Pf@6Q5649#l9&@cKfWNa`BBH$;0!;hg;}lWVdUSs4EP znfb9&et68uooZ0LwZNFhBIpy))Mvg4T#(vdVf7`b5-@YZ@p9g{s<1R&al-#Z4FOk$i)@Vhs4a zxvz;4LC&ILB}%0xo&--~TUsG+vTzW^mC&VYG47u5GOQ}(=8y49gp)$P(wTnygfkwb z%aiVP@A}8%@u+vNonM#r`%Jm1wo!qTNZYCzK7GgkCDashsJi-TCcfZ}hA-z3pC9BC z^bqp-Zp=ISuMk%_UW4of+ShUFE|4rFo#Q_^UcQJY2>P901ilO?<1WK)WOfs$qcp+~ z0%!U>gTV+$UJm;a_4Sn~Tn*DFZE^H0u)NeEAMOHfjKolusda{}7QC{~)TyhZLSSt& zYfr#6Z1Z~M{Chf3Eh&-l2RO;#&(QhNm=`!7Me<~z-1i9uVaR1W@aw(%{VEz28th?;I%5tQbh6#jUdNHUfWae+wQcde;;79gq-4F@LX*`jkEe+SV^ z4iYI>aMLJ;;Yj*p)}ZgxM1!exS8CFKjeKoI9tO#+Y=hbjff8;eX`ovSpyXG4vfOo|TjG#zv;{a<8zrKN9y_^JM z1cCulS%UuF?Ua+#*BZml&0q}IZz??3B$R&hQ$6IIWZW2ApwSktuZ6EO0CW^OY3%*PEGy7>7__Yt3QO&8Q<-I4IX)7`J% zY;3z~Ypksgit$M_7CQd^TjN5PpH1^$HE)$o1-(}-bQ|bU$?rA80am{|8mbB$%NKl{ zo+gT)9M8GbY$S=IC$xM>Zn<6aK*W0>sdPz5wQm6#8+UJ5BAN)xZ+i*!8*eFCn#_JY zY(ZUIa(>O4VCJK3+FQGD-PCFQ$eA|T7yKXPPZi&YT|y%Pl=R{DNH`9NHJgqRxl>Nc zW-Hnm-ISM9nh)2~1?oZ1d30A9E$XHK3RV`5@H`fRPL$H9Ked%$wJBGiUut4X$0fE< z1+}%VbOw>p<`WKp$El}hNCj~9E_C+KAhrU%ta?2r(*Gyqc%L(shO940?Ia#qwWd4j zcA}kx5f0@G5?`)e0VGJ)$!132i%x~UPoxdmWk-^%iS9mIkh_+E*j#h#4#oQhWq~p{ z!kLv%wh?bCNCqlfGvCq14UFJFzL#}$dSIocW*YPQ%DFhbl4xy7Jm^ow^UA;w>*}68 z(w7WHFMRfR?gqcXdDXpP8k6Q)#0zH_ep<<|w;h>p*M0625~+wc__#Ew+f?UMJY-jo zUW=jL8S~ygx+wYdcuw#w@+QB+@{3Zi3l%LUr4$a+Gj+9PbU3iPuMZ5(zP8(NIw;KG zRgnFZfC7c8I&@d>;(JlHEd2GA-glyk*e=QY zc@HfCMhEd5fELGkAf~&2C6V6KqX5%(e;W+k&2<=r3`ek>M=bHLgmSs-xA%_+myj8o z@kIsderpI7kk`Q%S-6A0b0YF#c+9d$q!zWU}Q-G)W(j6f@vtz&3AENaNZHXIx zK%w#aM*`nufC~HneYG|N|4TDr{khVe9L7ziBfMv*A;?Q$6V-;YQ=&J|%-v|fxa07J)R^~=OSumLI^IYi%oLriJa#;H(oS=Q9`15Z z3H!ATCA9SI-(HLl(0D0vWsUN9;R%PsPt*2Q`>HLKCugJS-8L*dz$@L$OvN`L-cRfg z<6rm`irkbqIzK@iTlPb{)Z6)3>S;q!M&U^@;)PCQe#TtP6LMAxIrYn*IJ_d=dU0fz zod{7E70~>eRSnJ!%d?W|4~_0Ej1Ov;U@pg8Qaf!rGSj#$yuid9CAX{D@yli+6fsuO zmP8>*ZBOt$N59pFk8;ywtzI?b+#6UHgg2@#xJSbZ=AsL=GRE272cPdicV=T;t zpVhJ|0v-ij9he*s9B%|ixraU0L5X%UiyzF)u)lDjp<3#z*;mJ4=_(nfBL92lH57{N z-+a#C0vU;ZwmIl|guj=IZ7OkLsrfLuzOQbdzOPuMq`;#v>KPiWaUP*t7Q3hU8+@g^0{Ad{4`0Z$o(NJt$X-}BPrPY^*)V5Iy zMS~P*O?|b7ySdQ)=0JZp(Q;h2&0Pw@U(GtXY~a!z69adVr^gk}NMZbpWxB#coxJ z4i!ZqTz>B#*YO##Gbr@qh^#`nVBcc4M`!Fb;5)Q`!ri+W>n8KBt_*D}U;9y0vK38K ziOZa@RSPr44unhGJ$V{hwNV0b{4K-ETh~I-*&_SQIda#FT<@IccS@2&s}sk+Anu+p zmQ7t{KO(ob)ot1sbIepuZJFC97sMISj5c!Rjku;pXdP2`lkR$s3q7*g8WaHH?5FTJ z!C`dYMzM$G)wC$M0}&OJ^!==m1;~bSp54|m(7RV^E9rT8poyB-N=X_2P-Y4ZRaLUB zsh-gjjp%O1tb(Y^+zP6wK^>H_qNkZK&YH%W-R%K`A6JK{Z~jua$vam?Ie}#>TE6dp z*@|MN`}75_vkKgVI!}G<7EqvlqK6)_Ooq=is$_wq7*}@(zD5%;>T@GIK{%AJ!ugDv zQ8%t)wVObn=L;}88#`8Bchwg^a&PMA8{5DjRIGFi(o~u=ju5hp)dQ?witYt3W#_ZF z5rz#minsA4D8&$HxOJU%>RPO!e9(a6C0F^>hNH+X<==-s z`EZ2cYP(O7wo{Tykuk5&q%!Vorni5`jH347&XiWDyCz0%A4Q1-gN5*5XcQ$DaW1#>jykTNpHopQC$#u^5kVP9+bZ)gqd-`~O*G2?;GYV9m-hVMz>2 z?Zl%jHaB^BOfE^s_dyV&*RcW7_Z8-HDbY+!tg&KjPe}2Md|753yvW0rJHbc#$u&05 zBUbtyM}xaQ!RS}{w}K}+>P(yVVE<~!G0j$6{#IGLVw;%kq?2f$XB*>QQQh0>b)}S# zyg69IRel7POu=<5EjW(_(zzaqvFC2+*RLY2U+6>?Vz>8<&xM97fa3Gj5^p-_=V`p4 z2VS|G`NhTrmr05pO{20#ufz7mTy9cOepK_!7~_0iK6u2qy)++Gs3hgHaH&@R8a%2b zF|zs1d?+7gSO7oD9s82!d7m*Ja`SbsI$QL&63i6{mLt`(uEta&LRW)79~WU)Ly!l! zs6fH@9is}t*PABmH;%*b4=a0xQ=R9sRGvb#*_^sA+z!U4l=PmKklFII(+4XvADKd5 z;Qkb_8Z>lc0{!Vpaz%?yYUXv~=hp(8c6L*oB`-yWnAhus$D`C-dQ8B$YWQ8=jT%3q z90KoUIH7#1))-~1cSHa*KM*bXb5UK}PrTjz@cO8MQ1G2a7JuW1I_W8UH#gSJY8#gp z-r^ZT<5tSw3;be~BL5*`=i zt@yD|*2=}CgZk?ukj|MCmKVXlhdTSd4X8C7Lhc|LZyBmiO6cIkQF|tfpXWVB1Wt^` zM7O!yad9FwF)?Z2LvdXw`9n6 z-E(h?XtX6a5^#4hy|UP8I6e?JSoSd`LdWwjwwGR5U`-_` zRw2j0Xl5W;Nu#H)Fsi)-zKP9Yw4eHTuwdif82zYrz;)*nkHEL2OrS{7HaL&~p{QPm zKZPa)z;8IqA{(ZPK0wj?lucJd*-irQMB)KMYScY_ql5w#Gbn!lpXPV?M;@Qd+4AgO;$3iaZmxL`ROC zfGk`o&YcTL`4%{JHqu=Gl&ETc;jP;iCO3`dKI5VEv@aWE)@jde{Jh;~N{27kLNQuy zN5JoUde*dph9Ivwf$Tuef{BQ0F#q1)6~zJEB<@c{TVcz$0KMtC(05CZHa9he8;5Qm zFJ1yX7H#?PW*(YI>SA>7^K(ND@RnvES5p@6twU+y-k;H!e&s^z-vinCexBeDpcQVG zL+Fw{_uXP4V zI;YW9AWNls4tWGHLXQ>O5kNR+6GE5>nEvkdaj6=a`h+&MtQb!KfLq&^Iaz%K2wF2m})C}x#-!V$KLqyp8{>!3@olxw`v$Oj9#TDxU z-T~(|Eu3#FWK;fl1YKxZEcco5g?aTbMy&ovL>TXbW-aVJO9B?*8s*&>^m*tO`9PjJ z=-IHfm*xbHIF4}DHE=kjL_eHh#ne>c8JOA-`pcVkjCPnJXPgTlsKDTy>NJ(VookX@ zw~ARPgv8X;B}sb-)xwI>hVy_zc5Q5UgdJxg{;Xrr!s#O+_viAFt+8%k7sCTVrx;!~ zF*&&6dnZ>6^c@5S-a*JdO4c5c7|Kgs@d#cxx00Y&jU27M?5A|R&&87?f$*t~R`fEg zMYDc5yuA7wHA$A? z)$5olEN)vw{8ovAe!lLAUZt}Yk)jsggEDW5$Gmf{%#J1wCb+kOT5UT zt8YF&2+wtS5=P>XYtX5o$iE*vZOJ=-GrNYt*^B*QrLQVL80$>T*TYVA^+mbbLfWG^ zb#d2_tZQ!4epfiop{U$$!Et}OM03bK^Fh2U0AB!0qLV& ztL0?%5eQVeksH$~Dii zF}?2k;ieWAO|6LFDv&EM9%@q$UY(s4a?)$YIUxjk#0k1+cZ*KTpQ6tNG;3}JACo^h zp_KgTW*+gwW&Kktf_c5B@{sK=0C6pz$UNQ;%BLY#w{pIn9AUrA2DNMsie-F~DL3(u zd`z75@Aok^sLZC0PygnI+B-&hxv}~hibQC+2v!M0hbL4p$ZjhJmjd10o!YM74I@0H z_KVXd{OJ_m$({SVJ}S)+w{R2YMWf*!k*eRe!E4}r|1p=s>;N$^g>?wAfhyb(ANDOm ze5tcpdtCi#!{tRK)fmwShNdx?F3Wqt2$RR*)!L}0$0*u}6)}lYUg`m*G&V}b3+@5N zt2{3te%*kj^o9?V-2^kZ8{f+pJIh{8s`d$7F6XvaPyW8c)`~XLyKo6LSKsnHgwRYD zPzgs7n+mX;S^Zwvg`5`j0@h7#tmv|&DeiYT&^YvSqWw$T&o6v)_Au%)d#qx7q+ts0 zKTDM&ugrZ^U^2_tkH&YYfG z#_*+|e!!Z^fxqjYGI;Gb?9g#Dmk5Q!bD%6Ay0IGldHEkLr^T|t5Qol5%~nCV;WrqZ z-jrvhYn`0>SQwc0ftw&m!eOvmtT-MkfhOwUipHHo?_Z}vnCLML(RB%LNDtfpjeX;Ps5PGuF>(ORBOknIatcsV`t(LNqgu~g{J^N`7umax7s>Fp-*p8Fm0$jv^l#XRP% zr|xTzL1SorZ`0e#8zovd|59inyQN2nZ!_msVEX)#BDA69;tgU zEgJ#(K}H#<8H3@YY-!s#`v+Wd|2YS@S)oz%kMxbr5z%gN=a5yD!U88HU?-~@-lL~y ztN(o}U8+anTK)$oh{E#)g<7$fa!q$>AEO>kwq5LiY0l4{c11Yc#WvnVn*`owA2PJR z7iQQKCLPP67Q)#9gBwbSzQ(%sk`X&eH5=PxMh*P847?n+p0ypxBIGoSKNDA{I`md} z#KbL>8+Wlw-gKUYH%OFWjf|Y}5tp|km)-7Xx4CVL9DO#h zqqfBX`OgBMJ#kpQ@dD=#z2Ht)#!+2xNh+QPP?`Th7)#vuae2b(xUufD;@3)WBqS`N z*j2VxBf)k~l@3#6hpDe7q9gyji9?3^?fY^ouC&&&y=wBg50x@ zfFJUVz5dVk|Cb(qC;y8|^M7BhPm;vX znaC(hkzXSaApwa&LQ?=}?az;3FGMI2=rYn40F!8JWT^XAsoFP%n{jMeC#$`Y?Qfd2aD+;3mweyw`}XV!!oz()V*|En6eU7J;yqO;botsO{dP!S1#xF z$zzn`pD7)ENyFd_A$Wd$u+5aWReYs3(iD4;HN2bsd0Ydr-fUIk)mqEev%4$S$T!(s z8TnfW1QTwUgpxqp$@v*ZVyey7Zoe&^s{(iY>2+m<#H+%h{n}o8+73#@I^lynPnY0u zHhG3E4${+(XAu#hriLXfKyX>%<21E0v?0x#-6eaJMUyd#o)oy{3e_;)HqSRBI*k8% zKWtA1E4@f9NdvgiP}co{O)OcZC*6_kElla%n0=j?jOkh{c_u&;BDZf_mAKaCuBy<; z%|5v77F&74C!Ebe_k!_3j+`q4Zm45aW1B@vkmqL>d9lkbb1!+COU}O-%{qE7UwzO= zeH(T7cO_kEac@cX9QPpk`ovGisemQym0<5XQx^(<`8P_e0=&tZIQUGIO+Q@$^%^2m1$4*XqqqmjPey1*3FS})4 zmiAdnKU@Pw*ti~A_I)@P@X{9)5B)K)WMGP(pg`fDv=T z#+-Y7C*!^Pi?0V@fpb?wMtbnRsisxz<>FiX4X+CCre^*ok+DVcfqc!SjY2ixkf;&V z*y&8KT-m*ocP90c#4~(yaSAMb*|2@O-@aD&X{XvAJ%!~DKTi4G+iu=4{2JnRU&Ko% zGnAifa7t|{LC3(2_!+%~M_RQN*LF`D%PU1PJUz_@R_)$V=jLnarip3PI_u$njb{9+ zzIKg&bd8AkM042i2-_{jfs9pY#^*?JQe}%}#?A_Qq+4e~oplq5bx=K5NdzT&xzXLu z1?LkdHw5=mvv%Cm;ue@m*E;B+sXStCV7zu5-|qqq0)$I9pDQQ3=G5LqErm*>~*Ppe%66 z4VlDaEoPL}CwiNc)&oF^UfDGjh-PU?LJx|MS5m7&&`~$?!`t z2}|yM7ozY;*meP?FPVVLE%sGeKBdZbVXxa+Y+(C4F`xoIs>40W7v$jq7UF z@wN^#u%uYB)SOJ^#F?QN<1AxWZWoZ|*zsfo?kK_x-}Vv`g0*sL>!&Tp12^5!S4fo^i+x`sJ*+g8K^TJTHeq$!5A-WU;AaKH zAIM3UHTrOS;d&E0yEZuN-jI zru8{+^A~Ulr*)j4Eeg+(ISk8Hq~#3XK^DB5fE^23H8wV2H?`2`hF~%rx4?02 z|CI-tFRc|R&ISjw2#bFJMj=EQu`i`Aeccybxw%HBv<5%D%n#0)_@jSE36V56|9XL}?n2{~ z);vR4FMYYkEHd{RiO@Gepa@=XwLI)yNK1?NzJQ@12SuCEtiQlxz!yMXlP-xt8!5LC z&Ko(Dn2jlF28L``Gu~T5z;&7Sdv=ZmfSz6jab0GZoW^%rT#8{!BSZ4jg3%%C?hH66L;2!c{U0ty#XBDY9lNIn(p+J zAXUxfjA`|i+mB9@QgU!MpB>)dRh(n4E17DC@n05znrE@l<;4I3SiRM)18?;mAi+@I zBaXT?Y^g1gV!1II?_&~0FIY3JHVUta&?+#rC!ed7=PX9!Lw73*$wR$F;ND!(K%NwMW z-9q`bh1YRoC`82Y@t8PW>u@)J=f7+Cgc^&;FpuJD!Gfp!(4gDu%H1F%zm&1qYtY?X z@}NCwhdtW6FbPyLR-R^Olj#K9whV)=%R9V&(`>Jwo9pS16N+C>AbLWnD&<9$JG)oM zk9dw|45XB`6sdxbf~KZ18xjN6DDZ7!!DZ)tKU23C=vP1h8Stu@h;!i8C~=4 zMDeMq8_XAnG0#R{hE3uL@Vm@YCFON-E-@(}Gb#A9FisCyzlP|Wd{wDsZt_bzVquhg z4ziYAj0`%k-}vJwjoik628j&I>K-RGiqYg0X^QcR=K7Ge zHvgm4y#YC`ir68ZzQ?3?UsB;0?OC1|cUvSzGXTy;K+*At=;jR|Ed7Z`KIq7#0lnKE$=@SeeWRmw0=|US89{D*Y=+M)Q?Jb zJdkGV%5v+F+YBH}<%~^rv;@i!K@E!2YAz~@%0nMz8e|m@Re7JF8A3uAt7=^uZC?8j zs^U^GB2qy^Him@}yoM;MBR;{gRHG#;cI;??%7xBR?;kH+%i|T<-JMS***Xz-T)F4c zJL*!W0s@+Xhi#*L2(x++6F#K55BYO`DrpwFDdg4#dvy`)SP)!b?o+1S{@@rzNxE~@d~vu1#=e@^$MhQdE2dZJaOLZS zDH#!ul@rV zteDv^(+pC96tWqL5jxTQ7L#CA7s+?%EmWZpRct~u>0h(VCntI%G+)Az9V4Nqi^oUG zA;Tsn%1Wh_l%54s^-F-YT5!oeqvrq-FD$X}P;=(PFBcttg=rEJCw^)Mq7g5Ajm$zv z4rd_^R2h6j^!?hJk6UF1^m%s}9S}0F$HmV>X=fYPWR1tbnk$TF2|A)x00yJPj zmu{}pV!s8s%pU|nF*%o=funREwcJX|i5@nOMg?FBu};S|p1FR!rlR|p7_!{{MDtHX z!IbY)S`Iz6#WFC(TOWw5EN5o$C>qI^M`>xSg@gm)ly9)rjJLi$cfksxAmqfp9b2#} z^_KkP0ZM9&oD%Y#{>NMu7X9`1qRhO(K8ZINtF&W1Q&Us7@n`O-o&MYFzl9=-b)kHz z#8%&!CRD)ooexxzRvZ{?1UqRjhwRX#&L_zSn-8d;wUqvzvhDcHOG|uUy&3131x}Ya&tq;in1( zn7IFw3Z?0(vWH*PB&H@KBjdRU8|_+Ht_w{rb~9Jy=;|S*-*aDul6r^#IsK{Z@R~rO z+GgqItm3VTJ6+E`3&jh%Dq0#TsH|0&qMrf-!Ys;eX2M()tESjmG8t zqjP!u?!D_;vtHnJKN|K26~ICk(;3mF7;cyorE4}nwE=B^&qP8?=HJI@tiARBR+iNI z@|}d`t;>UpDq4A}ZVta$Z{*po{gK3eWnhNS(h7bZ{{j5y{x+bi-OpdHefj_G>i)5N z6PuYx4a>CQ!`aKyOrIJ{pm+M>k7crP52nO9P)cV*ruSGQK!RvILUVyPCBmGEM%h-Z}%6}?96t4#@1%3lcq zLQHayDPS9K$=6pN!BKorcBah3Etu-p#_y)QO6}z_*yd2#;;k%G2ZKB?H|m3K&eKxU zR~2hEzyI~J55kd>)?CN0ZVW5x#rR~QyWQ|4$WfGLu}BC$FIL+w-YG<)9mxAOVx$%D z#%0|~Bh2OTS#L9E5oafq$GSUonpvaKK2Ddzp>Ht`HY9A0qTI&1FF$&adF)bR46B27 zO*}NUYv>!zEVrV0WgeEA$ft~Bp2UrZh#HlKFD!mJ#e8*2kSIM|eI3=jlIry$+Utk- zA5OCV>)&yHe-YAki-0Q2PbEb~Mc@BJ!Fi}uxDB9Q8!GiS-vQ;vZhAL)pBIyFRghb!nQj}rh#tz~ciSmpg`J6Q z-|nFX(2t5RW`uSLexD3kl(T~xtcIg(aISHAMb)_1$>JyqN9sworU#7Wt4C2n10hS! zjO2|5iIs(g>JwZm{d(N0RAm}sJ7UZXyONvLkB$}rLMqxR8@%u3?HyNr zD=UA2>VN$t<`R$h7*aQ%NWG}H`d7O#~+-#+yb7@T)^gS#*K`X>!dr;&` zs-q^;tGlV*%m8OQ9Q_Cy^BgV3k{{A;B-v-U@;)t(oo)&}xH-vBaVL}oUs@_5|0Eca zSG0{Cd{gbXjma$s-e9iIva&V<@`R`1(*ym6i^B{B1>`)MTyNMPYJ; zJc*DdFbTUi2FR6KB6wmnDS^XqTb%niutTU=x<|SiwI(jYA{u;GcfM!5XNh`8xo)Eh z#=rYc>cFCksXuy`$7bm{B4(vODtHBb%;LBp#YFQ^H4HA#>?F2(f1>PJpG~&KPpk&J z(RU@A+6wci$jOi;WWjYCKpl46!8TgAfn#Rfp=k7^rJZCfpeyjnoSl_KB#3ANzY|KV z{&P7ky`9l*l)T|C-p8^;6FUC4zV?B%WC~w+u8J~VJ=O0pw5Nac8+oe76(?l(I)$RD zw2mv3F6hU+Fd=1>P^o>i?F7q#gWspQFjq(d?<&Fhw&XWZ9qM!9qwZKykYSAXDbNBT`%3-5gR<*UsrVtfFlWl%kb);8lTl=hKL==)F%C~1}4 zL|-l{E8rXA-2FsL8{Ob#-QqXH((7j}N!+kq>ojA1d8HO-*gSf@^zx6pJ!wQ{?uBxB zDw{*-Zs#HtKkHxC0-ss|py|VdFgmU0mZ(vA)lY$1rEsQ2r-3xV!g%LIj3bQO3+sw1 zlh?+Ly&X1zcTmTea3*|%X?>L{4{6%vbyNK^uYlM|<^wJn-d6a?E9M!fs7F1=3bu)R zlNKO-dbqEY!kY>U-l~6l0&}s046g@JDA}p{S1yni8ul|E<(9dPHAgCcIHHIC1uLiw7s)CJe9Ov3I zH(me-8C*UinP94*mc44rj9fju9G(@#dn#93#~NOo#!LB}DLE;qw)Fgrg3S+Lthwj* zb@*t28y3saftRMXjRH_VJSNcu?V3j1jyOA|p4d6MbI|S6BwushQDH8WZ~`ry3}Mjw z>M(jA1=?3-(UQE#2xq-(B9mID{*-p-=9!SR{p3x*T;uu{+&83#kT&##(`0f@@eku(iE@Zp? zfzYY9zzTRdNVbApA=jsFAl^5YV_jp4a9Z$J`kKS_F0ZF3=M@4-8dp9{g+!3XKj1T} z_wdY4fKn?y_-X=ZL8dcm=!0(JUo0POY0l)+nuDglx~<+f-uly%#~{-d;ZGqe`2Ce~ z$V^tbW18RJwATJMw^#V{f$WFFPoDxpPAgst9a%H?*}MGR>_nR#Yi~L0o3!#?qNa6= zF}NVL1wt`6HP;v_zkowI888q`+3|og+wK;l3QHF&)AaAdYd%V~1S%!=pJP1eo2k1= zyY*w?_DkL?a%adwfL^dQA%rw*WXf0`&bRlyvx|Fda6?7QSjwh$RiWmhV*~E|;$uq9 zR>oJ_Zrke_ndz{ee=)ObEWoC_lzFl^D0sx+C8?Aw5Nb4;uDrbA@}PP>)VpuI>z`N! zC#>J-wq=30PqQrOMyhtmlQ~X42E!WHd+m|(ms+S@lj8%!NjP&Qy)OL$p=o(MS56E6 zke{SpclZVvLJp^l{o(4It)78#~r;{hwt@( z?l(hGJ82gTRfRLAIskhYAPzJ!=QQJiOkoL4Ax)*fA;?6wY~}d95t-@}G3hyslY=i> zBKjwOxY{Km$o2MQsA~c-X|{Yp4gj>1=Qkq(vKOmssT;$8xdYJvrOU>UxJ835o7kFx z#;F|Mv0geoyXO{#q(trKJV#VDoX8s4;T#~fPI$jp0uCtzQdUec~k`LPc>$V5&Akz@Ti(`q;I*znd+;Sh^WOmDO z@?`HLLVNkSNWpmpVqd50Qt9-N=FO(&CM8ghi+=iSqn<~--^F25$rr9^D$b&57Z zZN+8-RxK=C@E_bnk#}4407sbqy5Tcr+#Hnnx{BK2Gg-|SDr^fgC0DbCk6m_d+cxHB zbYl6NzNfvO&VTjB0@B7@`R*i}AG@(0`D$s$RAXr$5Z*xGfNr`lRbk8Bz5tHi%4UxVdzC|V`k>upeE+S3Yr$~Ke%G;^Si%($TVDMBP?f0e= z_5CbZO~Z@kcdj+@>=Vm#U1ZIMTiUtkFu1!>bYhH;3+y({{;hzP)^3LuzI%`jXyl2{ z1R-aT8d(T1`@ZniW$ge+cvjj3{+>{-Mc_k77WIkQDCAxC`ka^=znjAgrNzAR$Zmz5 z!V{_tFCXMQKbgiFPT(~Bkf42+kLM~2+w%--xe~ok|Q1kimI_WXS9*hf1t5{ z8H3m!3CT884c)-w!NJu*%P$8S${r0EZ~X<yyvBJp8TB_(?IvjfGE$EZ+uQbrzoogIG#vh4{ zP)3NMpV45PbPBiO>>`DL@wQDZqJGa={~!siEr9v>_v_lu|4**2{4BJZT$3TGLhxGY z4nRYIp6r{f{$^#X!3E|ryAtPYZQWH3z-(_x7u-)^j{NU|IZ$l1UO8ZIf0XwhVEX^U zEELpd#5q)5yd3`KCGjAf(uwY~tky$YM zsISxm3Fq}+T?Q!?j)QplAg2;AH0w=UW?<>B6_FTdx%MA?#ah*j8Z>^dZG?k{#&f(v zcru7NbV#?Ux~c+A;aBt*SvMUH>RnNM9^zcHcg3-TWXtpTpQ=RuxjRew{}(LMtJBr0 zy$>&BV)~6Mq0i3t4++>MHeJqzZF%t>APqvqpsID~il^~H>+aA)!#N6PTzh0oz}DP_ zR(#!lQSa4I_fL09LVaRg75K$DA(Q)z&n#}TPOoutZaxHbpzrJ4okIaCKLPFGlZ@G+ zqT3Ob=cJ(Nubu=tcy$i7Wf%s==3UOo3i~AvkodXB3!ciTB=-(*sTSocRew7)XtC$r zf?B_M0j+AB48yY8FK4`+m?~)87=8EShGn2ti4#Bn>DK|KO7ck0Oh(-ct(!uFDz5%n z$?fd7sLT?|>?yyFUa;29DZ486JM?BD@2!oR?%gidRc+c$Sby||P(feR(3f{{p>y2y z%=HtlB_zJ+0U_A6)}cP^3r|9|&vVZ~ho+*mJEhNtM3h~JLH4UAwB8aAQ$?e(KX!0c zOVF$D?v#8~%dGJAIm3x;9oa|xol3pVYAs8Bo&AN>gE7qeblNpqN!n&bGE^MB z;GL>bs>sGc^NW-u?_L?fP4$*v^*#1$Yn>ejdc=LnRgFY7_G2-N+qwCO!J7w)oC?iX zO}sE&8BI5?``#fn()udk+{P+i(&JLEo(mA_@xV8C6q9ea0*#C8sob}u>>h*lGl>8S zsC{jVA2PZTxm-e-N=dLXEOOJiYz_Y**V3uy6|Uuuz0LYk?L!!DFq*)r!wD)et^{nsZk5e%qbLg%B;)`)5)Rq+GzqRMmNan7mEax z#RAr_;H8b2Q<`9(S#^8%Uk!LX&{W24{FZgP5j3;!e1njOb-3w}pVQEL(OD~UQlX^F zq0^UEu&H9w)6KEkTtxbJ-cmxs8oFk_ejM4e#^k75=dDqGm5n;3S+BQhkb0&{x_a~6 zkOFpjsgv$VL6y|ryY$(rqQRl_*_(Gz%IH*L6y%I|aXZQNZBcc0UyTQ{%Dd4uj?vXW zR;BILw|paBuPiPjYeqQPMD`m!FFG+S12!ugWu%Bgj#b7K;4M zw{og4FV4D=i{k6{9i7`s;UR5P@KN((W-dL}%uvZCsi(7VZY3I87HF~jE^Y3+A&SHOl$hteZ->@kKAZoqt zV%Q1(_TC5AeOxB?Mi1cPtY6#p16@HXhbu3HiVrX&qlvFnwS6DVJ!0g#voN|G4WQ;E ztI5!zgRXO7k@i@w9~JO8=+?;a?gty4W2&S{&xJl}kid6ZH%5kE2+9Z!JHd8^me;|@ zWxevtNAY6VU1F3sX1OI~o_m6-a;L}gx)`BnyQA>lKQ~8^J-JT6pWQvK9;cY#GoYIN z4jr^GTD9@I;hUHs=BYyWKxR56S5|f+XJALjs&};|PwtvwQdPBD^NjK?>|>f5H~DDY z@iMEYTPQR};xmJ)1pBU4l(uO7jA4maM*zQg_f`&cC(&LopUqJI0bQ8L`4|XrhWBmk zSd-<>gLXz2S!n2U^_8@s{xxme$p$gHeCq2#|5W9$MxYOxM-(**xz`oJ>emCYF{1tk z`YorZ<(eJNV_N7(g8-3BgEt0Ez90Uq0KVtC{5XiK2%~z$pymf6Z+&r2SY$V;SdHu+ zy18_oIh0@H*VBVVC#T}N)#PeVi?XQW-gcm&h9yx>SJ%fs=3MZ`;QY{KS13LbcSq2; z8WtV&$#_O#VW2eh2*L+qVMYMTNS~Zry!tx3L3!OA-Y5Tr=pmlvm9V(p{6|`4SAFkn z0J%j5j)It8h^ziM(QbCV_&#(Is>*4ROMoenvWm-UTyX zm9g(g-oHt&K@TeB7(5k!_@P(LIfV3}YO3>!Ts6cC=GCP&$%n%%yRf;0e2XSIu;H+( z`>nhAYy6<0X?0Xh19TupU&Zb2)VLZ@;2CKZ+|}J;Vlc;1Bz1oyX=a7%7_Hb0+$p~i zVjhA5dC?&7)v`zvB&$U~Ag$XZU-vP}bDxmHD1b|OHoqxb3XE@3UI4N7mL|5nrcI{7 z64p)m4Zok1%jYqdKJOX?Z0HJTTA^RSJ^)$GbA(ULoc9ZLE)LBiST26zYvwBO@pBzy zJ*6LhEqqfwHFfd$G(LxeS-@h_JI6zL*$0hH%!_>GTSn1M+Uk)#*URN^#k|G+DDEU| zw({8i_X7r`CpV6pkWz8jni2sKQkb(-tR zue6y2_Ue#z`9q;$ek)?>Qzj7B#*P=+NONYJn};99w~p4Ejq$Sg*G!CT08+DdAR%nRI+sv7C!&F&}t6py$XU7Px1nNfW?W4|wVGT1xVS8&YJGtcUKqqwzf zR@yJoK3&*bFPEER=(yibk&#Z2Z@lq$rL7|mNSq!~ZKIuu49J~}tFiQ>n{JN7HVYMx ztWI8FHWPAzjIddEGVu%iC3_iv&yk~^lgK<8&)!9yVU{Jfv45->mcd_U?;lcg&<=wv zY;bqe!y!4#hNp&+DPAHWIelZmnT_DD2tV0J!}y{4=i%x@HBTw_<<6O3+W+gY+CMnC z%{W%z*g=cf2RM7NlL-{VFObvY{%Fq~c0yx4(6x-wB^dGxO5*c(TS%-PT$97;Ju z5$jY@15HTm%fe-3U7eK62RW7+SuXY%=2GcLmz#FqdOwxa`(OsF90&P7*n97&rm{Eg z7spY?2F^HGs5*8L5T#dzu_B@(og^Y6(m@C#n=j&3`OT&N&$_VZ3CYLKGyp=8~C^~9go0e`*XRy6$N<;4?{(P>m@sqTQd`-M(z1T%Pa@d z;c$Pr#`n9PHUAbRi_nVoAGnMe3JA7)LU_q}k(HlC5j1R|EL3vlu^C-fJyg~3#4vR z;{_Jc0Y4u(^u$2Xp@)8?5fE1X(r8V{YTe`NXO_ z4W*|2P==h(>`wtt+*cWde{fJ9tf^0vReR#jiA^tXf5jxvZ0z(toeyg4W-j};9dKKH zKlJIzVY6&9`5Y)6^1Fgkzof^K66aa+F9#{D@?K}Bk`lqzUimB~!51#)Hsb3qL+e|I zOK=JPMBc=THwr*&AY8z-H|!%aop4b^Z==eLRn7%hwfR%nOShFw?W;}=Z1L*_s&eX( zVr=fy#sQJSl{cYes#DPD$)#jp3eQo#|Ah9pGz>8G`QuyU>gsaM+WPXyMG(5O4cMLh zGjx@GDm|-gJ$R3d!*y*d5byChu19g1o|Rpyy)Gy%4(QXsB-U)C;I_xjJj#mk=+w@Z{Z$mm+v@AffW)L1>V3 z_rErHkCa9J2K9ZOU4K1{$iN@(rYz&#dt@qL#?YC#O;So3DiGrX4-4GLwc!HojCiQy zAx)nHj2+PN;=tY(+ru-=N5rr+jeTi1g7&O(4&JaTTKhrhWM=_$P%yRgp{B&$csuQa zl~Yi5RPYY1Wvcey8-KK=M3!UbRI4am`KM$n#uF5^>cozg)OS}p8CDw264u&8z44h* zgZSO7@gWgaku2O!RfJ<#ozqB|0mc)4CKXb5na~|1!Ui9DIDp3fq#@Dr-&Xml6h=!k|l&`#blWW&`d4Rlu3l@h&dN zLKeAXQ{OLO^;0X4I-ZR^Ur?`mdj~W%BiAHMfSmm&xaR9zaGk6DztbAO1Z?P(H$jTK zDZytpW8`m`JE#H??^-*X0;t}_6`q5;q;q8OMLWs79g0Wco-%}0c(&K$xuBWkwOJrL zwZ3$U5hi$GyN0G3tx%48)Rj<}%ZYVv(|c;3Bp6fgY&!cv;J0(eMIjKc$35$lum4n2 z^0~2&6@KiHn+WOr+w2TvL_Se*=MqDtpa$8MK@xfymbwlF`LvFYg$`mLBIoMDR{trk zbKLE4(V2n54Mi_%UwT5v^vkZjB1v(LtQ5ZO7&0+`P)}Zz&(fy%?0HyiEahc6iyxGY zX`{GMiAD$q8SlEB?=$0dAMqmk`A;#x<&9u9dRZH+`@SClu*dho&ugF|6Tu6 z1#;QXxrRmbTRh9wVbT#TC5e=cU=&hZY-w0lb;;|wt9?1^Dk8iZ{^SRb6{vll ziK8DUB{_P&#p_*tYV{6~%4hH>25+>tz;xk9_EF-kqL|M1^CK==d5fv?!%fv0Tp}5< zvlLOQeujYb7`l*5)eK+xqlmOwjc~JNTj-4;`67EGh;x0Zg%Phj16_KK9_Q*&erxnk z^PS%VN%~XkYLEM5YpJATKEFQe(O7yj(@P5r&9ce8)cs+@HVwbAziTz%51}yJVeZd> z<;iidJ}dU{3WjVuW6|+xe`*iL6}3h8_CF6dPv>4zA$#j5nvYl86X?b{;7nO?-p^?@FTi;@eHH)-dePTC_IvV3o*tJcG| z>G~F>0h^-wg$hsmtbS}!Pp=jQ-tkWIO%VCgOgAodWsBmgaD`Nl`Y~PHx}OiVtR#q| zK=L8PQ9b5^agAzA?=$)CO7H>gi&Y0i=+BqftbTZ=Cfy4p4Uvi=fEN8Mc z$%FT3(!S(Iq;=uQt0})9;#P^fXG{-mx=tRzLm$IJpcY1)@-xI^=PeJAy3u-1Y>jw!pl}t|r>#I**>h(7O+nLeehj%jA8o*bcV9gpNBZ z&~n|2gxhm_kUb?{k1xK(TYHcvn2FtI7+gQv?8YK{1?tTrCx$m3gmh`D(aeI`av7~vKCw{u*U|RN1D(YI zjd-%g!41eN4{|ob*4kdU5?0h2h^T?TPCRP+N@YLZf=QZxN!kQb`t?j6w1 zH1ZDjQM$hde6>uLJri2tGjiOZ3MxmJovuK_woLb$q$XYb%vP&;6|!lE$LE^7P`@$9 z+RWXR<`!F~Wh!yunb44s6sSXuV{4L1XPR3VsGC~8Jlm&Swfn~$@%`DT81$)r$i-Tx zMw>0pbRSMRj>K43F$*%!D!d-8)qk+R*KIOCrP}vOTX)FZZ(Artdxn-;SK6*F4QHWj z1r7OBYKC#@rbE6(A-Cnl zi?CN^mn2TB{Lga`9bRp-B`G?@>=h~fzbOvA``DlW^SMLGe{vH4k7n7~rCyR8*7XeW zrJeGf6IUH<+&_<*U!`A~>C@Bxp^lWeeh|=1iw8X{Ddr3!7AtYe~|T@n0mQ+#@6 z67)skx>Wl&X2gtzj}<@KP=Wx|Xm=^F!C~3Z5BFyJq4t`n#2oYVoL%h1+m>{uY(U?r zY#%Pf`_zwb+)a-KGqYl*T`ETQ*rKlj{8Nb@;E}>VeLm~9yoX<4CTBGD8kEL&dEt_;UCf3<(a_cY64&}^b z2i1%#=B)^ThgrX8r0Ixr5)n3-6?qZ zN^ezNcEjTxbo~+Dr3efuy_rgVc2@Cozbl%uZ;*I(W4euqU=Y5#Ji&U}WnpZXOy0RV z94h2d<4AYkMMzSo5_8p;x|9gQ9QY9iOB8O6;evw9 zf|%yE!k6i_wJRVR0V1*U!YYg5;mQ$&7F05_{PuQi(h13PRE3>NuGvkFF*yUOl_yA$ z<=;M2MpIya3Kxm9#X}bXvC#6rmlE12pUX4<*GR2|#vT>>^2=llqzB+qy{g3Yd(<_( zfM%388oAV5`^TFnZK>My9mM5GF|hN%J5R9{fd|RyJs{}@kPNxgVkmwFa;bkv`LdhW zKzSZV_e-j2Uw@e^{h^$92N}Rsy^P;9Q$=&|7a5|JSrx&jckPqhxcWK2@kZdSKsghu zm>$MlmRx6Uhg|A1zRd$L(IQEuuw%TER?JcyHQOQgoQKxrtyvSgmKhA`h*x(Mmf1Wc z<#sZQ^AAgIsOzp%;jTK+I0TFt?8TknHLMu=`ej ztlpqrKzQ`Y;beyrmiuR1t0D_7%cYKR!$st(3%#;R65JW}~e>LWz1*|zQH`Q?dq zchUl=A>y)aQE*a#Lv<}2D)WyiwBPukUNIan%+|KXpZ_vRh#20?WgIZ>QA_J7h+To)(t2)GvHmbNm7h0v01|F~%uIlVC3KGv|cNdQ3fL+i| z%RsVOQwn{Ahu+f~9M8d{WHhN*Zb>es=%_&Xmi+SoUbXl_j2E5B$d%trl-f-xWw{h%Y zk7&(C_t0=9#B7O|RVQ<$Z?Fv-%P};bs;mLN7FFp8EM3gYUlNnWM0ob>zqAV~q{5G!EKo zHjOWs44mmJ0jA*5K5tB;q;RgU)SVlrMM9Qn5ipC*c0dBIyyJ!nUCkk)aK^{*9L8+r zg%G)L;}xHxMfo(8kk`x^nJ#NHpQM}TT^dM1b^yPWK_i-76+VR z(b8Tu2aHDc)~r+A%x*6f@YCjo|8;&R1V!e%GlvE4lGJUE8d!K9ft|8B6UO#zo%0G5!EEw3RT94D+6C={Ki3bL!G$ zVl=&4$|c3{*7L&M<9DOI=%pOuRJ>*$)$>0vNwzPfP>TP z8HH1|I^URPRYeI1li4~_tVh1`%sb1|bD!DGzr(8#5a*UeS&JTO9~SB4#F*@KUfTIK zTKz!D;7!1yd_0PNH(2j*Bdjk&*^Ilvr}@PD64dS*l}uDSuR&bwJ>A8_OINJ#e3^cpiGllLUD{vfEXaB&wU6uTA6bjkwCl zK$!(l7W}XKd(Q#I0xj9=pZyHW9f+xDZ(lqg61}b1ApH zorze-^Jz!80!fKJeJ~?PbQkf!(}iiLNZ!?++cB7^^eZ!FH4>qx0!LX=_i{e7XL!-q z*YR2h&MJoN+n|3*cQSsWl^IVg=OlerBd*>#K3qub@S@-=prN$=hI4P%o;UzBBn$qYZJTXTr=Cb$GVr ze5~$_8b>f$Mb^IY;h&ql00g#f#r=-{%Jl0v<3Z?_ZzsZv9C63{bE;4Pjqkl_UuU5AIfoQdG?^hmY1Iq(wBD|v+MKwMfZfNRQi2DM zgl*BU7L)zmA*nRYVM36P7$M$Vv*H**(}mTB!mswz=^YG~YLY?>LaFoV$Bka3rs<9W zvQzl=WRasY#5p@SRk-IZV0Txm7+8?<$VtqgJw~oHobl*`ZO`c)=*eLl|LWxRPxOx% z5`m406)D3ojvExKXt)TxU-nb`7+;W!(!b0g!fR@p)R*9?83@t!`lbmbWc8LZv`u8z z;G$4RgDqTM;pztI>%CzgAC`uha*(JH*lNmntg(@s4;x6^!ifaKu-cSZe&wLInTe@Q zVlH}@ot&2EIZTMCx`A~9Rk^$p_}k3&{_$TCN~>wydUB?*NB~{ne{M}!Sv?fcmb=lA zN(zun+q6UV;=ll%8z|pl1fn6$HH%I5oDl4eI1%e9V1|z|2o9*KTq;4<06q9&58gPg zi+*JC2ufu8k-kgQ{n{V*w}%?@%Y5^(YeOCTgbLY4PDm&> ztD)1M?R;*U>22oMH+h$IDznP)4SUJAEdF07Ias*H`twq;@<&4puSQ*$YL~yRm`K=H zQ)pVdX4KZ=qu@Yu(_+J1sN{Q<)FyJ!#wP0SmE>ZURB|kxp~fAXH=J`%Gm;s&9d6s$ zMDPJZ@&0b`-#4A`9RtIH6XWx`g$t{NtJF@0iZm!$p6{lXQHN74+;A|Gf z>)-T0MrWqiiVkvHi>iN%m83uI9PWnYw+r$_69%-N;+WZRsz2hW6#vV(|DhQ&B1N%` zJNaY{E>do{Tb%Djso!!{6P7kHD4KoNCBYk``F}0;$-t%72qH^}7ZtU= z)5I=D6BP{;sODL%Wjaih@~f;5VsP;JvA6GH>i5_@;kAZh2Vwj8o4imohWio8bC~-C zvGJ2yYArTAJ&CiUH@p@QP7uPscw%$0VX$jDu;-cSr|G6R(C%0$Ewb!xe~P4+5tb)mC>-=8YpQcWdm6g%*0U- zc#RAE<|g6Q{4W~6c|57qP#c#Z-FsE#$7fU>JoVW0Y}B7dKEu#N(mN7L$liBx?nRjm zG{mLU3%0FJOT5$gRm<&An$pG|uIxn;E@D^I9?T>5o#70u2U-pm0gWmU$STKsO>0^| zs=~d_EDRAjo~I(0cto?5I(0lN+uu$y3^c;rkYWs;UmHNQ*(>Jh3b4FJlOi5!RE}=wKpYw!b!_z z9~?Qem^YA9Jh4T9UF=}JWz?9Fv{9qRuc}#fnX_P~p-vbw)!QH(8k>#+>{l*_A>dTN zM!2EsJdqSHc$F1N<;gFPB$%Aa<*~`EgJ>VgCSVp+hglu}4c0|X^S^XQl|4d|niY(v z?v2s;OP3pt!YhQ;F8g;f#<^H75lmbsN5~IEkR{Fnj)YY0PmBP`jb-G_k`P#8pn+w` z5W39UUybTqz@j?uDXKraH1DLX@R#04J?>kbOK&3jHTnk1_dg5;@&fC|I`&;#J9@r> z$BZw@Jkc63f$f`or97MlL~3NhmLM%W=rMA>=`XD4wv)|dH^5RRC#zx z$`cYo6|~Mg)#Fo}Zc(Rm$(a=p2r;OPriXqFe*yV|IB zD7XIXJ*-32Ke3;l3AJ=9qsVOH*$?z?2F;hUho+oqZXwk~-(8hSZh1V47jc47MhzwY z5IY8gXE;gkWWAPhf*EZcR>M?tDq}X#aVsCj?iIRVPr;nSNwp&~T~07Zz!UIo&)<2B zKmVYZh}rDDBc_?Y#AmDU&8Pr0jGt5F&g%ql>UcXLZnH|BY50*Pt`L_QJ>*qAl4K<9 zcF19bt0ZxqbrNg`;hRJo)=Bg!=zj72ZCb5Sur7E>+9GO~l)g=&?X$4MP$kUjyvJ%o zDN%kYY3MNOcb2!YprK^#0e_nWsZe?7%47ObNqMQA@>iD=C)LWj^3h?!(m~i*ZjH2? z?U#+2ca~d&Y_fHI)vIC$TUK2vxZ0B~M+%8?Hz{ZbHG+d>JB?XyNw8Jdg7($OT0&pI=^Wydpr_A!Iw}JQ=^$XSGO3124tPu} zZcji+Ez4UIRzBUcsZ?-GpU&6x8RVzdYSpr&WaS^})F|IPJNSt@L{*j(>bzZS>+zI& zDr;$qDS~jW=l5ko$zVB+2>dXL z03Fs0h3SckZJ_%-O*s-^-c1!uZf)m}eW8q&;W|H)Ya`CtTnx2~YMSESpF|lY)&tiR z-Ksq9UOsfr0JWXBb7)J=Af_ZZ9ka|q7!shwAfGzk)I`(z-VSc4^L(sXn4z9TU|+@^ z?C(bFtB{!+UCgjnHXm+{q}C;h?|=rjuucngeY?UK)e1;T@?e)!NdyXp?zI)=bT{m2 zX^3jv_%}NbzC3ZnJW4$;cdDVqK~mfF_+ChL3+Mixl7V)abnGNNA&o>2Dqem(w;jb6 zmLP_$QnNNZ&KjvX1PM-B%#*xv8rt$MiBQRq8y-&D@|b>3_lxW<;RoN{s{zkO+ZCW8 zVfH?B(@{=;i=)j^y_!2Zj7Ot|x199deoMUbwy(%*^RLOBoL{4L_EzTE8f#vZMX!+=Z*Jcz)Bt%v6lTmISKuJBFR{E{_s!nSYi~VfUf13TA zsK}y9Mm>jmjgvduHfivzecwd%|EzdNUM~oQhlf+{5?!P+-eD zJixYw@~7s=6hngH&@H?0BIR&_P*bv6c;)X*Ze0Y7NGg?G5sK};m#jI<7JEQgWK4~& zaHM)6rz5Ei^Ax^&)V*$HE>uBY_onZu8_?MoxID_q&4eXJD8nR$ox`WDSUZ!l_5;z5n~0R41eg* z2lTy$_GeX-yS>j2!=!lf4{`T4GinDq*|2nhmv(rMTOf#_32r$q)iRug7p$1F7vg=sE= zois=h7l9PC$ACkHH z@6%4Fc*0t^O}f+#M-`fTb->XN@utzM;~bSO?wu{z8#9Bqj1D$nsxI9AsA+v(%5$hv zc;z0q?ZMNJ3bFCgh^IodM`%Ui!L`f-6;t?-0&_H%f2E1#YK6)++)J-Kyrgo#v;R@i{Lo=8y1IEYZ;Ea<4O?74O?L;3l zZ4c2sGzm&uc-q6$pnm$u4EKR@yf?UyZN|1~@xn*@*+LJx> zIbAeCBQQ0q2kV_`d@+6)nY;LmpRHuDgAfyVea1P^AzNODzw?nmVmHCl+H?d3hQZrm zalKujB|Oq=i@>Be;k4pome}wvm>pa!JU%FsEqp#~rOUMM<{GYl1*6a8E96NH_N+F9 zR}#9yXgh{ESG*D1$3QBR5o`6=;+*Yc#mBwlq1y?GH9m^Dy_pHh)uqE6OpuI0?_yws zjLk&i(ZW4mmD>JrJXTVY+VFnmq3>@YAV_+UvRS`|j}oy&G|=Jc-nATS0q~?cZ_=zV z$)+8{y?7XoktyBFQnS&(rv}^HT9G_1+8TvmULsQ-xHjn)#o|qFOSVK) zRH}GQ`g#9t z@Rt+ZX0eCaP0xODP`6q7$*RzAj^+%n@VD%WH&TLBa8bGExRA@sfgsTCmaH1c4%ytb zi5YLiJ6Y&{^g}|Z;z;M3Y~_G5gY_Pnj2!J)f&C-Gs=&3c$pp(`X!|HDUSkx=FX0^A z{jEHojl9;}7?q~T)kIT4NjADp^^xE0AuY$(+3|AniHIT%X~rlRllX)$nA%Nn3kINI zyM0_GH+L3|PIdWP2a6p2p98#KCvjLsK$>Gf{!A^1QK*?B5@$L)zzR)5qPR*dccsKP zy;)4+2s??FcSI^ib*wpqG`%AEm((u?(4vBx1w*lGT19+>jsM)23&&9Ng0H58K`Bh5 z&#-^UR-Xs|E*4tj=?!GJGELvX zQ32;ujoTRLd9OsraB3nl=zA#crmyFkFnbOI9BavY2Jl z=*Li-rxQlel-b~Ru=4yi(8K~-N<8uQl1_xw?~1@$*PbF<2ciipU?UzEkQCB=g(Fwq z0$UEP`CC$19N+R-S0@!_K!VLkD;XJRYu{N;5tNQ#{d=y2b0(N?_e2-Gp9OKdf*z~f z*jBGEOMdzZ+gh0Cz{|xpLCTm}%Z0XO80u@=oKH#w*&K^MWOcR%RoFVu*P(siZ#aM5 zp8_ZEr`)(zuu#J&ac(*={#5Uij@Yx7H!R6|%x&gRO_YG2v-ixmTL=J#~dGu5d2 zOOhUS84DwbIwn$J^FF4AC||Dkq>kOLANN+HR#D+bXxdejlzw3V=aw$Tk^chOx;|Gp zA6*X%YM_I_x5$9RT1QM8y48Tcq)p6~pWvO<2$#+ts$;qvDGN&ejST_r%@sl~zpeBy z6j7zluin#$+CQrzV-L&iBscW5N6i&5{TQypw#H7%Nw8}i*%s)`aQ5Q|D_wx2 z9MOWsJHVz;osY9tistcNST`5-zq|f1Y3N_1iQEGk>ehwvrr zxXy)+jt^3822u==BEmQZY(<=XLCrUYO*Tb&fl_k6+15y4jb`zrHQOL?3RqX&MFiVo zw)&70VwuBBQy@BMaX8k2?tJI2{q5Oyg~^kj__}(t4lBJ2-H_up`T3>l+0?Pd9XE=@ zF8a{=w53FpH$xYVcF=6!PkFSl9rq*d>>?U29+%pRPB{olB(zV=%`XqkYfb=i#vapSNSEOt!|R4DgjY2OyLMJ^C7Mp4}( zhE=5Ztb^`%iAcQ4)rK2gRWihuI-Nl-n>pFkEt?@x^URGp?Cw*~3+~CwhsYbEMwx1_ zDba6;m+R)XR=^E7IiVd)KP{H za*>9-JN>Xv`X3i|%neJTbXiaPPNgevR=BKFJs*q`mKvZCcKR!hiNx8Zx|K}}+C*O4 z`HtsDDq~Erev@etx2ocdYC}8-+@ufacC@y-?NuXg!f8dmx5$b*?EpMgL zRbBYkFnxiyq}Lb=ERx4U6f&qCU!0ZreU)=B)dxBU{a=i^A5|*j^28zQKcK51c-RRN zr%74(PgE|jUWVO~505tWlDs12SL+j=j@=Zi%Li#b%?;_Q)nD#|e8&P!lc^Q-!gfSU z8Q#9hFo|f$4q2?jLnwv?pt5#wCWP78z2;`9H;^VNH<07%Pf1dwmXAWJP}5)hzes4* z@*H(82Mh)eiu3OtNN;}G>N`oLix@Yeg~Cf07`hf$D-F!rUpXamk)2uRn|XfvD?`C3 zlz5fj|=Ab zZG&v1(2+0*oM2TZrcl=W zA--WkcrOBBqzLoL(3|EEvoRmMro&fsB{@R%gb`!th}if3(Znh#>slspjqLcypQ!}< zP^Wu&{S`V@G3Rqhj`pPH7nY692dcbQt&3>qA>3a+P}^ALMa5(lLv@=_ zor?-H)eAjzUf(}sGXG4OIos-(V`{>@tP1ghrudz|>IScLnW=vW*a{Ct(K?;xHH+$n zdUFcf5`#EnwI{}ef)h3EYkH=9kBJFe$M&hR<~?=(o?YGiHbbGZ*yb+14|u;N-z zXCRSirkJ5 z1c<~KSM!=i$7sfdk*4?EPOq>EL4IL&%UzQpEO*I*vX+G%OX8szr>hVUHB2Wbl-895>n5|Wp{Kbf* zI9`_aCAUr9pKx}nzJcQH>}o@bus?MRNR83%^g7pUm)omZ zBy2??m!{bCFQq$SYmFqsV-Ya<1wHvYE=+0Ea{WXaZ%8j|;P*O={7Q(N(TEXC%2?qt zYHS<&kZ$8l%)m1sRya{~Cg3FvX|8+QzmImE57cArZ7OXnO@Npo$wfU9`aL$*S9ps5 zWq?0A*Uez~_V8&y*ww14OlQ|a=2wQ6S9MQv)WvcrJlHu8cW_D~tcg?sj_K#GupaTm zI*Jo+QGMU22gK{tG4DA-UJ8dlVl2#iTs1ztC(OI^BtaG03t^Iip z0aNlCMw51AcaX6{C&8=p`VgyW#l4VpR#IEa#&Ldn{?x%grw1xjnX*gYaGs{8B`-mf z*5)~fo;MD)>^rkdbWQIZ|6QK?gg+UJaSyP1<%9VEw_Os&Bw;p_T-6Q+0pEJEEZ%6sSu;uP;pw%}?-N>Sy61ePriN~zH!?yQ&3=U=CXSlPqJh=H6i|oc z3Xzx9JH~-)IEM(@eOg+9r(Po#iG*SSR)S5?4n@2Vw1n>8jIL!H=lQs{qJLSJ{O!W+JRGo;+3DD%csON(jTAyPyHo3GGn8;GT+2m-sE4Qu3hjV z8XHX>cj~9QV%ysC2A?0cm~K7@`}}<9MZ;gOaTAhe zHE6FAjLg2)12M!m#J-AdrOssgk!ENI(H+|?mY1?J!ozEF)SzesSod?A#coRrx0%kN z@h2`_=&tF{C(4gEILc1925cXKRX)Ye}zHv*AxkbjLs9;*)bH;4G*@ zjz@*>m3#L6J)1b8FDS3hO2dnuYtW_V~?z)-N)$tm!sx!U?~W zIs-2L;XtWl*#Yy;*#>%dp|cu?Mz%04aPVN~uS?PO%CP?Z(~s7;d*%#iwi_vMdM48< zl5h-K8~m)dAQBI!|EY*`53J~ZmHRMSK1YbeNAf7$t|C*-JGN>S-P_w>wl6maN*0EC zB_?{iV~~8M{5=9f0p9W;oS}KybUoaXuA;2rQ>TCJr{4ay0T{VQa`Ov97jN$=LP9p# zP^b1=dyKy4Tup_}&@Ngtx>6s#GOEZ*a(}H0&<$ z@583$=NEtOrF3VT1{a5(4*L$hczKjJlIx(6fzNqP@{lIiX}u@AWPy zE^19|)5Ib2;PynVAhLbcbN??Y9=+SAvw{l}N#W-$bK08?|1$u@WgJJa@E~~qS$pEm zR#>al?uyVST{x(;NI;U^(?pmgfOUb2^c)rDV%tqQF7O9Km) z=YxqZSdY(*H?6x1AL9eORf`;6@><6dYtpZ_(g@3+P0c5I_RBA>kGBiJka13H(H4aUAz3%aLw|BF7vZA4#ZH{Cp zBfZ+Y&-Nu=GuKp_vl%;5Gq*n);gYdk75XOR!~t4^TWb#<**at*T#HTCV~}AzDwVez z3eTq;_sC3Cg<%@lx%7no*7EH9Xgr7c$M#RP-{+Q-l>C-WP8(orX4^nV&;Hql2La@s zTVBIMCO}=^(q>*^NgS=OKvA^@su!)y(~qC-f;tpgBco=fUq=;GJ+>hib*IcO7gv;9 zjbzq$6U`jF9JS7#$Z6}SNl@t?e_5|t>_7ZZd7HkQ$jP*a=%C+In1;obxq1knbMoCC ziozo#^E~w0RlawA=;7`7KN^2IxqMU}lrZ!TAtiz%{+sSiv0rvRtZ!V4PS2@Y^fNa% zFXHuwWNar81HXu7c*ajI^on17;PbNlS<)(S-&%DP`&$2EYw?)E)j*h0?E=GBbo77v z-hf)vx6pz#ply3o_Wyw& zCJ@jCP@!TQmgP&>cRfs?IBwDplE>+aSnh|5aOKv3NY{3xg?^!pS4vid@}Pg78^ zM4&4ezkwbcp6O9k{|#(W{@Cl^zx{$kHYKdC7J(7w>B`Yf5`?wSB_+(;V^-hwJT>m@ zB!{*rA-)}VQs6>#@c0em2z_QV>A z`?E?>LgVjEHF>`7%HFVbcb|*L&F77R-(QF%$K-_9kIu<{KjL)vJaVv-MLE8)ZS7sd zUEn7fJ{P@d6@E@adiGNna;<*Cw&UAIauZhSRAh(<#5gxlqF8%3cvPAWbD|uVaI;FN zez)pvx!=z^V?BYW^ctyJ*U#r&FqD+|%2Y?Bo1iw|%C)j;i{t+|Zi>~l5lKpH8J4_T zD+4ZmAkPT(hVfA;I1*as1wCOT`@K&}C+jQ_^<2+WOW}w07i0@az$jb!nSn%~^Mq*4 zR8ypP-t72nJXj8WJu&D)IZLftAKLh;gSF6EqA%_#IJD@d=$JC+tUZJzV^6B&B~!oO zME4$Ut^E?B@>*c{o=GDccU>T`0Pp<1y|W*cZbMZel}kv#WdC+>OF}r>dX`^_znP@W z)dX8U5b^K0soAJ>ou-8PdKbay*fZabed)-f?8xP+ARVWBFGrV1N%YyBQRM6A ze|iL)AHraf@079^&}K3zHZclF1&P@s;$dgT;jL|F(?c=6MW9c=-OpuJ6xwI=$BQ5mqe+@{E%;yb**UqOu&oo6a1Cn4m8YDfQMHqt6X{7i-D zArW=T3!!@HmA&-vZaeL7KXB;?JSr)fT1ANt$~Q1)hNh%b9X4N!bMwwnh9&%3)K+P@ zgp9&22ySlf|5P(qEqI_7*#r&btMp&`H-siI5!VRY%;-woegvMb_;US+rHR9&OI;4a z@s&?zKK;~Aes)gYYEvFC@A`VZyDLYw+fI=zl#)`WMo2`NP)u3~ZG5)-5#_&5)BUH3 zowAJmEwmZK^VjG zsKERUWCku@wcOxRlyUt+Udm2$gQdHvv5CD!`zV&z_`lfOL` zcXRU8O+T)}Wj3BN1O4*jIGRSS&*YGWOp2rgVH23G_cNq23uQK$bb&K8FmtNuXo=PCGTiih6TI@hc@l6c?8bhnmCD1zC320-L zrL+Wp;{xC?@b&YuBz~K3FWgvPMMEupI|1enFjgA;}H@JzQn zYD=s1NTzmxd-jxzOiI!b&JgqVcw=;PH%xV*={Tt6@e}HI z7~d+hF0$WmDF(}3ok1jp&!E*ods+gV*N-z=9`XQn21+~dFi&@mU1KR% zMdX*?w`$k`R@&V;=5oTzV3~9%LZszL46hxi^h!+yuhh%CCLgAYZ)8WRJuuh!?@9@J?>mz+fWn#ADVeU{|Ywm)QLuQB_+>l7HBLo%=RCpvI0Fde~evS(W zBX1tyO+J~Bk~W?P-8Gd!sBvL|fn9i&wC4Lgnrp^a+;F-Dd3PJaZB2Lm+Rg>t{)j*7 zu7R_>Q4)rO7pA@?@;zyG+(di?=<I`6#9%8_reFL_zku{v9`O5J2=90|4Tdmedj9mv7rsq4&To_sCM`N{cQ@04RxpLs8&ddITlqpWjioF#fnI=s!jY@~^?q$&4jEl8^w={B06*sQ2u~_S_WJOQMX7-F=1K0uu6en-kSy8cU7GKmzwJ9Vr^RDJ)0iz1xZxVN1=fxMOoz;F|%#4} z8yZEh8x>o@v_!xVmTv8q7FldT5Q5MxBnSya2zv-=t|MG!69FLvh%^Esga}~^As`~M zC7=Wn5&|fJ#IS@Vgb=b#XqS2QYO3bFnW=eIuliI{m8z4of9F5{`TleMLn{`GswoMI zB(G4wCHNi_tOaSeiL+#BBZ&q0e4EaCkHSpnwQTvf@79|CO8mR|vXg25pWH9UhejW34tEU(rADf| zE*K(QD@aPL{FjQ88F<~{Xr<>4{IU3#iI&3F9?4~ket)_KQ@RgofU4dH^)4K4s4GdS zEdwPrfN|73{N4*3gm?&V(pJ*t)32JA;#(q2nV@^j%B+XwL^IU{1E&^|m2o8d%1La8 zF_fJK4bUH8F?sd{fj3i!TTc?SM>BvOtlYD~Q+?x3^U|2j%EWa(!WP_I|AgzW;8N4r z*EiRRT=>YTwHOD7*z4$tspKtLvXCWn*Lm7eFT7o;*j=;Lduxz@XP^9xEiCi^mqtS^ z1{%kyhLoTBU_G}Jmn&l>+?C{AyNY}9CP_tU7}u(FHL#m$m6o%&3K2c?ynHi3bruw{ za^{!&tDPz$lCF%6{n#TK zphP7c-QGo-R zF0%Kk0iQ0iInjaZoJJAdU4v`ee^)&1&Rbnpw}a!sD%V9E4TekXG0KZugsXmdOT`Qw_sPCPI@#?cajfiHV#%&n@xsX(u3^} zfFfFvU>(O1tAfrsGaO+c5%bd>nh3ij?lBA|)xm;VhvCC;B9(vTEkL#=pi!iR)<7 z*b!Z7n!N?DFV-u10sTMCAb4gkttdVZ%a03fN;A$|Ij{sx9fg3=Pk zUzKEU*Zynz^%bFFft_X|S+>!@APTnpxOzGLF?N=56iC!#!3j) zu28w5H+@pE`xlSG^?xoyhrE63BFqe1FvfEd;;__Qhi=%V3GI8dDgdQXdfwwWi4F78 zDo;AU((KgK8nY~em3kAs6<0>HkW}bK}oF!2{&6>S`OScxt!KX<%h56 zN3rp*7FU*c&n2HSIvU>G6l2$n{!C-nw9pqQ+aK_6HU%V5!{s{(6C1++3W94AqQYNu{3<`zA<=zb3JXzLYJwU zFApJ<9@njwm;o3tE&pj!=Yx3CI$vDe2>5-()QA64uj78C|4$uRjM;Ro=B&8(u&a|h zv?VEiq_#A$@qsNU!8EU!oigD&I3^u$obO)O;&dl>cmi_}57&Apoy(>qu)RV(zOu2p zO!^kTwtIK^*J+0Pi@7Do9Gp)B8q!t+#pa0eD$SY6ed0%|AI@L!hTk_k z0<;3*IE^z;UqlKjolwvq%K=aU*}%P$%7u>aDaVA^<;acz<2$a@McAi}O505aZbr?n zjT;P)`z@@DFs>17nb^lmY*BVK%Vb7ed@aCMfqLAL&@|_3%%kBc(&^{cO*o&^GdjpLJ(lU$3- zX%y*fJ|&wee|>W=b?7n14FVyFH3`S_oLgICTqk$wJoSjv_EN5^=btxJ+S%)IyB-}c zKdLw;(QY4pRc&d8ID&-u_^eJNzkh+d9$I%wYqr4xM`!{~Gj<|26tu z8s|gW2Mc}=xj%j&qmE{8d5G8w7r*-HJ)`pA`wvc=zPc3hqNKJ*>42?4Z3Z^)yl>u7z*tMe6dZZq;xZ>YO}p+bE^rzdPBM@2}yI!f~R{K zboxj*8jXfGFWWut@biN}svZBN^ZNYb@3abXqgEl-{yXpJPCM=Q_wtq_T>{?QUjCDn zeOK-O#@7Eo&v2ib@2C!}PBM9YQqS1#(S)&G+>@Ah-St#`N_!>KOuLYOFI$=-O&B{Q zwtS2#X#XPaacKJILGO4a|Dyjq41RU2$dJ|$iBL?Ly5-RBt$Uzes`vcg(`q=%LLw8x z5Z5gA^x5?ka;~+}kEou`UAy)OuVZ5iv0Y5a*6w91y#BnoL|&Jj&MRT`vyvNPq|gVN zi?-m_;ZasW#;o(Pw4FGr4X&!+*?PY(6QxWX)QhdGYQL5L%%mn9fOXU5?ucAj zy|otRI@>P`^hvlaPyN`qJaSa*p=NzBYPvW}GI#?5BdJUsT~4qG7&liMNW;1vbz-u= zccOgrnF{>_>1%LK_7ExP7>2Sel!%Cc*?{g#FVqVBbm{~34L}AXWa;$1z+kta2a>~P zqDkLDx|9$Z9s1>dd^dml_IN%Y1!_~h=WI!Z8CA;V08<~3+J6%K%HMp9{*1V^npHQu zR)jV)(B(F<(QX$4r)KbVtRl_ZYn%J#cgi|(^~%hBOb+;NaqZjP*Y1Fl0jgYBFk+@XjLhdX#J(Z$lRKE!TzKCEDH{+>7j3HY6`P zrKS-X0`ZJ5rceD3ZQj1a=vBYLVsw-r9c+T}R9=kIpGO4E3G2)e*rz*jB+oloJZd51 z0_Ea_y05F-^c_U}UE#Qr+Cxq|OhDDr!_N?b0Xwn|<%vYs<`riBtANKFrC%7k1)PnD zg<7K&MU#pM*O0_ykG^*x->@ND5h(J9!i(;hPB(xt3_gx03@CT{8L_OO*gD)Su1=YV zveUb7eaET$%aA#jq2;Qg1Gc$>P$OOl^oU~?uQv#K7~g$7?g7!PCjd;yT+#IBRjn7r zEzx#4+U+lNvTLhYAp2LA^OOQS&z~DeW6Zi_WX=d^&R*7cdUop$bFJ>?kcyoHAS&c; z*tu1CUe%%kymoa1HOTJxnx*ZY&9_%z1|>=K;ByXuO!$gwOG!wCFWX%rd9s6!@r}6y56!W*~n6=6tC#!;pL4n^fdlhiziqRfI$b#PLgm# z8Cd@Tdh*TjDU*z1QO%z@<>?rOED;-cWG93usuB-nXP&ZP1g$AZt6AVt!1O2GvX`+_ z{sRl=&|#{Q%%H&1D;nyO<$CYjs7krn0|Bp-H+a=~=~;=zOEI;|Hqv`RdVI-;{HXn@ zA-Q{piDRQ!eyUyT4oE{z(tKW@i>nivSD0eVGG}~B6Ho%*cB)UGm$0r)C5C`NWBAEQ z^{xZ^orSC4R|sJ!-HI`^v&}7$id^g-rH}+h z`}XyJXK(`Zcd1>$7ehB2&Dz``c%NDxqtPTBmIUn9dp-|R4R9*vac!$vT50FP7R5@` z^F2&9#E7IW-6d4y?+8Q!^NQiX+BHbZi8dT_J53b&wY7&KquCV5 zxqhG*pRZM@77N%}e1YE)m>61H3OFk*h7?wX2b%7m5U#!{XLbwC+Z}i4mA6*i!cW11 zV5Y>INP()^J@`qhqtgyl)FU%IYA=prlb_PQ$)>0e^7(r84GjhN_b$!e+&Qj2F?Xt{ z-6dGrc}c&?IEgfB?Y|(5vMziaENagI>UG$p+LG-+#T1V7K3!erL`xRCoA6%IA=Ue4 z`M8X~z8K?neX}K{!D!AM3A40K0OzqxMN5g!F<0@7jpvta{U2=a2Xg2m&poY&3zBmx z>*0d26v0}FJ-#F*C@|6zI0`f~5X0Io@z#q5DW>3n#fm6`L(Vp~#YAd3Z&M&iRLf2I zjvc-1sSFs521<2nE4GO((a@~(ZqIRguXe@r-JP3Tq*goQBTe|yZ&ln0sRa{bk^Q!(^$Uq9~2k2nnM}eL9v3DVqsw`Dzt^vLe5?3 zb7~qn?Wx_!X~q?sq1bPq)csT(8#m5-9#=;gMK+^E6VgQ%p4oL3^s?bzx${b+`rHRJ zcF>wK8-l;SfOdgxwqS}*LJ&8q##U<${RufoA@&E;M#sBAZS2OR{bpdiexU^8rSP(bvm3+Q z$0h3S?vFK9g5g7Nx`>>D!hSzuqg__;zi@~Y7uT?d(&abW#Yk9K&vAi9ekIxO?i&k~ z3S4 zQjSY^1ysn#!19enGALsD`6R!W69a(r*@EHm9LP^%i<#rbW!3SSGSO}s|e>TDU#2a>(gG7z*0~@p{yCQZ+EyFxL12(+yq~o@r3_0Tx8=<9F*yoO5i#MAw-<%ztJ>HC3 zWIYpq(|-CsJl5;Z*;j>KG_ZRx#&7BA#YJBd*`^i>^RDzGnMke;*xOh6yKPkMO8|az z5m7ZZG|vvMZ<2hrA;tMoPeN3z-Zx!Cyy22PyLVOC{Qm`z{Uob>A-WAq_D8+V9$ z6!%?H*~j5~6~B5Wvym>~ZfTt2ko4-9R89vLWkI&+iF^|jtdgtH-IW0U!G)PP@gyw= zj85mIOs>V+l$WY5a=pdSgqRaK{8$t=36!V1ml7{ccwunIbi_J0jigsjy#EA`TK+jY zVS+<3Ie5hT4aUb=>0z^;X#V0O!% zttp-Ljd{m2`9lalzZMKrAlwauHoWmnKzyq~=U zODY@l)XYn9h|+R1``t32eVQakfT!nW`I9l^TlpZIR z9=1;{1Y%=Pl`-+4vGJTHVM#*Emlg*se2Uxi<&2Ud>YDE!$HhxIL(6xZI7CDk0w(zj z|6AEbRqGSo;Yo0=dOgEa-+=5{^|1a)5u;+z$RXYVNwdz)EY^J_|9OW3O!mhOJ$rVh zPJD?4(GxCovxirH{z{M4I*hG%Y)t7jE-~xZ*J{z@ryv`X_!yLxWwQcr~Mq6=2`I=8e`Johy2MvwHoPCH`Z*({YVKO8HuIfp@1(mj(>fn0m1I$@DY=Xn>ubAq z2fe+4Y>g?hrPlfN(MPVlSh`$aA8~MTyKwadu6+~H3UJDuAT_QeDrT>H?J4e~8tB$b z9`-egvJ+KIPwPE|p&sN~n7j9T215zI0_mL@lctY8gJU>*bPH`!H*Op?%i8l$a-K|U z*ZC=CiUpMN^9?B-6wJj0F!Pf6RiXcmixr#pV~ZM4yMM>~qcIDqz<(#3M{l%O#Z=G_ypT>3 zWbnU@+j&>#|DWiR|B%l5qscn|WlHdmKK!E(-(leYib?(hHh;k857_AZAJ|;}Cuhn% zBGKZbVaObh$A7d9`TTo}sc3$FKx^MQ_JLf_eWQIHpu3|_qsNB-LZ~Y+``uP{{s*`3 KYtQ`r_kRU7d~T}% literal 0 HcmV?d00001 diff --git a/ballerina/resources/start recording - side.png b/ballerina/resources/start recording - side.png new file mode 100644 index 0000000000000000000000000000000000000000..0efa57e3ade782792f31d76b9710070b69e8247c GIT binary patch literal 57883 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 V!sKA-u==KFzIFem`s+(S{%?Q(O=185 literal 0 HcmV?d00001 diff --git a/examples/student_application_form_filling/.devcontainer.json b/examples/student_application_form_filling/.devcontainer.json new file mode 100644 index 0000000..d0eae35 --- /dev/null +++ b/examples/student_application_form_filling/.devcontainer.json @@ -0,0 +1,8 @@ +{ + "image": "ballerina/ballerina-devcontainer:2201.10.2", + "customizations": { + "vscode": { + "extensions": ["WSO2.ballerina"] + } + } +} diff --git a/examples/student_application_form_filling/.gitignore b/examples/student_application_form_filling/.gitignore new file mode 100644 index 0000000..2d54267 --- /dev/null +++ b/examples/student_application_form_filling/.gitignore @@ -0,0 +1,11 @@ +# Ballerina generates this directory during the compilation of a package. +# It contains compiler-generated artifacts and the final executable if this is an application package. +target/ + +# Ballerina maintains the compiler-generated source code here. +# Remove this if you want to commit generated sources. +generated/ + +# Contains configuration values used during development time. +# See https://ballerina.io/learn/provide-values-to-configurable-variables/ for more details. +Config.toml diff --git a/examples/student_application_form_filling/Ballerina.toml b/examples/student_application_form_filling/Ballerina.toml new file mode 100644 index 0000000..b152654 --- /dev/null +++ b/examples/student_application_form_filling/Ballerina.toml @@ -0,0 +1,14 @@ +[package] +org = "xlibb" +name = "student_application_form_filling" +version = "0.1.0" +distribution = "2201.10.2" + +[build-options] +observabilityIncluded = true + +[[dependency]] +org = "dharshi" +name = "selenium" +version = "0.1.0" +repository = "local" \ No newline at end of file diff --git a/examples/student_application_form_filling/Dependencies.toml b/examples/student_application_form_filling/Dependencies.toml new file mode 100644 index 0000000..4c85216 --- /dev/null +++ b/examples/student_application_form_filling/Dependencies.toml @@ -0,0 +1,126 @@ +# AUTO-GENERATED FILE. DO NOT MODIFY. + +# This file is auto-generated by Ballerina for managing dependency versions. +# It should not be modified by hand. + +[ballerina] +dependencies-toml-version = "2" +distribution-version = "2201.10.2" + +[[package]] +org = "ballerina" +name = "io" +version = "1.6.1" +dependencies = [ + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "lang.value"} +] +modules = [ + {org = "ballerina", packageName = "io", moduleName = "io"} +] + +[[package]] +org = "ballerina" +name = "jballerina.java" +version = "0.0.0" + +[[package]] +org = "ballerina" +name = "jballerina.java.arrays" +version = "1.4.0" +dependencies = [ + {org = "ballerina", name = "jballerina.java"} +] + +[[package]] +org = "ballerina" +name = "lang.runtime" +version = "0.0.0" +dependencies = [ + {org = "ballerina", name = "jballerina.java"} +] +modules = [ + {org = "ballerina", packageName = "lang.runtime", moduleName = "lang.runtime"} +] + +[[package]] +org = "ballerina" +name = "lang.value" +version = "0.0.0" +dependencies = [ + {org = "ballerina", name = "jballerina.java"} +] + +[[package]] +org = "ballerina" +name = "observe" +version = "1.3.0" +dependencies = [ + {org = "ballerina", name = "jballerina.java"} +] + +[[package]] +org = "ballerinai" +name = "observe" +version = "0.0.0" +dependencies = [ + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "observe"} +] +modules = [ + {org = "ballerinai", packageName = "observe", moduleName = "observe"} +] + +[[package]] +org = "dharshi" +name = "selenium" +version = "0.1.0" +dependencies = [ + {org = "ballerina", name = "io"}, + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "jballerina.java.arrays"}, + {org = "ballerinai", name = "observe"} +] +modules = [ + {org = "dharshi", packageName = "selenium", moduleName = "selenium"}, + {org = "dharshi", packageName = "selenium", moduleName = "selenium.java.io"}, + {org = "dharshi", packageName = "selenium", moduleName = "selenium.java.lang"}, + {org = "dharshi", packageName = "selenium", moduleName = "selenium.java.net"}, + {org = "dharshi", packageName = "selenium", moduleName = "selenium.java.nio.file"}, + {org = "dharshi", packageName = "selenium", moduleName = "selenium.java.util"}, + {org = "dharshi", packageName = "selenium", moduleName = "selenium.java.util.function"}, + {org = "dharshi", packageName = "selenium", moduleName = "selenium.java.util.logging"}, + {org = "dharshi", packageName = "selenium", moduleName = "selenium.org.openqa.selenium"}, + {org = "dharshi", packageName = "selenium", moduleName = "selenium.org.openqa.selenium.bidi"}, + {org = "dharshi", packageName = "selenium", moduleName = "selenium.org.openqa.selenium.chrome"}, + {org = "dharshi", packageName = "selenium", moduleName = "selenium.org.openqa.selenium.chromium"}, + {org = "dharshi", packageName = "selenium", moduleName = "selenium.org.openqa.selenium.devtools"}, + {org = "dharshi", packageName = "selenium", moduleName = "selenium.org.openqa.selenium.edge"}, + {org = "dharshi", packageName = "selenium", moduleName = "selenium.org.openqa.selenium.federatedcredentialmanagement"}, + {org = "dharshi", packageName = "selenium", moduleName = "selenium.org.openqa.selenium.firefox"}, + {org = "dharshi", packageName = "selenium", moduleName = "selenium.org.openqa.selenium.html5"}, + {org = "dharshi", packageName = "selenium", moduleName = "selenium.org.openqa.selenium.logging"}, + {org = "dharshi", packageName = "selenium", moduleName = "selenium.org.openqa.selenium.mobile"}, + {org = "dharshi", packageName = "selenium", moduleName = "selenium.org.openqa.selenium.print"}, + {org = "dharshi", packageName = "selenium", moduleName = "selenium.org.openqa.selenium.remote"}, + {org = "dharshi", packageName = "selenium", moduleName = "selenium.org.openqa.selenium.remote.http"}, + {org = "dharshi", packageName = "selenium", moduleName = "selenium.org.openqa.selenium.remote.service"}, + {org = "dharshi", packageName = "selenium", moduleName = "selenium.org.openqa.selenium.safari"}, + {org = "dharshi", packageName = "selenium", moduleName = "selenium.org.openqa.selenium.virtualauthenticator"} +] + +[[package]] +org = "xlibb" +name = "student_application_form_filling" +version = "0.1.0" +dependencies = [ + {org = "ballerina", name = "io"}, + {org = "ballerina", name = "lang.runtime"}, + {org = "ballerinai", name = "observe"}, + {org = "dharshi", name = "selenium"} +] +modules = [ + {org = "xlibb", packageName = "student_application_form_filling", moduleName = "student_application_form_filling"}, + {org = "xlibb", packageName = "student_application_form_filling", moduleName = "student_application_form_filling.resources"} +] + diff --git a/examples/student_application_form_filling/README.md b/examples/student_application_form_filling/README.md new file mode 100644 index 0000000..e69de29 diff --git a/examples/student_application_form_filling/main.bal b/examples/student_application_form_filling/main.bal new file mode 100644 index 0000000..aa3eff9 --- /dev/null +++ b/examples/student_application_form_filling/main.bal @@ -0,0 +1,121 @@ +import ballerina/io; +import ballerina/lang.runtime; + +import dharshi/selenium.org.openqa.selenium; +import dharshi/selenium.org.openqa.selenium.chrome; + +public function main() returns error? { + + Data data = check getData(); + + chrome:ChromeDriver driver = chrome:newChromeDriver1(); + driver.get("https://ipa-usecase-2-demo-frontend.vercel.app/"); + + runtime:sleep(2); + + driver.findElement(selenium:By_id("fullName")).click(); + check driver.findElement(selenium:By_id("fullName")).sendKeys([data.fullName]); + driver.findElement(selenium:By_id("nameWithInitials")).click(); + check driver.findElement(selenium:By_id("nameWithInitials")).sendKeys([data.nameWithInitials]); + driver.findElement(selenium:By_id("dob")).click(); + check driver.findElement(selenium:By_id("dob")).sendKeys([data.dob]); + driver.findElement(selenium:By_id("age")).click(); + check driver.findElement(selenium:By_id("age")).sendKeys([data.age]); + driver.findElement(selenium:By_id("nationality")).click(); + check driver.findElement(selenium:By_id("nationality")).sendKeys([data.nationality]); + driver.findElement(selenium:By_id(data.gender)).click(); + driver.findElement(selenium:By_id("address")).click(); + check driver.findElement(selenium:By_id("address")).sendKeys([data.address]); + driver.findElement(selenium:By_id("mobile")).click(); + check driver.findElement(selenium:By_id("mobile")).sendKeys([data.mobile]); + driver.findElement(selenium:By_id("district")).click(); + check driver.findElement(selenium:By_id("district")).sendKeys([data.district]); + driver.findElement(selenium:By_id("gramaSevaka")).click(); + check driver.findElement(selenium:By_id("gramaSevaka")).sendKeys([data.gramaSevaka]); + driver.findElement(selenium:By_id("nic")).click(); + check driver.findElement(selenium:By_id("nic")).sendKeys([data.nic ?: ""]); + driver.findElement(selenium:By_id("passport")).click(); + check driver.findElement(selenium:By_id("passport")).sendKeys([data.passport ?: ""]); + + // 2. Emergency contact + driver.findElement(selenium:By_id("emer-name")).click(); + check driver.findElement(selenium:By_id("emer-name")).sendKeys([data.emergency.name]); + driver.findElement(selenium:By_id("emer-address")).click(); + check driver.findElement(selenium:By_id("emer-address")).sendKeys([data.emergency.address]); + driver.findElement(selenium:By_id("emer-mobile")).click(); + check driver.findElement(selenium:By_id("emer-mobile")).sendKeys([data.emergency.mobile]); + driver.findElement(selenium:By_id("relationship")).click(); + check driver.findElement(selenium:By_id("relationship")).sendKeys([data.emergency.relationship]); + driver.findElement(selenium:By_id("emer-email")).click(); + check driver.findElement(selenium:By_id("emer-email")).sendKeys([data.emergency.email]); + + // 3. O/L results + driver.findElement(selenium:By_id("ol-school")).click(); + check driver.findElement(selenium:By_id("ol-school")).sendKeys([data.olResults.school]); + driver.findElement(selenium:By_id("ol-year")).click(); + check driver.findElement(selenium:By_id("ol-year")).sendKeys([data.olResults.year]); + driver.findElement(selenium:By_id("ol-index")).click(); + check driver.findElement(selenium:By_id("ol-index")).sendKeys([data.olResults.index]); + foreach ResultsItem item in data.olResults.results { + driver.findElement(selenium:By_id("ol-subject")).click(); + check driver.findElement(selenium:By_id("ol-subject")).sendKeys([item.subject]); + driver.findElement(selenium:By_id("ol-grade")).click(); + check driver.findElement(selenium:By_id("ol-grade")).sendKeys([item.grade]); + driver.findElement(selenium:By_id("add-ol-result")).click(); + } + + // 4. A/L results + driver.findElement(selenium:By_id("al-school")).click(); + check driver.findElement(selenium:By_id("al-school")).sendKeys([data.alResults.school]); + driver.findElement(selenium:By_id("al-year")).click(); + check driver.findElement(selenium:By_id("al-year")).sendKeys([data.alResults.year]); + driver.findElement(selenium:By_id("al-index")).click(); + check driver.findElement(selenium:By_id("al-index")).sendKeys([data.alResults.index]); + driver.findElement(selenium:By_id("zScore")).click(); + check driver.findElement(selenium:By_id("zScore")).sendKeys([data.alResults.zScore]); + driver.findElement(selenium:By_id("al-subject")).click(); + foreach ResultsItem item in data.alResults.results { + check driver.findElement(selenium:By_id("al-subject")).sendKeys([item.subject]); + driver.findElement(selenium:By_id("al-grade")).click(); + check driver.findElement(selenium:By_id("al-grade")).sendKeys([item.grade]); + driver.findElement(selenium:By_id("add-al-result")).click(); + } + + // 5. Other qualifications + foreach OtherQualificationsItem item in data.otherQualifications { + driver.findElement(selenium:By_id("course")).click(); + check driver.findElement(selenium:By_id("course")).sendKeys([item.course]); + driver.findElement(selenium:By_id("nvq")).click(); + check driver.findElement(selenium:By_id("nvq")).sendKeys([item.nvqLevel]); + driver.findElement(selenium:By_id("institute")).click(); + check driver.findElement(selenium:By_id("institute")).sendKeys([item.institute]); + driver.findElement(selenium:By_id("nvq-year")).click(); + check driver.findElement(selenium:By_id("nvq-year")).sendKeys([item.year]); + driver.findElement(selenium:By_id("nvq-result")).click(); + check driver.findElement(selenium:By_id("nvq-result")).sendKeys([item.result]); + driver.findElement(selenium:By_id("add-nvq-result")).click(); + } + + // 6. Extra curricular activities + driver.findElement(selenium:By_id("extra-activities")).click(); + check driver.findElement(selenium:By_id("extra-activities")).sendKeys([data.extraCurricularActivities]); + + // 7. References + foreach RefreesItem item in data.refrees { + driver.findElement(selenium:By_id("refree-name")).click(); + check driver.findElement(selenium:By_id("refree-name")).sendKeys([item.name]); + driver.findElement(selenium:By_id("designation")).click(); + check driver.findElement(selenium:By_id("designation")).sendKeys([item.designation]); + driver.findElement(selenium:By_id("refree-address")).click(); + check driver.findElement(selenium:By_id("refree-address")).sendKeys([item.address]); + driver.findElement(selenium:By_id("refree-mobile")).click(); + check driver.findElement(selenium:By_id("refree-mobile")).sendKeys([item.mobile]); + driver.findElement(selenium:By_id("add-refree")).click(); + } + + // submit button + driver.findElement(selenium:By_id("submit")).click(); + + io:println("Data entered successsfully!"); +} + diff --git a/examples/student_application_form_filling/modules/resources/data.json b/examples/student_application_form_filling/modules/resources/data.json new file mode 100644 index 0000000..d045b4d --- /dev/null +++ b/examples/student_application_form_filling/modules/resources/data.json @@ -0,0 +1,84 @@ +{ + "fullName": "John Doe", + "nameWithInitials": "J. Doe", + "dob": "1990-01-01", + "age": "34", + "nationality": "American", + "gender": "male", + "address": "123 Main Street, Springfield", + "mobile": "+1234567890", + "district": "Springfield", + "gramaSevaka": "John Smith", + "nic": "123456789V", + "passport": "A1234567", + "emergency": { + "name": "Jane Doe", + "address": "456 Elm Street, Springfield", + "mobile": "+0987654321", + "relationship": "Spouse", + "email": "jane.doe@example.com" + }, + "olResults": { + "school": "Springfield High School", + "year": "2007", + "index": "OL12345", + "results": [ + { + "subject": "Mathematics", + "grade": "A" + }, + { + "subject": "Science", + "grade": "B" + }, + { + "subject": "English", + "grade": "A" + } + ] + }, + "alResults": { + "school": "Springfield High School", + "year": "2010", + "index": "AL54321", + "zScore": "1.75", + "results": [ + { + "subject": "Physics", + "grade": "B" + }, + { + "subject": "Chemistry", + "grade": "B" + }, + { + "subject": "Mathematics", + "grade": "A" + } + ] + }, + "otherQualifications": [ + { + "course": "Diploma in IT", + "nvqLevel": "4", + "institute": "Tech Academy", + "year": "2012", + "result": "Pass" + } + ], + "extraCurricularActivities": "Captain of school football team", + "refrees": [ + { + "name": "Mr. Mark Smith", + "designation": "Manager", + "address": "789 Pine Street, Springfield", + "mobile": "+1122334455" + }, + { + "name": "Ms. Lisa Johnson", + "designation": "Lecturer", + "address": "456 Oak Street, Springfield", + "mobile": "+2233445566" + } + ] +} \ No newline at end of file diff --git a/examples/student_application_form_filling/records.bal b/examples/student_application_form_filling/records.bal new file mode 100644 index 0000000..1d4679f --- /dev/null +++ b/examples/student_application_form_filling/records.bal @@ -0,0 +1,64 @@ +type Emergency record { + string name; + string address; + string mobile; + string relationship; + string email; +}; + +type ResultsItem record { + string subject; + string grade; +}; + +type OlResults record { + string school; + string year; + string index; + ResultsItem[] results; +}; + +type AlResults record { + string school; + string year; + string index; + string zScore; + ResultsItem[] results; +}; + +type OtherQualificationsItem record { + string course; + string nvqLevel; + string institute; + string year; + string result; +}; + +type RefreesItem record { + string name; + string designation; + string address; + string mobile; +}; + +type Data record { + string fullName; + string nameWithInitials; + string dob; + string age; + string nationality; + string gender; + string address; + string mobile; + string district; + string gramaSevaka; + string|() nic; + string|() passport; + Emergency emergency; + OlResults olResults; + AlResults alResults; + OtherQualificationsItem[] otherQualifications; + string extraCurricularActivities; + RefreesItem[] refrees; +}; + diff --git a/examples/student_application_form_filling/utils.bal b/examples/student_application_form_filling/utils.bal new file mode 100644 index 0000000..75aeb84 --- /dev/null +++ b/examples/student_application_form_filling/utils.bal @@ -0,0 +1,7 @@ +import ballerina/io; + +public function getData() returns Data|error { + json inputs = check io:fileReadJson("modules/resources/data.json"); + Data data = check inputs.cloneWithType(); + return data; +} \ No newline at end of file From 62b1c35b0dd9d62bf08a26d27e4c67425700cfb7 Mon Sep 17 00:00:00 2001 From: dharshi Date: Mon, 2 Dec 2024 14:24:01 +0530 Subject: [PATCH 03/43] [Automated] Update the toml files --- ballerina/Ballerina.toml | 234 --------------------------------------- 1 file changed, 234 deletions(-) diff --git a/ballerina/Ballerina.toml b/ballerina/Ballerina.toml index 4b97cb8..6dd9a28 100644 --- a/ballerina/Ballerina.toml +++ b/ballerina/Ballerina.toml @@ -14,237 +14,3 @@ observabilityIncluded = true [platform.java17] graalvmCompatible = true - -# transitive dependency of org.seleniumhq.selenium:selenium-api:4.25.0 -[[platform.java17.dependency]] -groupId = "org.jspecify" -artifactId = "jspecify" -version = "1.0.0" - -# transitive dependency of org.seleniumhq.selenium:selenium-chrome-driver:4.25.0 -[[platform.java17.dependency]] -groupId = "com.google.auto.service" -artifactId = "auto-service-annotations" -version = "1.1.1" - -# transitive dependency of org.seleniumhq.selenium:selenium-java:4.25.0 -[[platform.java17.dependency]] -groupId = "org.seleniumhq.selenium" -artifactId = "selenium-devtools-v127" -version = "4.25.0" - -# transitive dependency of org.seleniumhq.selenium:selenium-java:4.25.0 -[[platform.java17.dependency]] -groupId = "org.seleniumhq.selenium" -artifactId = "selenium-devtools-v128" -version = "4.25.0" - -# transitive dependency of org.seleniumhq.selenium:selenium-java:4.25.0 -[[platform.java17.dependency]] -groupId = "org.seleniumhq.selenium" -artifactId = "selenium-devtools-v129" -version = "4.25.0" - -# transitive dependency of org.seleniumhq.selenium:selenium-java:4.25.0 -[[platform.java17.dependency]] -groupId = "org.seleniumhq.selenium" -artifactId = "selenium-devtools-v85" -version = "4.25.0" - -# transitive dependency of org.seleniumhq.selenium:selenium-firefox-driver:4.25.0 -[[platform.java17.dependency]] -groupId = "dev.failsafe" -artifactId = "failsafe" -version = "3.3.2" - -# transitive dependency of org.seleniumhq.selenium:selenium-java:4.25.0 -[[platform.java17.dependency]] -groupId = "org.seleniumhq.selenium" -artifactId = "selenium-ie-driver" -version = "4.25.0" - -# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.25.0 -[[platform.java17.dependency]] -groupId = "com.google.guava" -artifactId = "guava" -version = "33.3.0-jre" - -# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.25.0 -[[platform.java17.dependency]] -groupId = "com.google.guava" -artifactId = "failureaccess" -version = "1.0.2" - -# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.25.0 -[[platform.java17.dependency]] -groupId = "com.google.guava" -artifactId = "listenablefuture" -version = "9999.0-empty-to-avoid-conflict-with-guava" - -# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.25.0 -[[platform.java17.dependency]] -groupId = "com.google.code.findbugs" -artifactId = "jsr305" -version = "3.0.2" - -# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.25.0 -[[platform.java17.dependency]] -groupId = "org.checkerframework" -artifactId = "checker-qual" -version = "3.43.0" - -# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.25.0 -[[platform.java17.dependency]] -groupId = "com.google.errorprone" -artifactId = "error_prone_annotations" -version = "2.28.0" - -# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.25.0 -[[platform.java17.dependency]] -groupId = "com.google.j2objc" -artifactId = "j2objc-annotations" -version = "3.0.0" - -# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.25.0 -[[platform.java17.dependency]] -groupId = "net.bytebuddy" -artifactId = "byte-buddy" -version = "1.15.1" - -# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.25.0 -[[platform.java17.dependency]] -groupId = "org.seleniumhq.selenium" -artifactId = "selenium-os" -version = "4.25.0" - -# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.25.0 -[[platform.java17.dependency]] -groupId = "org.apache.commons" -artifactId = "commons-exec" -version = "1.4.0" - -# transitive dependency of org.seleniumhq.selenium:selenium-java:4.25.0 -[[platform.java17.dependency]] -groupId = "org.seleniumhq.selenium" -artifactId = "selenium-safari-driver" -version = "4.25.0" - -[[platform.java17.dependency]] -groupId = "org.seleniumhq.selenium" -artifactId = "selenium-java" -version = "4.27.0" - -# transitive dependency of org.seleniumhq.selenium:selenium-java:4.27.0 -[[platform.java17.dependency]] -groupId = "org.seleniumhq.selenium" -artifactId = "selenium-api" -version = "4.27.0" - -# transitive dependency of org.seleniumhq.selenium:selenium-java:4.27.0 -[[platform.java17.dependency]] -groupId = "org.seleniumhq.selenium" -artifactId = "selenium-chrome-driver" -version = "4.27.0" - -# transitive dependency of org.seleniumhq.selenium:selenium-chrome-driver:4.27.0 -[[platform.java17.dependency]] -groupId = "org.seleniumhq.selenium" -artifactId = "selenium-chromium-driver" -version = "4.27.0" - -# transitive dependency of org.seleniumhq.selenium:selenium-chrome-driver:4.27.0 -[[platform.java17.dependency]] -groupId = "org.seleniumhq.selenium" -artifactId = "selenium-json" -version = "4.27.0" - -# transitive dependency of org.seleniumhq.selenium:selenium-chrome-driver:4.27.0 -[[platform.java17.dependency]] -groupId = "org.seleniumhq.selenium" -artifactId = "selenium-manager" -version = "4.27.0" - -# transitive dependency of org.seleniumhq.selenium:selenium-java:4.27.0 -[[platform.java17.dependency]] -groupId = "org.seleniumhq.selenium" -artifactId = "selenium-devtools-v129" -version = "4.27.0" - -# transitive dependency of org.seleniumhq.selenium:selenium-java:4.27.0 -[[platform.java17.dependency]] -groupId = "org.seleniumhq.selenium" -artifactId = "selenium-devtools-v130" -version = "4.27.0" - -# transitive dependency of org.seleniumhq.selenium:selenium-java:4.27.0 -[[platform.java17.dependency]] -groupId = "org.seleniumhq.selenium" -artifactId = "selenium-devtools-v131" -version = "4.27.0" - -# transitive dependency of org.seleniumhq.selenium:selenium-java:4.27.0 -[[platform.java17.dependency]] -groupId = "org.seleniumhq.selenium" -artifactId = "selenium-devtools-v85" -version = "4.27.0" - -# transitive dependency of org.seleniumhq.selenium:selenium-java:4.27.0 -[[platform.java17.dependency]] -groupId = "org.seleniumhq.selenium" -artifactId = "selenium-edge-driver" -version = "4.27.0" - -# transitive dependency of org.seleniumhq.selenium:selenium-java:4.27.0 -[[platform.java17.dependency]] -groupId = "org.seleniumhq.selenium" -artifactId = "selenium-firefox-driver" -version = "4.27.0" - -# transitive dependency of org.seleniumhq.selenium:selenium-firefox-driver:4.27.0 -[[platform.java17.dependency]] -groupId = "org.seleniumhq.selenium" -artifactId = "selenium-http" -version = "4.27.0" - -# transitive dependency of org.seleniumhq.selenium:selenium-java:4.27.0 -[[platform.java17.dependency]] -groupId = "org.seleniumhq.selenium" -artifactId = "selenium-ie-driver" -version = "4.27.0" - -# transitive dependency of org.seleniumhq.selenium:selenium-java:4.27.0 -[[platform.java17.dependency]] -groupId = "org.seleniumhq.selenium" -artifactId = "selenium-remote-driver" -version = "4.27.0" - -# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.27.0 -[[platform.java17.dependency]] -groupId = "com.google.guava" -artifactId = "guava" -version = "33.3.1-jre" - -# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.27.0 -[[platform.java17.dependency]] -groupId = "net.bytebuddy" -artifactId = "byte-buddy" -version = "1.15.10" - -# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.27.0 -[[platform.java17.dependency]] -groupId = "org.seleniumhq.selenium" -artifactId = "selenium-os" -version = "4.27.0" - -# transitive dependency of org.seleniumhq.selenium:selenium-java:4.27.0 -[[platform.java17.dependency]] -groupId = "org.seleniumhq.selenium" -artifactId = "selenium-safari-driver" -version = "4.27.0" - -# transitive dependency of org.seleniumhq.selenium:selenium-java:4.27.0 -[[platform.java17.dependency]] -groupId = "org.seleniumhq.selenium" -artifactId = "selenium-support" -version = "4.27.0" - From 21a2354f7ae5eb3367c653e56a40fcc7035a9612 Mon Sep 17 00:00:00 2001 From: dharshi Date: Mon, 2 Dec 2024 14:27:17 +0530 Subject: [PATCH 04/43] untracked toml file --- .gitignore | 1 + ballerina/Ballerina.toml | 16 ---------------- 2 files changed, 1 insertion(+), 16 deletions(-) delete mode 100644 ballerina/Ballerina.toml diff --git a/.gitignore b/.gitignore index bda5bd7..69ca4f5 100644 --- a/.gitignore +++ b/.gitignore @@ -47,3 +47,4 @@ build # Ignore Docker env file **/docker.env +**/Ballerina.toml \ No newline at end of file diff --git a/ballerina/Ballerina.toml b/ballerina/Ballerina.toml deleted file mode 100644 index 6dd9a28..0000000 --- a/ballerina/Ballerina.toml +++ /dev/null @@ -1,16 +0,0 @@ -[package] -distribution = "2201.10.0" -org = "xlibb" -name = "selenium" -version = "0.1.0" -license = ["Apache-2.0"] -authors = ["Ballerina"] -keywords = [] # TODO: Add keywords -# icon = "icon.png" # TODO: Add icon -repository = "https://github.com/xlibb/module-selenium" - -[build-options] -observabilityIncluded = true - -[platform.java17] -graalvmCompatible = true From f4918b10afb9fbde95fab50166521ea9d4e09f6d Mon Sep 17 00:00:00 2001 From: dharshi Date: Mon, 2 Dec 2024 14:29:52 +0530 Subject: [PATCH 05/43] add toml file --- .gitignore | 3 +- ballerina/Ballerina.toml | 250 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 251 insertions(+), 2 deletions(-) create mode 100644 ballerina/Ballerina.toml diff --git a/.gitignore b/.gitignore index 69ca4f5..a98a807 100644 --- a/.gitignore +++ b/.gitignore @@ -46,5 +46,4 @@ generated/ build # Ignore Docker env file -**/docker.env -**/Ballerina.toml \ No newline at end of file +**/docker.env \ No newline at end of file diff --git a/ballerina/Ballerina.toml b/ballerina/Ballerina.toml new file mode 100644 index 0000000..4b97cb8 --- /dev/null +++ b/ballerina/Ballerina.toml @@ -0,0 +1,250 @@ +[package] +distribution = "2201.10.0" +org = "xlibb" +name = "selenium" +version = "0.1.0" +license = ["Apache-2.0"] +authors = ["Ballerina"] +keywords = [] # TODO: Add keywords +# icon = "icon.png" # TODO: Add icon +repository = "https://github.com/xlibb/module-selenium" + +[build-options] +observabilityIncluded = true + +[platform.java17] +graalvmCompatible = true + +# transitive dependency of org.seleniumhq.selenium:selenium-api:4.25.0 +[[platform.java17.dependency]] +groupId = "org.jspecify" +artifactId = "jspecify" +version = "1.0.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-chrome-driver:4.25.0 +[[platform.java17.dependency]] +groupId = "com.google.auto.service" +artifactId = "auto-service-annotations" +version = "1.1.1" + +# transitive dependency of org.seleniumhq.selenium:selenium-java:4.25.0 +[[platform.java17.dependency]] +groupId = "org.seleniumhq.selenium" +artifactId = "selenium-devtools-v127" +version = "4.25.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-java:4.25.0 +[[platform.java17.dependency]] +groupId = "org.seleniumhq.selenium" +artifactId = "selenium-devtools-v128" +version = "4.25.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-java:4.25.0 +[[platform.java17.dependency]] +groupId = "org.seleniumhq.selenium" +artifactId = "selenium-devtools-v129" +version = "4.25.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-java:4.25.0 +[[platform.java17.dependency]] +groupId = "org.seleniumhq.selenium" +artifactId = "selenium-devtools-v85" +version = "4.25.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-firefox-driver:4.25.0 +[[platform.java17.dependency]] +groupId = "dev.failsafe" +artifactId = "failsafe" +version = "3.3.2" + +# transitive dependency of org.seleniumhq.selenium:selenium-java:4.25.0 +[[platform.java17.dependency]] +groupId = "org.seleniumhq.selenium" +artifactId = "selenium-ie-driver" +version = "4.25.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.25.0 +[[platform.java17.dependency]] +groupId = "com.google.guava" +artifactId = "guava" +version = "33.3.0-jre" + +# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.25.0 +[[platform.java17.dependency]] +groupId = "com.google.guava" +artifactId = "failureaccess" +version = "1.0.2" + +# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.25.0 +[[platform.java17.dependency]] +groupId = "com.google.guava" +artifactId = "listenablefuture" +version = "9999.0-empty-to-avoid-conflict-with-guava" + +# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.25.0 +[[platform.java17.dependency]] +groupId = "com.google.code.findbugs" +artifactId = "jsr305" +version = "3.0.2" + +# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.25.0 +[[platform.java17.dependency]] +groupId = "org.checkerframework" +artifactId = "checker-qual" +version = "3.43.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.25.0 +[[platform.java17.dependency]] +groupId = "com.google.errorprone" +artifactId = "error_prone_annotations" +version = "2.28.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.25.0 +[[platform.java17.dependency]] +groupId = "com.google.j2objc" +artifactId = "j2objc-annotations" +version = "3.0.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.25.0 +[[platform.java17.dependency]] +groupId = "net.bytebuddy" +artifactId = "byte-buddy" +version = "1.15.1" + +# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.25.0 +[[platform.java17.dependency]] +groupId = "org.seleniumhq.selenium" +artifactId = "selenium-os" +version = "4.25.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.25.0 +[[platform.java17.dependency]] +groupId = "org.apache.commons" +artifactId = "commons-exec" +version = "1.4.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-java:4.25.0 +[[platform.java17.dependency]] +groupId = "org.seleniumhq.selenium" +artifactId = "selenium-safari-driver" +version = "4.25.0" + +[[platform.java17.dependency]] +groupId = "org.seleniumhq.selenium" +artifactId = "selenium-java" +version = "4.27.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-java:4.27.0 +[[platform.java17.dependency]] +groupId = "org.seleniumhq.selenium" +artifactId = "selenium-api" +version = "4.27.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-java:4.27.0 +[[platform.java17.dependency]] +groupId = "org.seleniumhq.selenium" +artifactId = "selenium-chrome-driver" +version = "4.27.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-chrome-driver:4.27.0 +[[platform.java17.dependency]] +groupId = "org.seleniumhq.selenium" +artifactId = "selenium-chromium-driver" +version = "4.27.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-chrome-driver:4.27.0 +[[platform.java17.dependency]] +groupId = "org.seleniumhq.selenium" +artifactId = "selenium-json" +version = "4.27.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-chrome-driver:4.27.0 +[[platform.java17.dependency]] +groupId = "org.seleniumhq.selenium" +artifactId = "selenium-manager" +version = "4.27.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-java:4.27.0 +[[platform.java17.dependency]] +groupId = "org.seleniumhq.selenium" +artifactId = "selenium-devtools-v129" +version = "4.27.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-java:4.27.0 +[[platform.java17.dependency]] +groupId = "org.seleniumhq.selenium" +artifactId = "selenium-devtools-v130" +version = "4.27.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-java:4.27.0 +[[platform.java17.dependency]] +groupId = "org.seleniumhq.selenium" +artifactId = "selenium-devtools-v131" +version = "4.27.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-java:4.27.0 +[[platform.java17.dependency]] +groupId = "org.seleniumhq.selenium" +artifactId = "selenium-devtools-v85" +version = "4.27.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-java:4.27.0 +[[platform.java17.dependency]] +groupId = "org.seleniumhq.selenium" +artifactId = "selenium-edge-driver" +version = "4.27.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-java:4.27.0 +[[platform.java17.dependency]] +groupId = "org.seleniumhq.selenium" +artifactId = "selenium-firefox-driver" +version = "4.27.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-firefox-driver:4.27.0 +[[platform.java17.dependency]] +groupId = "org.seleniumhq.selenium" +artifactId = "selenium-http" +version = "4.27.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-java:4.27.0 +[[platform.java17.dependency]] +groupId = "org.seleniumhq.selenium" +artifactId = "selenium-ie-driver" +version = "4.27.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-java:4.27.0 +[[platform.java17.dependency]] +groupId = "org.seleniumhq.selenium" +artifactId = "selenium-remote-driver" +version = "4.27.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.27.0 +[[platform.java17.dependency]] +groupId = "com.google.guava" +artifactId = "guava" +version = "33.3.1-jre" + +# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.27.0 +[[platform.java17.dependency]] +groupId = "net.bytebuddy" +artifactId = "byte-buddy" +version = "1.15.10" + +# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.27.0 +[[platform.java17.dependency]] +groupId = "org.seleniumhq.selenium" +artifactId = "selenium-os" +version = "4.27.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-java:4.27.0 +[[platform.java17.dependency]] +groupId = "org.seleniumhq.selenium" +artifactId = "selenium-safari-driver" +version = "4.27.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-java:4.27.0 +[[platform.java17.dependency]] +groupId = "org.seleniumhq.selenium" +artifactId = "selenium-support" +version = "4.27.0" + From c69bf714120f444010046c9328a5556ebe6b5223 Mon Sep 17 00:00:00 2001 From: dharshi Date: Mon, 2 Dec 2024 14:31:02 +0530 Subject: [PATCH 06/43] [Automated] Update the toml files --- ballerina/Ballerina.toml | 234 --------------------------------------- 1 file changed, 234 deletions(-) diff --git a/ballerina/Ballerina.toml b/ballerina/Ballerina.toml index 4b97cb8..6dd9a28 100644 --- a/ballerina/Ballerina.toml +++ b/ballerina/Ballerina.toml @@ -14,237 +14,3 @@ observabilityIncluded = true [platform.java17] graalvmCompatible = true - -# transitive dependency of org.seleniumhq.selenium:selenium-api:4.25.0 -[[platform.java17.dependency]] -groupId = "org.jspecify" -artifactId = "jspecify" -version = "1.0.0" - -# transitive dependency of org.seleniumhq.selenium:selenium-chrome-driver:4.25.0 -[[platform.java17.dependency]] -groupId = "com.google.auto.service" -artifactId = "auto-service-annotations" -version = "1.1.1" - -# transitive dependency of org.seleniumhq.selenium:selenium-java:4.25.0 -[[platform.java17.dependency]] -groupId = "org.seleniumhq.selenium" -artifactId = "selenium-devtools-v127" -version = "4.25.0" - -# transitive dependency of org.seleniumhq.selenium:selenium-java:4.25.0 -[[platform.java17.dependency]] -groupId = "org.seleniumhq.selenium" -artifactId = "selenium-devtools-v128" -version = "4.25.0" - -# transitive dependency of org.seleniumhq.selenium:selenium-java:4.25.0 -[[platform.java17.dependency]] -groupId = "org.seleniumhq.selenium" -artifactId = "selenium-devtools-v129" -version = "4.25.0" - -# transitive dependency of org.seleniumhq.selenium:selenium-java:4.25.0 -[[platform.java17.dependency]] -groupId = "org.seleniumhq.selenium" -artifactId = "selenium-devtools-v85" -version = "4.25.0" - -# transitive dependency of org.seleniumhq.selenium:selenium-firefox-driver:4.25.0 -[[platform.java17.dependency]] -groupId = "dev.failsafe" -artifactId = "failsafe" -version = "3.3.2" - -# transitive dependency of org.seleniumhq.selenium:selenium-java:4.25.0 -[[platform.java17.dependency]] -groupId = "org.seleniumhq.selenium" -artifactId = "selenium-ie-driver" -version = "4.25.0" - -# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.25.0 -[[platform.java17.dependency]] -groupId = "com.google.guava" -artifactId = "guava" -version = "33.3.0-jre" - -# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.25.0 -[[platform.java17.dependency]] -groupId = "com.google.guava" -artifactId = "failureaccess" -version = "1.0.2" - -# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.25.0 -[[platform.java17.dependency]] -groupId = "com.google.guava" -artifactId = "listenablefuture" -version = "9999.0-empty-to-avoid-conflict-with-guava" - -# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.25.0 -[[platform.java17.dependency]] -groupId = "com.google.code.findbugs" -artifactId = "jsr305" -version = "3.0.2" - -# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.25.0 -[[platform.java17.dependency]] -groupId = "org.checkerframework" -artifactId = "checker-qual" -version = "3.43.0" - -# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.25.0 -[[platform.java17.dependency]] -groupId = "com.google.errorprone" -artifactId = "error_prone_annotations" -version = "2.28.0" - -# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.25.0 -[[platform.java17.dependency]] -groupId = "com.google.j2objc" -artifactId = "j2objc-annotations" -version = "3.0.0" - -# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.25.0 -[[platform.java17.dependency]] -groupId = "net.bytebuddy" -artifactId = "byte-buddy" -version = "1.15.1" - -# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.25.0 -[[platform.java17.dependency]] -groupId = "org.seleniumhq.selenium" -artifactId = "selenium-os" -version = "4.25.0" - -# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.25.0 -[[platform.java17.dependency]] -groupId = "org.apache.commons" -artifactId = "commons-exec" -version = "1.4.0" - -# transitive dependency of org.seleniumhq.selenium:selenium-java:4.25.0 -[[platform.java17.dependency]] -groupId = "org.seleniumhq.selenium" -artifactId = "selenium-safari-driver" -version = "4.25.0" - -[[platform.java17.dependency]] -groupId = "org.seleniumhq.selenium" -artifactId = "selenium-java" -version = "4.27.0" - -# transitive dependency of org.seleniumhq.selenium:selenium-java:4.27.0 -[[platform.java17.dependency]] -groupId = "org.seleniumhq.selenium" -artifactId = "selenium-api" -version = "4.27.0" - -# transitive dependency of org.seleniumhq.selenium:selenium-java:4.27.0 -[[platform.java17.dependency]] -groupId = "org.seleniumhq.selenium" -artifactId = "selenium-chrome-driver" -version = "4.27.0" - -# transitive dependency of org.seleniumhq.selenium:selenium-chrome-driver:4.27.0 -[[platform.java17.dependency]] -groupId = "org.seleniumhq.selenium" -artifactId = "selenium-chromium-driver" -version = "4.27.0" - -# transitive dependency of org.seleniumhq.selenium:selenium-chrome-driver:4.27.0 -[[platform.java17.dependency]] -groupId = "org.seleniumhq.selenium" -artifactId = "selenium-json" -version = "4.27.0" - -# transitive dependency of org.seleniumhq.selenium:selenium-chrome-driver:4.27.0 -[[platform.java17.dependency]] -groupId = "org.seleniumhq.selenium" -artifactId = "selenium-manager" -version = "4.27.0" - -# transitive dependency of org.seleniumhq.selenium:selenium-java:4.27.0 -[[platform.java17.dependency]] -groupId = "org.seleniumhq.selenium" -artifactId = "selenium-devtools-v129" -version = "4.27.0" - -# transitive dependency of org.seleniumhq.selenium:selenium-java:4.27.0 -[[platform.java17.dependency]] -groupId = "org.seleniumhq.selenium" -artifactId = "selenium-devtools-v130" -version = "4.27.0" - -# transitive dependency of org.seleniumhq.selenium:selenium-java:4.27.0 -[[platform.java17.dependency]] -groupId = "org.seleniumhq.selenium" -artifactId = "selenium-devtools-v131" -version = "4.27.0" - -# transitive dependency of org.seleniumhq.selenium:selenium-java:4.27.0 -[[platform.java17.dependency]] -groupId = "org.seleniumhq.selenium" -artifactId = "selenium-devtools-v85" -version = "4.27.0" - -# transitive dependency of org.seleniumhq.selenium:selenium-java:4.27.0 -[[platform.java17.dependency]] -groupId = "org.seleniumhq.selenium" -artifactId = "selenium-edge-driver" -version = "4.27.0" - -# transitive dependency of org.seleniumhq.selenium:selenium-java:4.27.0 -[[platform.java17.dependency]] -groupId = "org.seleniumhq.selenium" -artifactId = "selenium-firefox-driver" -version = "4.27.0" - -# transitive dependency of org.seleniumhq.selenium:selenium-firefox-driver:4.27.0 -[[platform.java17.dependency]] -groupId = "org.seleniumhq.selenium" -artifactId = "selenium-http" -version = "4.27.0" - -# transitive dependency of org.seleniumhq.selenium:selenium-java:4.27.0 -[[platform.java17.dependency]] -groupId = "org.seleniumhq.selenium" -artifactId = "selenium-ie-driver" -version = "4.27.0" - -# transitive dependency of org.seleniumhq.selenium:selenium-java:4.27.0 -[[platform.java17.dependency]] -groupId = "org.seleniumhq.selenium" -artifactId = "selenium-remote-driver" -version = "4.27.0" - -# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.27.0 -[[platform.java17.dependency]] -groupId = "com.google.guava" -artifactId = "guava" -version = "33.3.1-jre" - -# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.27.0 -[[platform.java17.dependency]] -groupId = "net.bytebuddy" -artifactId = "byte-buddy" -version = "1.15.10" - -# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.27.0 -[[platform.java17.dependency]] -groupId = "org.seleniumhq.selenium" -artifactId = "selenium-os" -version = "4.27.0" - -# transitive dependency of org.seleniumhq.selenium:selenium-java:4.27.0 -[[platform.java17.dependency]] -groupId = "org.seleniumhq.selenium" -artifactId = "selenium-safari-driver" -version = "4.27.0" - -# transitive dependency of org.seleniumhq.selenium:selenium-java:4.27.0 -[[platform.java17.dependency]] -groupId = "org.seleniumhq.selenium" -artifactId = "selenium-support" -version = "4.27.0" - From d2eee59aa926e02e69db3d11b2eac0aef73ffe4d Mon Sep 17 00:00:00 2001 From: dharshi Date: Tue, 3 Dec 2024 10:26:46 +0530 Subject: [PATCH 07/43] add readme --- README.md | 179 ++++++++++++++- ballerina/Ballerina.toml | 209 +++++++++++++++++- ballerina/Dependencies.toml | 21 -- ballerina/Module.md | 61 +++-- ballerina/Package.md | 178 ++++++++++++++- ballerina/client.bal | 7 +- examples/README.md | 46 ---- .../Ballerina.toml | 6 - .../README.md | 14 ++ .../student_application_form_filling/main.bal | 6 +- 10 files changed, 611 insertions(+), 116 deletions(-) delete mode 100644 examples/README.md diff --git a/README.md b/README.md index e95ea24..346865f 100644 --- a/README.md +++ b/README.md @@ -9,21 +9,188 @@ This repository contains the source code of the Ballerina Selenium library packa ## Overview -[//]: # (TODO: Add overview mentioning the purpose of the module, supported REST API versions, and other high-level details.) +This module automates web applications across various browsers. Selenium interacts with web browsers directly, simulating user actions such as clicks, text input, page navigation, and more. -## Setup guide +## Quickstart -[//]: # (TODO: Add detailed steps to obtain credentials and configure the module.) +#### Web driver + +The core component of Selenium is the WebDriver. It is an interface for controlling a web browser instance and communicates with the browser through its native API. You can create a web driver based on the browser you want to automate. + +```ballerina +import xlibb/selenium.org.openqa.selenium.chrome; +import xlibb/selenium.org.openqa.selenium.safari; +import xlibb/selenium.org.openqa.selenium.edge; +import xlibb/selenium.org.openqa.selenium.firefox; + +public function main() { + + chrome:ChromeDriver driver1 = chrome:newChromeDriver1(); // Web driver for Chrome browsers + firefox:FirefoxDriver driver2 = firefox:newFirefoxDriver1(); // Web driver for Firefox browsers + edge:EdgeDriver driver3 = edge:newEdgeDriver1(); // Webdriver for edge browsers + safari:SafariDriver driver4 = safari:newSafariDriver1(); // Web driver for Safari browsers + +} +``` + +#### Launching website. + +```ballerina +import xlibb/selenium.org.openqa.selenium.chrome; + +public function main() { + + chrome:ChromeDriver driver = chrome:newChromeDriver1(); + + // Navigate to the desired website. + driver.get("https://central.ballerina.io/"); + +} +``` + +#### Locating elements + +A locator is a way to identify elements on a page. Selenium provides support for several location strategies in WebDriver, such as class name, ID, CSS selector, name, tag name, and XPath. + +`WebElement` class: Represents an element in the DOM; allows interaction (e.g., click, send keys). + +`By` class: Locator strategies for finding elements (e.g., By_id, By_name, By_xpath). + +```html +

+ + + + +``` + +```ballerina +import xlibb/selenium.org.openqa.selenium.chrome; +import xlibb/selenium.org.openqa.selenium; +import ballerina/io; + +public function main() { + + chrome:ChromeDriver driver = chrome:newChromeDriver1(); + selenium:WebElement form = driver.findElement(selenium:By_id("form")); // By ID + selenium:WebElement searchboxByName = driver.findElement(selenium:By_name("q")); // By Name + selenium:WebElement searchboxbyCss = driver.findElement(selenium:By_cssSelector("#form .search-box")); // By CSS Selector + selenium:WebElement searchboxbyXpath = driver.findElement(selenium:By_xpath("//input[@id='search']")); // By XPath + selenium:WebElement searchboxbyClassName = driver.findElement(selenium:By_className("search-box")); // By Class Name + selenium:WebElement searchboxbyTagName = driver.findElement(selenium:By_tagName("input")); // By Tag Name + selenium:WebElement nestedElement = form.findElement(selenium:By_name("q")); // Locating a WebElement inside another WebElement +} + +``` + +#### Fetching data over any web element + +To fetch data from a web element in Selenium, you can interact with it using various methods depending on the type of data you need. + +1. Text of an element (e.g., a paragraph or label): + +```ballerina +string labelText = driver.findElement(selenium:By_className("input-label")).getText(); +io:println(labelText); +``` + +2. Attribute value (e.g., value of an input field or the href attribute of a link): + +```ballerina +string value = driver.findElement(selenium:By_id("elementId")).getAttribute("value"); // For input fields +string href = driver.findElement(selenium:By_tagName("a")).getAttribute("href"); // For links +``` -## Quickstart -[//]: # (TODO: Add a quickstart guide to demonstrate a basic functionality of the module, including sample code snippets.) +3. Checking if an element is displayed/enabled/selected: + +```ballerina +selenium:WebElement element = driver.findElement(selenium:By_id("elementId")); +boolean isDisplayed = element.isDisplayed(); +boolean isEnabled = element.isEnabled(); +boolean isSelected = element.isSelected(); +``` + + +#### Sending user inputs to web element + +To send user inputs to web elements, you can use the sendKeys() method, which simulates typing into text-based input fields (like textboxes, textareas, etc.). + +```ballerina +check driver.findElement(selenium:By_className("search-box")).sendKeys(["ballerina"]); +``` + +#### Performing Click event + +To perform a click event on a web element, you can use the click() method on the WebElement object. This is commonly used to simulate clicking on buttons, links, checkboxes, radio buttons, or any other clickable elements. + +```ballerina +driver.findElement(selenium:By_className("submit-btn")).click(); +``` + +#### Closing the browser + +```ballerina +driver.quit(); +``` + +#### Complete example + +The below code will do the following, +1. Opens Chrome browser. +2. Navigates to ballerina central page. +3. Search for 'http' module. + +```ballerina +import xlibb/selenium.org.openqa.selenium.chrome; +import xlibb/selenium.org.openqa.selenium; +import ballerina/lang.runtime; + +public function main() returns error? { + chrome:ChromeDriver driver = chrome:newChromeDriver1(); + driver.get("https://central.ballerina.io/"); + + // Wait for some time, till the page completely loads. + runtime:sleep(2); + + check driver.findElement(selenium:By_id("downshift-search-bar-input")).sendKeys(["http"]); + driver.findElement(selenium:By_className("Search_searchButton__iLPLB")).click(); +} +``` + +#### Selenium IDE for Finding Locators + +Selenium IDE is a handy tool for finding locators for web elements. Here's how to use it effectively: + +1. Install Selenium IDE: Download and install the Selenium IDE extension for your browser (Chrome or Firefox) [here](https://www.selenium.dev/selenium-ide/). +2. Launch Selenium IDE: Open the Selenium IDE extension from your browser's toolbar. + +3. Start a New Project: Click on Create a New Project and name your project. + +new project - side + +4. Start Recording: + - Click on the Record a New Test in a New Project option. + - Enter the URL of the web application you want to test. + - Selenium IDE will open the URL in a new tab and start recording your actions. + +start recording - side + +5. Perform Actions on the Webpage: Interact with the web elements (e.g., click buttons, fill out forms) on the page. Selenium IDE will record these actions as steps in your test case. +6. View Recorded Steps: Once done, stop the recording. The recorded steps will appear in the Selenium IDE window. Each step will include information about the action and the locator used. +7. Inspect Locators: + - In the list of recorded steps, click on a step to view details. + - The Target field shows the locator for the web element (e.g., XPath, ID, Name, CSS selector, etc.). + - You can switch between different locator strategies by clicking the dropdown next to the locator. Selenium IDE will display alternatives if available. + +find locators ## Examples The `Selenium` connector provides practical examples illustrating usage in various scenarios. Explore these [examples](https://github.com/xlibb/module-selenium/tree/main/examples/), covering the following use cases: -[//]: # (TODO: Add examples) +1. [Automating the Filling of Student Application Forms for a Web Application.](https://github.com/xlibb/module-selenium/tree/main/examples/student_appliation_form_filling). + ## Build from the source diff --git a/ballerina/Ballerina.toml b/ballerina/Ballerina.toml index 6dd9a28..a9e5970 100644 --- a/ballerina/Ballerina.toml +++ b/ballerina/Ballerina.toml @@ -5,12 +5,217 @@ name = "selenium" version = "0.1.0" license = ["Apache-2.0"] authors = ["Ballerina"] -keywords = [] # TODO: Add keywords -# icon = "icon.png" # TODO: Add icon +keywords = ["selenium", "web-automation"] +icon = "icon.png" repository = "https://github.com/xlibb/module-selenium" +export = ["selenium", "selenium.org.openqa.selenium", "selenium.org.openqa.selenium.chrome", "selenium.org.openqa.selenium.edge", "selenium.org.openqa.selenium.firefox", "selenium.org.openqa.selenium.safari"] [build-options] observabilityIncluded = true [platform.java17] graalvmCompatible = true + +# transitive dependency of org.seleniumhq.selenium:selenium-api:4.25.0 +[[platform.java17.dependency]] +groupId = "org.jspecify" +artifactId = "jspecify" +version = "1.0.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-chrome-driver:4.25.0 +[[platform.java17.dependency]] +groupId = "com.google.auto.service" +artifactId = "auto-service-annotations" +version = "1.1.1" + +# transitive dependency of org.seleniumhq.selenium:selenium-java:4.25.0 +[[platform.java17.dependency]] +groupId = "org.seleniumhq.selenium" +artifactId = "selenium-devtools-v127" +version = "4.25.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-java:4.25.0 +[[platform.java17.dependency]] +groupId = "org.seleniumhq.selenium" +artifactId = "selenium-devtools-v128" +version = "4.25.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-firefox-driver:4.25.0 +[[platform.java17.dependency]] +groupId = "dev.failsafe" +artifactId = "failsafe" +version = "3.3.2" + +# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.25.0 +[[platform.java17.dependency]] +groupId = "com.google.guava" +artifactId = "guava" +version = "33.3.0-jre" + +# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.25.0 +[[platform.java17.dependency]] +groupId = "com.google.guava" +artifactId = "failureaccess" +version = "1.0.2" + +# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.25.0 +[[platform.java17.dependency]] +groupId = "com.google.guava" +artifactId = "listenablefuture" +version = "9999.0-empty-to-avoid-conflict-with-guava" + +# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.25.0 +[[platform.java17.dependency]] +groupId = "com.google.code.findbugs" +artifactId = "jsr305" +version = "3.0.2" + +# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.25.0 +[[platform.java17.dependency]] +groupId = "org.checkerframework" +artifactId = "checker-qual" +version = "3.43.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.25.0 +[[platform.java17.dependency]] +groupId = "com.google.errorprone" +artifactId = "error_prone_annotations" +version = "2.28.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.25.0 +[[platform.java17.dependency]] +groupId = "com.google.j2objc" +artifactId = "j2objc-annotations" +version = "3.0.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.25.0 +[[platform.java17.dependency]] +groupId = "net.bytebuddy" +artifactId = "byte-buddy" +version = "1.15.1" + +# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.25.0 +[[platform.java17.dependency]] +groupId = "org.apache.commons" +artifactId = "commons-exec" +version = "1.4.0" + +[[platform.java17.dependency]] +groupId = "org.seleniumhq.selenium" +artifactId = "selenium-java" +version = "4.27.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-java:4.27.0 +[[platform.java17.dependency]] +groupId = "org.seleniumhq.selenium" +artifactId = "selenium-api" +version = "4.27.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-java:4.27.0 +[[platform.java17.dependency]] +groupId = "org.seleniumhq.selenium" +artifactId = "selenium-chrome-driver" +version = "4.27.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-chrome-driver:4.27.0 +[[platform.java17.dependency]] +groupId = "org.seleniumhq.selenium" +artifactId = "selenium-chromium-driver" +version = "4.27.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-chrome-driver:4.27.0 +[[platform.java17.dependency]] +groupId = "org.seleniumhq.selenium" +artifactId = "selenium-json" +version = "4.27.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-chrome-driver:4.27.0 +[[platform.java17.dependency]] +groupId = "org.seleniumhq.selenium" +artifactId = "selenium-manager" +version = "4.27.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-java:4.27.0 +[[platform.java17.dependency]] +groupId = "org.seleniumhq.selenium" +artifactId = "selenium-devtools-v129" +version = "4.27.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-java:4.27.0 +[[platform.java17.dependency]] +groupId = "org.seleniumhq.selenium" +artifactId = "selenium-devtools-v130" +version = "4.27.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-java:4.27.0 +[[platform.java17.dependency]] +groupId = "org.seleniumhq.selenium" +artifactId = "selenium-devtools-v131" +version = "4.27.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-java:4.27.0 +[[platform.java17.dependency]] +groupId = "org.seleniumhq.selenium" +artifactId = "selenium-devtools-v85" +version = "4.27.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-java:4.27.0 +[[platform.java17.dependency]] +groupId = "org.seleniumhq.selenium" +artifactId = "selenium-edge-driver" +version = "4.27.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-java:4.27.0 +[[platform.java17.dependency]] +groupId = "org.seleniumhq.selenium" +artifactId = "selenium-firefox-driver" +version = "4.27.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-firefox-driver:4.27.0 +[[platform.java17.dependency]] +groupId = "org.seleniumhq.selenium" +artifactId = "selenium-http" +version = "4.27.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-java:4.27.0 +[[platform.java17.dependency]] +groupId = "org.seleniumhq.selenium" +artifactId = "selenium-ie-driver" +version = "4.27.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-java:4.27.0 +[[platform.java17.dependency]] +groupId = "org.seleniumhq.selenium" +artifactId = "selenium-remote-driver" +version = "4.27.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.27.0 +[[platform.java17.dependency]] +groupId = "com.google.guava" +artifactId = "guava" +version = "33.3.1-jre" + +# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.27.0 +[[platform.java17.dependency]] +groupId = "net.bytebuddy" +artifactId = "byte-buddy" +version = "1.15.10" + +# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.27.0 +[[platform.java17.dependency]] +groupId = "org.seleniumhq.selenium" +artifactId = "selenium-os" +version = "4.27.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-java:4.27.0 +[[platform.java17.dependency]] +groupId = "org.seleniumhq.selenium" +artifactId = "selenium-safari-driver" +version = "4.27.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-java:4.27.0 +[[platform.java17.dependency]] +groupId = "org.seleniumhq.selenium" +artifactId = "selenium-support" +version = "4.27.0" + diff --git a/ballerina/Dependencies.toml b/ballerina/Dependencies.toml index 1c5fdab..5d1d509 100644 --- a/ballerina/Dependencies.toml +++ b/ballerina/Dependencies.toml @@ -7,18 +7,6 @@ dependencies-toml-version = "2" distribution-version = "2201.10.2" -[[package]] -org = "ballerina" -name = "io" -version = "1.6.1" -dependencies = [ - {org = "ballerina", name = "jballerina.java"}, - {org = "ballerina", name = "lang.value"} -] -modules = [ - {org = "ballerina", packageName = "io", moduleName = "io"} -] - [[package]] org = "ballerina" name = "jballerina.java" @@ -38,14 +26,6 @@ modules = [ {org = "ballerina", packageName = "jballerina.java.arrays", moduleName = "jballerina.java.arrays"} ] -[[package]] -org = "ballerina" -name = "lang.value" -version = "0.0.0" -dependencies = [ - {org = "ballerina", name = "jballerina.java"} -] - [[package]] org = "ballerina" name = "observe" @@ -71,7 +51,6 @@ org = "xlibb" name = "selenium" version = "0.1.0" dependencies = [ - {org = "ballerina", name = "io"}, {org = "ballerina", name = "jballerina.java"}, {org = "ballerina", name = "jballerina.java.arrays"}, {org = "ballerinai", name = "observe"} diff --git a/ballerina/Module.md b/ballerina/Module.md index aedb090..79994d7 100644 --- a/ballerina/Module.md +++ b/ballerina/Module.md @@ -16,17 +16,10 @@ import xlibb/selenium.org.openqa.selenium.firefox; public function main() { - // Web driver for Chrome browsers - chrome:ChromeDriver driver1 = chrome:newChromeDriver1(); - - // Web driver for Firefox browsers - firefox:FirefoxDriver driver2 = firefox:newFirefoxDriver1(); - - // Webdriver for edge browsers - edge:EdgeDriver driver3 = edge:newEdgeDriver1(); - - // Web driver for Safari browsers - safari:SafariDriver driver4 = safari:newSafariDriver1(); + chrome:ChromeDriver driver1 = chrome:newChromeDriver1(); // Web driver for Chrome browsers + firefox:FirefoxDriver driver2 = firefox:newFirefoxDriver1(); // Web driver for Firefox browsers + edge:EdgeDriver driver3 = edge:newEdgeDriver1(); // Webdriver for edge browsers + safari:SafariDriver driver4 = safari:newSafariDriver1(); // Web driver for Safari browsers } ``` @@ -50,6 +43,10 @@ public function main() { A locator is a way to identify elements on a page. Selenium provides support for several location strategies in WebDriver, such as class name, ID, CSS selector, name, tag name, and XPath. +`WebElement` class: Represents an element in the DOM; allows interaction (e.g., click, send keys). + +`By` class: Locator strategies for finding elements (e.g., By_id, By_name, By_xpath). + ```html
@@ -79,19 +76,45 @@ public function main() { #### Fetching data over any web element +To fetch data from a web element in Selenium, you can interact with it using various methods depending on the type of data you need. + +1. Text of an element (e.g., a paragraph or label): + ```ballerina string labelText = driver.findElement(selenium:By_className("input-label")).getText(); -io:println(labelText); // outputs: 'Search:' +io:println(labelText); ``` +2. Attribute value (e.g., value of an input field or the href attribute of a link): + +```ballerina +string value = driver.findElement(selenium:By_id("elementId")).getAttribute("value"); // For input fields +string href = driver.findElement(selenium:By_tagName("a")).getAttribute("href"); // For links +``` + + +3. Checking if an element is displayed/enabled/selected: + +```ballerina +selenium:WebElement element = driver.findElement(selenium:By_id("elementId")); +boolean isDisplayed = element.isDisplayed(); +boolean isEnabled = element.isEnabled(); +boolean isSelected = element.isSelected(); +``` + + #### Sending user inputs to web element +To send user inputs to web elements, you can use the sendKeys() method, which simulates typing into text-based input fields (like textboxes, textareas, etc.). + ```ballerina check driver.findElement(selenium:By_className("search-box")).sendKeys(["ballerina"]); ``` #### Performing Click event +To perform a click event on a web element, you can use the click() method on the WebElement object. This is commonly used to simulate clicking on buttons, links, checkboxes, radio buttons, or any other clickable elements. + ```ballerina driver.findElement(selenium:By_className("submit-btn")).click(); ``` @@ -133,30 +156,28 @@ Selenium IDE is a handy tool for finding locators for web elements. Here's how t 1. Install Selenium IDE: Download and install the Selenium IDE extension for your browser (Chrome or Firefox) [here](https://www.selenium.dev/selenium-ide/). 2. Launch Selenium IDE: Open the Selenium IDE extension from your browser's toolbar. -new project - side - 3. Start a New Project: Click on Create a New Project and name your project. -start recording - side +new project - side 4. Start Recording: - Click on the Record a New Test in a New Project option. - Enter the URL of the web application you want to test. - Selenium IDE will open the URL in a new tab and start recording your actions. -5. Perform Actions on the Webpage: Interact with the web elements (e.g., click buttons, fill out forms) on the page. Selenium IDE will record these actions as steps in your test case. -6. View Recorded Steps: Once done, stop the recording. The recorded steps will appear in the Selenium IDE window. Each step will include information about the action and the locator used. -find locators +start recording - side +5. Perform Actions on the Webpage: Interact with the web elements (e.g., click buttons, fill out forms) on the page. Selenium IDE will record these actions as steps in your test case. +6. View Recorded Steps: Once done, stop the recording. The recorded steps will appear in the Selenium IDE window. Each step will include information about the action and the locator used. 7. Inspect Locators: - In the list of recorded steps, click on a step to view details. - The Target field shows the locator for the web element (e.g., XPath, ID, Name, CSS selector, etc.). - You can switch between different locator strategies by clicking the dropdown next to the locator. Selenium IDE will display alternatives if available. - +find locators ## Examples The `Selenium` connector provides practical examples illustrating usage in various scenarios. Explore these [examples](https://github.com/xlibb/module-selenium/tree/main/examples/), covering the following use cases: -[//]: # (TODO: Add examples) +1. [Automating the Filling of Student Application Forms for a Web Application.](https://github.com/xlibb/module-selenium/tree/main/examples/student_appliation_form_filling). diff --git a/ballerina/Package.md b/ballerina/Package.md index 1f4ba23..79994d7 100644 --- a/ballerina/Package.md +++ b/ballerina/Package.md @@ -1,17 +1,183 @@ ## Overview -[//]: # (TODO: Add overview mentioning the purpose of the module, supported REST API versions, and other high-level details.) +This module automates web applications across various browsers. Selenium interacts with web browsers directly, simulating user actions such as clicks, text input, page navigation, and more. -## Setup guide +## Quickstart -[//]: # (TODO: Add detailed steps to obtain credentials and configure the module.) +#### Web driver -## Quickstart +The core component of Selenium is the WebDriver. It is an interface for controlling a web browser instance and communicates with the browser through its native API. You can create a web driver based on the browser you want to automate. + +```ballerina +import xlibb/selenium.org.openqa.selenium.chrome; +import xlibb/selenium.org.openqa.selenium.safari; +import xlibb/selenium.org.openqa.selenium.edge; +import xlibb/selenium.org.openqa.selenium.firefox; + +public function main() { + + chrome:ChromeDriver driver1 = chrome:newChromeDriver1(); // Web driver for Chrome browsers + firefox:FirefoxDriver driver2 = firefox:newFirefoxDriver1(); // Web driver for Firefox browsers + edge:EdgeDriver driver3 = edge:newEdgeDriver1(); // Webdriver for edge browsers + safari:SafariDriver driver4 = safari:newSafariDriver1(); // Web driver for Safari browsers + +} +``` + +#### Launching website. + +```ballerina +import xlibb/selenium.org.openqa.selenium.chrome; + +public function main() { + + chrome:ChromeDriver driver = chrome:newChromeDriver1(); + + // Navigate to the desired website. + driver.get("https://central.ballerina.io/"); + +} +``` + +#### Locating elements + +A locator is a way to identify elements on a page. Selenium provides support for several location strategies in WebDriver, such as class name, ID, CSS selector, name, tag name, and XPath. + +`WebElement` class: Represents an element in the DOM; allows interaction (e.g., click, send keys). + +`By` class: Locator strategies for finding elements (e.g., By_id, By_name, By_xpath). + +```html + + + + +
+``` + +```ballerina +import xlibb/selenium.org.openqa.selenium.chrome; +import xlibb/selenium.org.openqa.selenium; +import ballerina/io; + +public function main() { + + chrome:ChromeDriver driver = chrome:newChromeDriver1(); + selenium:WebElement form = driver.findElement(selenium:By_id("form")); // By ID + selenium:WebElement searchboxByName = driver.findElement(selenium:By_name("q")); // By Name + selenium:WebElement searchboxbyCss = driver.findElement(selenium:By_cssSelector("#form .search-box")); // By CSS Selector + selenium:WebElement searchboxbyXpath = driver.findElement(selenium:By_xpath("//input[@id='search']")); // By XPath + selenium:WebElement searchboxbyClassName = driver.findElement(selenium:By_className("search-box")); // By Class Name + selenium:WebElement searchboxbyTagName = driver.findElement(selenium:By_tagName("input")); // By Tag Name + selenium:WebElement nestedElement = form.findElement(selenium:By_name("q")); // Locating a WebElement inside another WebElement +} + +``` + +#### Fetching data over any web element + +To fetch data from a web element in Selenium, you can interact with it using various methods depending on the type of data you need. + +1. Text of an element (e.g., a paragraph or label): + +```ballerina +string labelText = driver.findElement(selenium:By_className("input-label")).getText(); +io:println(labelText); +``` + +2. Attribute value (e.g., value of an input field or the href attribute of a link): + +```ballerina +string value = driver.findElement(selenium:By_id("elementId")).getAttribute("value"); // For input fields +string href = driver.findElement(selenium:By_tagName("a")).getAttribute("href"); // For links +``` + + +3. Checking if an element is displayed/enabled/selected: + +```ballerina +selenium:WebElement element = driver.findElement(selenium:By_id("elementId")); +boolean isDisplayed = element.isDisplayed(); +boolean isEnabled = element.isEnabled(); +boolean isSelected = element.isSelected(); +``` + + +#### Sending user inputs to web element + +To send user inputs to web elements, you can use the sendKeys() method, which simulates typing into text-based input fields (like textboxes, textareas, etc.). + +```ballerina +check driver.findElement(selenium:By_className("search-box")).sendKeys(["ballerina"]); +``` + +#### Performing Click event + +To perform a click event on a web element, you can use the click() method on the WebElement object. This is commonly used to simulate clicking on buttons, links, checkboxes, radio buttons, or any other clickable elements. + +```ballerina +driver.findElement(selenium:By_className("submit-btn")).click(); +``` + +#### Closing the browser + +```ballerina +driver.quit(); +``` + +#### Complete example + +The below code will do the following, +1. Opens Chrome browser. +2. Navigates to ballerina central page. +3. Search for 'http' module. + +```ballerina +import xlibb/selenium.org.openqa.selenium.chrome; +import xlibb/selenium.org.openqa.selenium; +import ballerina/lang.runtime; + +public function main() returns error? { + chrome:ChromeDriver driver = chrome:newChromeDriver1(); + driver.get("https://central.ballerina.io/"); + + // Wait for some time, till the page completely loads. + runtime:sleep(2); + + check driver.findElement(selenium:By_id("downshift-search-bar-input")).sendKeys(["http"]); + driver.findElement(selenium:By_className("Search_searchButton__iLPLB")).click(); +} +``` + +#### Selenium IDE for Finding Locators + +Selenium IDE is a handy tool for finding locators for web elements. Here's how to use it effectively: + +1. Install Selenium IDE: Download and install the Selenium IDE extension for your browser (Chrome or Firefox) [here](https://www.selenium.dev/selenium-ide/). +2. Launch Selenium IDE: Open the Selenium IDE extension from your browser's toolbar. + +3. Start a New Project: Click on Create a New Project and name your project. + +new project - side + +4. Start Recording: + - Click on the Record a New Test in a New Project option. + - Enter the URL of the web application you want to test. + - Selenium IDE will open the URL in a new tab and start recording your actions. + +start recording - side + +5. Perform Actions on the Webpage: Interact with the web elements (e.g., click buttons, fill out forms) on the page. Selenium IDE will record these actions as steps in your test case. +6. View Recorded Steps: Once done, stop the recording. The recorded steps will appear in the Selenium IDE window. Each step will include information about the action and the locator used. +7. Inspect Locators: + - In the list of recorded steps, click on a step to view details. + - The Target field shows the locator for the web element (e.g., XPath, ID, Name, CSS selector, etc.). + - You can switch between different locator strategies by clicking the dropdown next to the locator. Selenium IDE will display alternatives if available. -[//]: # (TODO: Add a quickstart guide to demonstrate a basic functionality of the module, including sample code snippets.) +find locators ## Examples The `Selenium` connector provides practical examples illustrating usage in various scenarios. Explore these [examples](https://github.com/xlibb/module-selenium/tree/main/examples/), covering the following use cases: -[//]: # (TODO: Add examples) +1. [Automating the Filling of Student Application Forms for a Web Application.](https://github.com/xlibb/module-selenium/tree/main/examples/student_appliation_form_filling). diff --git a/ballerina/client.bal b/ballerina/client.bal index fbab8cd..2c69ef5 100644 --- a/ballerina/client.bal +++ b/ballerina/client.bal @@ -12,9 +12,4 @@ // "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY // KIND, either express or implied. See the License for the // specific language governing permissions and limitations -// under the License. -import ballerina/io; - -public function main() { - io:println("works"); -} \ No newline at end of file +// under the License. \ No newline at end of file diff --git a/examples/README.md b/examples/README.md deleted file mode 100644 index 54c5f19..0000000 --- a/examples/README.md +++ /dev/null @@ -1,46 +0,0 @@ -# Examples - -The `xlibb/selenium` connector provides practical examples illustrating usage in various scenarios. - -[//]: # (TODO: Add examples) -1. -2. - -## Prerequisites - -[//]: # (TODO: Add prerequisites) - -## Running an example - -Execute the following commands to build an example from the source: - -* To build an example: - - ```bash - bal build - ``` - -* To run an example: - - ```bash - bal run - ``` - -## Building the examples with the local module - -**Warning**: Due to the absence of support for reading local repositories for single Ballerina files, the Bala of the module is manually written to the central repository as a workaround. Consequently, the bash script may modify your local Ballerina repositories. - -Execute the following commands to build all the examples against the changes you have made to the module locally: - -* To build all the examples: - - ```bash - ./build.sh build - ``` - -* To run all the examples: - - ```bash - ./build.sh run - ``` - \ No newline at end of file diff --git a/examples/student_application_form_filling/Ballerina.toml b/examples/student_application_form_filling/Ballerina.toml index b152654..b4fedc2 100644 --- a/examples/student_application_form_filling/Ballerina.toml +++ b/examples/student_application_form_filling/Ballerina.toml @@ -6,9 +6,3 @@ distribution = "2201.10.2" [build-options] observabilityIncluded = true - -[[dependency]] -org = "dharshi" -name = "selenium" -version = "0.1.0" -repository = "local" \ No newline at end of file diff --git a/examples/student_application_form_filling/README.md b/examples/student_application_form_filling/README.md index e69de29..a2eb075 100644 --- a/examples/student_application_form_filling/README.md +++ b/examples/student_application_form_filling/README.md @@ -0,0 +1,14 @@ +# Automating the Filling of Student Application Form. + +## Overview +This guide demonstrates automating the process of filling out student application forms using the Ballerina Selenium module. + +## Implementation +For this task, we use sample JSON data available in [this file](./modules/resources/data.json). The example project showcases how to automate the data entry process by populating this information into [this web application](https://bal-selenium.choreoapps.dev/). + +## Run the Example + +```ballerina +cd .\examples\student_application_form_filling +bal run +``` \ No newline at end of file diff --git a/examples/student_application_form_filling/main.bal b/examples/student_application_form_filling/main.bal index aa3eff9..52eb884 100644 --- a/examples/student_application_form_filling/main.bal +++ b/examples/student_application_form_filling/main.bal @@ -1,15 +1,15 @@ import ballerina/io; import ballerina/lang.runtime; -import dharshi/selenium.org.openqa.selenium; -import dharshi/selenium.org.openqa.selenium.chrome; +import xlibb/selenium.org.openqa.selenium; +import xlibb/selenium.org.openqa.selenium.chrome; public function main() returns error? { Data data = check getData(); chrome:ChromeDriver driver = chrome:newChromeDriver1(); - driver.get("https://ipa-usecase-2-demo-frontend.vercel.app/"); + driver.get("https://bal-selenium.choreoapps.dev/"); runtime:sleep(2); From 72e6572a92984368f64d2b6c42215427bb54f2b7 Mon Sep 17 00:00:00 2001 From: dharshi Date: Tue, 3 Dec 2024 10:34:33 +0530 Subject: [PATCH 08/43] update readme --- README.md | 27 --------------------------- 1 file changed, 27 deletions(-) diff --git a/README.md b/README.md index 346865f..3d802ff 100644 --- a/README.md +++ b/README.md @@ -158,33 +158,6 @@ public function main() returns error? { } ``` -#### Selenium IDE for Finding Locators - -Selenium IDE is a handy tool for finding locators for web elements. Here's how to use it effectively: - -1. Install Selenium IDE: Download and install the Selenium IDE extension for your browser (Chrome or Firefox) [here](https://www.selenium.dev/selenium-ide/). -2. Launch Selenium IDE: Open the Selenium IDE extension from your browser's toolbar. - -3. Start a New Project: Click on Create a New Project and name your project. - -new project - side - -4. Start Recording: - - Click on the Record a New Test in a New Project option. - - Enter the URL of the web application you want to test. - - Selenium IDE will open the URL in a new tab and start recording your actions. - -start recording - side - -5. Perform Actions on the Webpage: Interact with the web elements (e.g., click buttons, fill out forms) on the page. Selenium IDE will record these actions as steps in your test case. -6. View Recorded Steps: Once done, stop the recording. The recorded steps will appear in the Selenium IDE window. Each step will include information about the action and the locator used. -7. Inspect Locators: - - In the list of recorded steps, click on a step to view details. - - The Target field shows the locator for the web element (e.g., XPath, ID, Name, CSS selector, etc.). - - You can switch between different locator strategies by clicking the dropdown next to the locator. Selenium IDE will display alternatives if available. - -find locators - ## Examples The `Selenium` connector provides practical examples illustrating usage in various scenarios. Explore these [examples](https://github.com/xlibb/module-selenium/tree/main/examples/), covering the following use cases: From 93453681fbd76201d749e34f6293f0b68dc3a8ac Mon Sep 17 00:00:00 2001 From: dharshi Date: Wed, 4 Dec 2024 14:31:19 +0530 Subject: [PATCH 09/43] add wso2 header --- ballerina/modules/java.io/IOException.bal | 16 ++++++++++++++- ballerina/modules/java.lang/Boolean.bal | 20 +++++++++++-------- ballerina/modules/java.lang/CharSequence.bal | 20 +++++++++++-------- ballerina/modules/java.lang/Class.bal | 20 +++++++++++-------- .../java.lang/InterruptedException.bal | 16 ++++++++++++++- ballerina/modules/java.lang/Object.bal | 16 +++++++++++++++ ballerina/modules/java.net/URL.bal | 20 +++++++++++-------- ballerina/modules/java.nio.file/Path.bal | 20 +++++++++++-------- .../modules/java.util.function/BiFunction.bal | 20 +++++++++++-------- .../modules/java.util.function/Predicate.bal | 20 +++++++++++-------- .../modules/java.util.function/Supplier.bal | 20 +++++++++++-------- ballerina/modules/java.util.logging/Level.bal | 20 +++++++++++-------- ballerina/modules/java.util/Collection.bal | 20 +++++++++++-------- ballerina/modules/java.util/List.bal | 20 +++++++++++-------- ballerina/modules/java.util/Map.bal | 20 +++++++++++-------- ballerina/modules/java.util/Optional.bal | 20 +++++++++++-------- ballerina/modules/java.util/Set.bal | 20 +++++++++++-------- .../modules/org.openqa.selenium.bidi/BiDi.bal | 20 +++++++++++-------- .../ChromeDriver.bal | 16 +++++++++++++++ .../ChromeDriverService.bal | 20 +++++++++++-------- .../ChromeOptions.bal | 20 +++++++++++-------- .../ChromiumDriver.bal | 16 +++++++++++++++ .../ChromiumNetworkConditions.bal | 20 +++++++++++-------- .../org.openqa.selenium.devtools/DevTools.bal | 20 +++++++++++-------- .../org.openqa.selenium.edge/EdgeDriver.bal | 16 +++++++++++++++ .../EdgeDriverService.bal | 20 +++++++++++-------- .../org.openqa.selenium.edge/EdgeOptions.bal | 20 +++++++++++-------- .../FederatedCredentialManagementDialog.bal | 20 +++++++++++-------- .../FirefoxCommandContext.bal | 20 +++++++++++-------- .../FirefoxDriver.bal | 16 +++++++++++++++ .../FirefoxDriverService.bal | 20 +++++++++++-------- .../FirefoxOptions.bal | 20 +++++++++++-------- .../LocalStorage.bal | 20 +++++++++++-------- .../org.openqa.selenium.html5/Location.bal | 20 +++++++++++-------- .../SessionStorage.bal | 20 +++++++++++-------- .../org.openqa.selenium.logging/EventType.bal | 20 +++++++++++-------- .../ConnectionType.bal | 20 +++++++++++-------- .../PrintOptions.bal | 20 +++++++++++-------- .../ClientConfig.bal | 20 +++++++++++-------- .../DriverService.bal | 20 +++++++++++-------- .../CommandExecutor.bal | 20 +++++++++++-------- .../ErrorHandler.bal | 20 +++++++++++-------- .../FileDetector.bal | 20 +++++++++++-------- .../org.openqa.selenium.remote/Network.bal | 20 +++++++++++-------- .../RemoteWebDriver.bal | 16 +++++++++++++++ .../RemoteWebDriverBuilder.bal | 20 +++++++++++-------- .../org.openqa.selenium.remote/Script.bal | 20 +++++++++++-------- .../org.openqa.selenium.remote/SessionId.bal | 20 +++++++++++-------- .../SafariDriver.bal | 16 +++++++++++++++ .../SafariDriverService.bal | 20 +++++++++++-------- .../SafariOptions.bal | 20 +++++++++++-------- .../VirtualAuthenticator.bal | 20 +++++++++++-------- .../VirtualAuthenticatorOptions.bal | 20 +++++++++++-------- ballerina/modules/org.openqa.selenium/By.bal | 16 +++++++++++++++ .../org.openqa.selenium/Capabilities.bal | 20 +++++++++++-------- .../modules/org.openqa.selenium/Dimension.bal | 16 +++++++++++++++ .../org.openqa.selenium/Navigation.bal | 20 +++++++++++-------- .../modules/org.openqa.selenium/Options.bal | 20 +++++++++++-------- .../org.openqa.selenium/OutputType.bal | 20 +++++++++++-------- ballerina/modules/org.openqa.selenium/Pdf.bal | 20 +++++++++++-------- .../modules/org.openqa.selenium/Point.bal | 20 +++++++++++-------- .../modules/org.openqa.selenium/Rectangle.bal | 20 +++++++++++-------- .../modules/org.openqa.selenium/ScriptKey.bal | 20 +++++++++++-------- .../org.openqa.selenium/SearchContext.bal | 20 +++++++++++-------- .../org.openqa.selenium/TargetLocator.bal | 20 +++++++++++-------- .../modules/org.openqa.selenium/WebDriver.bal | 16 +++++++++++++++ .../org.openqa.selenium/WebElement.bal | 16 +++++++++++++++ .../student_application_form_filling/main.bal | 16 +++++++++++++++ .../records.bal | 16 +++++++++++++++ .../utils.bal | 16 +++++++++++++++ 70 files changed, 902 insertions(+), 434 deletions(-) diff --git a/ballerina/modules/java.io/IOException.bal b/ballerina/modules/java.io/IOException.bal index e7748f8..34c4806 100644 --- a/ballerina/modules/java.io/IOException.bal +++ b/ballerina/modules/java.io/IOException.bal @@ -1,4 +1,18 @@ -// Ballerina error type for `java.io.IOException`. +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). +// +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. public const IOEXCEPTION = "IOException"; diff --git a/ballerina/modules/java.lang/Boolean.bal b/ballerina/modules/java.lang/Boolean.bal index caeb04f..4e241fa 100644 --- a/ballerina/modules/java.lang/Boolean.bal +++ b/ballerina/modules/java.lang/Boolean.bal @@ -1,14 +1,18 @@ -// This is an empty Ballerina class autogenerated to represent the `java.lang.Boolean` Java class. +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). // -// If you need the implementation of this class generated, please use the following command. +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at // -// $ bal bindgen [(-cp|--classpath) ...] -// [(-mvn|--maven) ::] -// [(-o|--output) ] -// [--public] -// (...) +// http://www.apache.org/licenses/LICENSE-2.0 // -// E.g. $ bal bindgen java.lang.Boolean +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. import ballerina/jballerina.java; diff --git a/ballerina/modules/java.lang/CharSequence.bal b/ballerina/modules/java.lang/CharSequence.bal index ad5f437..250a703 100644 --- a/ballerina/modules/java.lang/CharSequence.bal +++ b/ballerina/modules/java.lang/CharSequence.bal @@ -1,14 +1,18 @@ -// This is an empty Ballerina class autogenerated to represent the `java.lang.CharSequence` Java interface. +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). // -// If you need the implementation of this class generated, please use the following command. +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at // -// $ bal bindgen [(-cp|--classpath) ...] -// [(-mvn|--maven) ::] -// [(-o|--output) ] -// [--public] -// (...) +// http://www.apache.org/licenses/LICENSE-2.0 // -// E.g. $ bal bindgen java.lang.CharSequence +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. import ballerina/jballerina.java; diff --git a/ballerina/modules/java.lang/Class.bal b/ballerina/modules/java.lang/Class.bal index 098cf03..5e36048 100644 --- a/ballerina/modules/java.lang/Class.bal +++ b/ballerina/modules/java.lang/Class.bal @@ -1,14 +1,18 @@ -// This is an empty Ballerina class autogenerated to represent the `java.lang.Class` Java class. +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). // -// If you need the implementation of this class generated, please use the following command. +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at // -// $ bal bindgen [(-cp|--classpath) ...] -// [(-mvn|--maven) ::] -// [(-o|--output) ] -// [--public] -// (...) +// http://www.apache.org/licenses/LICENSE-2.0 // -// E.g. $ bal bindgen java.lang.Class +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. import ballerina/jballerina.java; diff --git a/ballerina/modules/java.lang/InterruptedException.bal b/ballerina/modules/java.lang/InterruptedException.bal index 17cae57..30957fa 100644 --- a/ballerina/modules/java.lang/InterruptedException.bal +++ b/ballerina/modules/java.lang/InterruptedException.bal @@ -1,4 +1,18 @@ -// Ballerina error type for `java.lang.InterruptedException`. +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). +// +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. public const INTERRUPTEDEXCEPTION = "InterruptedException"; diff --git a/ballerina/modules/java.lang/Object.bal b/ballerina/modules/java.lang/Object.bal index 4ec07a1..c460fcf 100644 --- a/ballerina/modules/java.lang/Object.bal +++ b/ballerina/modules/java.lang/Object.bal @@ -1,3 +1,19 @@ +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). +// +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + import ballerina/jballerina.java; # Ballerina class mapping for the Java `java.lang.Object` class. diff --git a/ballerina/modules/java.net/URL.bal b/ballerina/modules/java.net/URL.bal index 3489f2e..bf97f44 100644 --- a/ballerina/modules/java.net/URL.bal +++ b/ballerina/modules/java.net/URL.bal @@ -1,14 +1,18 @@ -// This is an empty Ballerina class autogenerated to represent the `java.net.URL` Java class. +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). // -// If you need the implementation of this class generated, please use the following command. +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at // -// $ bal bindgen [(-cp|--classpath) ...] -// [(-mvn|--maven) ::] -// [(-o|--output) ] -// [--public] -// (...) +// http://www.apache.org/licenses/LICENSE-2.0 // -// E.g. $ bal bindgen java.net.URL +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. import ballerina/jballerina.java; diff --git a/ballerina/modules/java.nio.file/Path.bal b/ballerina/modules/java.nio.file/Path.bal index 337d479..df6a394 100644 --- a/ballerina/modules/java.nio.file/Path.bal +++ b/ballerina/modules/java.nio.file/Path.bal @@ -1,14 +1,18 @@ -// This is an empty Ballerina class autogenerated to represent the `java.nio.file.Path` Java interface. +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). // -// If you need the implementation of this class generated, please use the following command. +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at // -// $ bal bindgen [(-cp|--classpath) ...] -// [(-mvn|--maven) ::] -// [(-o|--output) ] -// [--public] -// (...) +// http://www.apache.org/licenses/LICENSE-2.0 // -// E.g. $ bal bindgen java.nio.file.Path +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. import ballerina/jballerina.java; diff --git a/ballerina/modules/java.util.function/BiFunction.bal b/ballerina/modules/java.util.function/BiFunction.bal index 4dbeafa..51ff74b 100644 --- a/ballerina/modules/java.util.function/BiFunction.bal +++ b/ballerina/modules/java.util.function/BiFunction.bal @@ -1,14 +1,18 @@ -// This is an empty Ballerina class autogenerated to represent the `java.util.function.BiFunction` Java interface. +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). // -// If you need the implementation of this class generated, please use the following command. +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at // -// $ bal bindgen [(-cp|--classpath) ...] -// [(-mvn|--maven) ::] -// [(-o|--output) ] -// [--public] -// (...) +// http://www.apache.org/licenses/LICENSE-2.0 // -// E.g. $ bal bindgen java.util.function.BiFunction +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. import ballerina/jballerina.java; diff --git a/ballerina/modules/java.util.function/Predicate.bal b/ballerina/modules/java.util.function/Predicate.bal index 4eb55a0..d44a977 100644 --- a/ballerina/modules/java.util.function/Predicate.bal +++ b/ballerina/modules/java.util.function/Predicate.bal @@ -1,14 +1,18 @@ -// This is an empty Ballerina class autogenerated to represent the `java.util.function.Predicate` Java interface. +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). // -// If you need the implementation of this class generated, please use the following command. +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at // -// $ bal bindgen [(-cp|--classpath) ...] -// [(-mvn|--maven) ::] -// [(-o|--output) ] -// [--public] -// (...) +// http://www.apache.org/licenses/LICENSE-2.0 // -// E.g. $ bal bindgen java.util.function.Predicate +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. import ballerina/jballerina.java; diff --git a/ballerina/modules/java.util.function/Supplier.bal b/ballerina/modules/java.util.function/Supplier.bal index 56a80bc..aa63a74 100644 --- a/ballerina/modules/java.util.function/Supplier.bal +++ b/ballerina/modules/java.util.function/Supplier.bal @@ -1,14 +1,18 @@ -// This is an empty Ballerina class autogenerated to represent the `java.util.function.Supplier` Java interface. +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). // -// If you need the implementation of this class generated, please use the following command. +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at // -// $ bal bindgen [(-cp|--classpath) ...] -// [(-mvn|--maven) ::] -// [(-o|--output) ] -// [--public] -// (...) +// http://www.apache.org/licenses/LICENSE-2.0 // -// E.g. $ bal bindgen java.util.function.Supplier +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. import ballerina/jballerina.java; diff --git a/ballerina/modules/java.util.logging/Level.bal b/ballerina/modules/java.util.logging/Level.bal index 4ddb716..682e317 100644 --- a/ballerina/modules/java.util.logging/Level.bal +++ b/ballerina/modules/java.util.logging/Level.bal @@ -1,14 +1,18 @@ -// This is an empty Ballerina class autogenerated to represent the `java.util.logging.Level` Java class. +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). // -// If you need the implementation of this class generated, please use the following command. +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at // -// $ bal bindgen [(-cp|--classpath) ...] -// [(-mvn|--maven) ::] -// [(-o|--output) ] -// [--public] -// (...) +// http://www.apache.org/licenses/LICENSE-2.0 // -// E.g. $ bal bindgen java.util.logging.Level +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. import ballerina/jballerina.java; diff --git a/ballerina/modules/java.util/Collection.bal b/ballerina/modules/java.util/Collection.bal index c43395e..8ff80ba 100644 --- a/ballerina/modules/java.util/Collection.bal +++ b/ballerina/modules/java.util/Collection.bal @@ -1,14 +1,18 @@ -// This is an empty Ballerina class autogenerated to represent the `java.util.Collection` Java interface. +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). // -// If you need the implementation of this class generated, please use the following command. +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at // -// $ bal bindgen [(-cp|--classpath) ...] -// [(-mvn|--maven) ::] -// [(-o|--output) ] -// [--public] -// (...) +// http://www.apache.org/licenses/LICENSE-2.0 // -// E.g. $ bal bindgen java.util.Collection +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. import ballerina/jballerina.java; diff --git a/ballerina/modules/java.util/List.bal b/ballerina/modules/java.util/List.bal index 874dbe1..742f976 100644 --- a/ballerina/modules/java.util/List.bal +++ b/ballerina/modules/java.util/List.bal @@ -1,14 +1,18 @@ -// This is an empty Ballerina class autogenerated to represent the `java.util.List` Java interface. +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). // -// If you need the implementation of this class generated, please use the following command. +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at // -// $ bal bindgen [(-cp|--classpath) ...] -// [(-mvn|--maven) ::] -// [(-o|--output) ] -// [--public] -// (...) +// http://www.apache.org/licenses/LICENSE-2.0 // -// E.g. $ bal bindgen java.util.List +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. import ballerina/jballerina.java; diff --git a/ballerina/modules/java.util/Map.bal b/ballerina/modules/java.util/Map.bal index 3162de3..ad25a98 100644 --- a/ballerina/modules/java.util/Map.bal +++ b/ballerina/modules/java.util/Map.bal @@ -1,14 +1,18 @@ -// This is an empty Ballerina class autogenerated to represent the `java.util.Map` Java interface. +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). // -// If you need the implementation of this class generated, please use the following command. +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at // -// $ bal bindgen [(-cp|--classpath) ...] -// [(-mvn|--maven) ::] -// [(-o|--output) ] -// [--public] -// (...) +// http://www.apache.org/licenses/LICENSE-2.0 // -// E.g. $ bal bindgen java.util.Map +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. import ballerina/jballerina.java; diff --git a/ballerina/modules/java.util/Optional.bal b/ballerina/modules/java.util/Optional.bal index cc89314..c7d48df 100644 --- a/ballerina/modules/java.util/Optional.bal +++ b/ballerina/modules/java.util/Optional.bal @@ -1,14 +1,18 @@ -// This is an empty Ballerina class autogenerated to represent the `java.util.Optional` Java class. +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). // -// If you need the implementation of this class generated, please use the following command. +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at // -// $ bal bindgen [(-cp|--classpath) ...] -// [(-mvn|--maven) ::] -// [(-o|--output) ] -// [--public] -// (...) +// http://www.apache.org/licenses/LICENSE-2.0 // -// E.g. $ bal bindgen java.util.Optional +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. import ballerina/jballerina.java; diff --git a/ballerina/modules/java.util/Set.bal b/ballerina/modules/java.util/Set.bal index 9f14e3f..a85f6e8 100644 --- a/ballerina/modules/java.util/Set.bal +++ b/ballerina/modules/java.util/Set.bal @@ -1,14 +1,18 @@ -// This is an empty Ballerina class autogenerated to represent the `java.util.Set` Java interface. +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). // -// If you need the implementation of this class generated, please use the following command. +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at // -// $ bal bindgen [(-cp|--classpath) ...] -// [(-mvn|--maven) ::] -// [(-o|--output) ] -// [--public] -// (...) +// http://www.apache.org/licenses/LICENSE-2.0 // -// E.g. $ bal bindgen java.util.Set +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. import ballerina/jballerina.java; diff --git a/ballerina/modules/org.openqa.selenium.bidi/BiDi.bal b/ballerina/modules/org.openqa.selenium.bidi/BiDi.bal index c0b905a..4fddcc3 100644 --- a/ballerina/modules/org.openqa.selenium.bidi/BiDi.bal +++ b/ballerina/modules/org.openqa.selenium.bidi/BiDi.bal @@ -1,14 +1,18 @@ -// This is an empty Ballerina class autogenerated to represent the `org.openqa.selenium.bidi.BiDi` Java class. +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). // -// If you need the implementation of this class generated, please use the following command. +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at // -// $ bal bindgen [(-cp|--classpath) ...] -// [(-mvn|--maven) ::] -// [(-o|--output) ] -// [--public] -// (...) +// http://www.apache.org/licenses/LICENSE-2.0 // -// E.g. $ bal bindgen org.openqa.selenium.bidi.BiDi +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. import ballerina/jballerina.java; diff --git a/ballerina/modules/org.openqa.selenium.chrome/ChromeDriver.bal b/ballerina/modules/org.openqa.selenium.chrome/ChromeDriver.bal index a53e927..359eec1 100644 --- a/ballerina/modules/org.openqa.selenium.chrome/ChromeDriver.bal +++ b/ballerina/modules/org.openqa.selenium.chrome/ChromeDriver.bal @@ -1,3 +1,19 @@ +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). +// +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + import selenium.java.io as javaio; import selenium.java.lang as javalang; import selenium.java.nio.file as javaniofile; diff --git a/ballerina/modules/org.openqa.selenium.chrome/ChromeDriverService.bal b/ballerina/modules/org.openqa.selenium.chrome/ChromeDriverService.bal index 984ebb8..6fb908a 100644 --- a/ballerina/modules/org.openqa.selenium.chrome/ChromeDriverService.bal +++ b/ballerina/modules/org.openqa.selenium.chrome/ChromeDriverService.bal @@ -1,14 +1,18 @@ -// This is an empty Ballerina class autogenerated to represent the `org.openqa.selenium.chrome.ChromeDriverService` Java class. +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). // -// If you need the implementation of this class generated, please use the following command. +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at // -// $ bal bindgen [(-cp|--classpath) ...] -// [(-mvn|--maven) ::] -// [(-o|--output) ] -// [--public] -// (...) +// http://www.apache.org/licenses/LICENSE-2.0 // -// E.g. $ bal bindgen org.openqa.selenium.chrome.ChromeDriverService +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. import ballerina/jballerina.java; diff --git a/ballerina/modules/org.openqa.selenium.chrome/ChromeOptions.bal b/ballerina/modules/org.openqa.selenium.chrome/ChromeOptions.bal index d4286fe..fa2814f 100644 --- a/ballerina/modules/org.openqa.selenium.chrome/ChromeOptions.bal +++ b/ballerina/modules/org.openqa.selenium.chrome/ChromeOptions.bal @@ -1,14 +1,18 @@ -// This is an empty Ballerina class autogenerated to represent the `org.openqa.selenium.chrome.ChromeOptions` Java class. +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). // -// If you need the implementation of this class generated, please use the following command. +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at // -// $ bal bindgen [(-cp|--classpath) ...] -// [(-mvn|--maven) ::] -// [(-o|--output) ] -// [--public] -// (...) +// http://www.apache.org/licenses/LICENSE-2.0 // -// E.g. $ bal bindgen org.openqa.selenium.chrome.ChromeOptions +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. import ballerina/jballerina.java; diff --git a/ballerina/modules/org.openqa.selenium.chromium/ChromiumDriver.bal b/ballerina/modules/org.openqa.selenium.chromium/ChromiumDriver.bal index 8716da8..90c3e1e 100644 --- a/ballerina/modules/org.openqa.selenium.chromium/ChromiumDriver.bal +++ b/ballerina/modules/org.openqa.selenium.chromium/ChromiumDriver.bal @@ -1,3 +1,19 @@ +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). +// +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + import selenium.java.io as javaio; import selenium.java.lang as javalang; import selenium.java.nio.file as javaniofile; diff --git a/ballerina/modules/org.openqa.selenium.chromium/ChromiumNetworkConditions.bal b/ballerina/modules/org.openqa.selenium.chromium/ChromiumNetworkConditions.bal index 7d423be..ee7fb33 100644 --- a/ballerina/modules/org.openqa.selenium.chromium/ChromiumNetworkConditions.bal +++ b/ballerina/modules/org.openqa.selenium.chromium/ChromiumNetworkConditions.bal @@ -1,14 +1,18 @@ -// This is an empty Ballerina class autogenerated to represent the `org.openqa.selenium.chromium.ChromiumNetworkConditions` Java class. +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). // -// If you need the implementation of this class generated, please use the following command. +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at // -// $ bal bindgen [(-cp|--classpath) ...] -// [(-mvn|--maven) ::] -// [(-o|--output) ] -// [--public] -// (...) +// http://www.apache.org/licenses/LICENSE-2.0 // -// E.g. $ bal bindgen org.openqa.selenium.chromium.ChromiumNetworkConditions +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. import ballerina/jballerina.java; diff --git a/ballerina/modules/org.openqa.selenium.devtools/DevTools.bal b/ballerina/modules/org.openqa.selenium.devtools/DevTools.bal index 077c69e..9a6d6ae 100644 --- a/ballerina/modules/org.openqa.selenium.devtools/DevTools.bal +++ b/ballerina/modules/org.openqa.selenium.devtools/DevTools.bal @@ -1,14 +1,18 @@ -// This is an empty Ballerina class autogenerated to represent the `org.openqa.selenium.devtools.DevTools` Java class. +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). // -// If you need the implementation of this class generated, please use the following command. +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at // -// $ bal bindgen [(-cp|--classpath) ...] -// [(-mvn|--maven) ::] -// [(-o|--output) ] -// [--public] -// (...) +// http://www.apache.org/licenses/LICENSE-2.0 // -// E.g. $ bal bindgen org.openqa.selenium.devtools.DevTools +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. import ballerina/jballerina.java; diff --git a/ballerina/modules/org.openqa.selenium.edge/EdgeDriver.bal b/ballerina/modules/org.openqa.selenium.edge/EdgeDriver.bal index 06c48ec..966d7e0 100644 --- a/ballerina/modules/org.openqa.selenium.edge/EdgeDriver.bal +++ b/ballerina/modules/org.openqa.selenium.edge/EdgeDriver.bal @@ -1,3 +1,19 @@ +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). +// +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + import selenium.java.io as javaio; import selenium.java.lang as javalang; import selenium.java.nio.file as javaniofile; diff --git a/ballerina/modules/org.openqa.selenium.edge/EdgeDriverService.bal b/ballerina/modules/org.openqa.selenium.edge/EdgeDriverService.bal index 351329c..b8ef948 100644 --- a/ballerina/modules/org.openqa.selenium.edge/EdgeDriverService.bal +++ b/ballerina/modules/org.openqa.selenium.edge/EdgeDriverService.bal @@ -1,14 +1,18 @@ -// This is an empty Ballerina class autogenerated to represent the `org.openqa.selenium.edge.EdgeDriverService` Java class. +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). // -// If you need the implementation of this class generated, please use the following command. +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at // -// $ bal bindgen [(-cp|--classpath) ...] -// [(-mvn|--maven) ::] -// [(-o|--output) ] -// [--public] -// (...) +// http://www.apache.org/licenses/LICENSE-2.0 // -// E.g. $ bal bindgen org.openqa.selenium.edge.EdgeDriverService +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. import ballerina/jballerina.java; diff --git a/ballerina/modules/org.openqa.selenium.edge/EdgeOptions.bal b/ballerina/modules/org.openqa.selenium.edge/EdgeOptions.bal index 0fe518e..82b21aa 100644 --- a/ballerina/modules/org.openqa.selenium.edge/EdgeOptions.bal +++ b/ballerina/modules/org.openqa.selenium.edge/EdgeOptions.bal @@ -1,14 +1,18 @@ -// This is an empty Ballerina class autogenerated to represent the `org.openqa.selenium.edge.EdgeOptions` Java class. +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). // -// If you need the implementation of this class generated, please use the following command. +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at // -// $ bal bindgen [(-cp|--classpath) ...] -// [(-mvn|--maven) ::] -// [(-o|--output) ] -// [--public] -// (...) +// http://www.apache.org/licenses/LICENSE-2.0 // -// E.g. $ bal bindgen org.openqa.selenium.edge.EdgeOptions +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. import ballerina/jballerina.java; diff --git a/ballerina/modules/org.openqa.selenium.federatedcredentialmanagement/FederatedCredentialManagementDialog.bal b/ballerina/modules/org.openqa.selenium.federatedcredentialmanagement/FederatedCredentialManagementDialog.bal index 6cd4a78..9d4333c 100644 --- a/ballerina/modules/org.openqa.selenium.federatedcredentialmanagement/FederatedCredentialManagementDialog.bal +++ b/ballerina/modules/org.openqa.selenium.federatedcredentialmanagement/FederatedCredentialManagementDialog.bal @@ -1,14 +1,18 @@ -// This is an empty Ballerina class autogenerated to represent the `org.openqa.selenium.federatedcredentialmanagement.FederatedCredentialManagementDialog` Java interface. +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). // -// If you need the implementation of this class generated, please use the following command. +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at // -// $ bal bindgen [(-cp|--classpath) ...] -// [(-mvn|--maven) ::] -// [(-o|--output) ] -// [--public] -// (...) +// http://www.apache.org/licenses/LICENSE-2.0 // -// E.g. $ bal bindgen org.openqa.selenium.federatedcredentialmanagement.FederatedCredentialManagementDialog +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. import ballerina/jballerina.java; diff --git a/ballerina/modules/org.openqa.selenium.firefox/FirefoxCommandContext.bal b/ballerina/modules/org.openqa.selenium.firefox/FirefoxCommandContext.bal index edefac6..95b69f4 100644 --- a/ballerina/modules/org.openqa.selenium.firefox/FirefoxCommandContext.bal +++ b/ballerina/modules/org.openqa.selenium.firefox/FirefoxCommandContext.bal @@ -1,14 +1,18 @@ -// This is an empty Ballerina class autogenerated to represent the `org.openqa.selenium.firefox.FirefoxCommandContext` Java class. +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). // -// If you need the implementation of this class generated, please use the following command. +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at // -// $ bal bindgen [(-cp|--classpath) ...] -// [(-mvn|--maven) ::] -// [(-o|--output) ] -// [--public] -// (...) +// http://www.apache.org/licenses/LICENSE-2.0 // -// E.g. $ bal bindgen org.openqa.selenium.firefox.FirefoxCommandContext +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. import ballerina/jballerina.java; diff --git a/ballerina/modules/org.openqa.selenium.firefox/FirefoxDriver.bal b/ballerina/modules/org.openqa.selenium.firefox/FirefoxDriver.bal index 8733c49..c7d093e 100644 --- a/ballerina/modules/org.openqa.selenium.firefox/FirefoxDriver.bal +++ b/ballerina/modules/org.openqa.selenium.firefox/FirefoxDriver.bal @@ -1,3 +1,19 @@ +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). +// +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + import selenium.java.io as javaio; import selenium.java.lang as javalang; import selenium.java.nio.file as javaniofile; diff --git a/ballerina/modules/org.openqa.selenium.firefox/FirefoxDriverService.bal b/ballerina/modules/org.openqa.selenium.firefox/FirefoxDriverService.bal index d258509..9ea6fcc 100644 --- a/ballerina/modules/org.openqa.selenium.firefox/FirefoxDriverService.bal +++ b/ballerina/modules/org.openqa.selenium.firefox/FirefoxDriverService.bal @@ -1,14 +1,18 @@ -// This is an empty Ballerina class autogenerated to represent the `org.openqa.selenium.firefox.FirefoxDriverService` Java class. +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). // -// If you need the implementation of this class generated, please use the following command. +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at // -// $ bal bindgen [(-cp|--classpath) ...] -// [(-mvn|--maven) ::] -// [(-o|--output) ] -// [--public] -// (...) +// http://www.apache.org/licenses/LICENSE-2.0 // -// E.g. $ bal bindgen org.openqa.selenium.firefox.FirefoxDriverService +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. import ballerina/jballerina.java; diff --git a/ballerina/modules/org.openqa.selenium.firefox/FirefoxOptions.bal b/ballerina/modules/org.openqa.selenium.firefox/FirefoxOptions.bal index de8cf12..3acb89a 100644 --- a/ballerina/modules/org.openqa.selenium.firefox/FirefoxOptions.bal +++ b/ballerina/modules/org.openqa.selenium.firefox/FirefoxOptions.bal @@ -1,14 +1,18 @@ -// This is an empty Ballerina class autogenerated to represent the `org.openqa.selenium.firefox.FirefoxOptions` Java class. +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). // -// If you need the implementation of this class generated, please use the following command. +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at // -// $ bal bindgen [(-cp|--classpath) ...] -// [(-mvn|--maven) ::] -// [(-o|--output) ] -// [--public] -// (...) +// http://www.apache.org/licenses/LICENSE-2.0 // -// E.g. $ bal bindgen org.openqa.selenium.firefox.FirefoxOptions +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. import ballerina/jballerina.java; diff --git a/ballerina/modules/org.openqa.selenium.html5/LocalStorage.bal b/ballerina/modules/org.openqa.selenium.html5/LocalStorage.bal index 2e55273..7f9e648 100644 --- a/ballerina/modules/org.openqa.selenium.html5/LocalStorage.bal +++ b/ballerina/modules/org.openqa.selenium.html5/LocalStorage.bal @@ -1,14 +1,18 @@ -// This is an empty Ballerina class autogenerated to represent the `org.openqa.selenium.html5.LocalStorage` Java interface. +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). // -// If you need the implementation of this class generated, please use the following command. +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at // -// $ bal bindgen [(-cp|--classpath) ...] -// [(-mvn|--maven) ::] -// [(-o|--output) ] -// [--public] -// (...) +// http://www.apache.org/licenses/LICENSE-2.0 // -// E.g. $ bal bindgen org.openqa.selenium.html5.LocalStorage +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. import ballerina/jballerina.java; diff --git a/ballerina/modules/org.openqa.selenium.html5/Location.bal b/ballerina/modules/org.openqa.selenium.html5/Location.bal index 7c9acb2..b85f92d 100644 --- a/ballerina/modules/org.openqa.selenium.html5/Location.bal +++ b/ballerina/modules/org.openqa.selenium.html5/Location.bal @@ -1,14 +1,18 @@ -// This is an empty Ballerina class autogenerated to represent the `org.openqa.selenium.html5.Location` Java class. +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). // -// If you need the implementation of this class generated, please use the following command. +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at // -// $ bal bindgen [(-cp|--classpath) ...] -// [(-mvn|--maven) ::] -// [(-o|--output) ] -// [--public] -// (...) +// http://www.apache.org/licenses/LICENSE-2.0 // -// E.g. $ bal bindgen org.openqa.selenium.html5.Location +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. import ballerina/jballerina.java; diff --git a/ballerina/modules/org.openqa.selenium.html5/SessionStorage.bal b/ballerina/modules/org.openqa.selenium.html5/SessionStorage.bal index b8325ec..3c202e3 100644 --- a/ballerina/modules/org.openqa.selenium.html5/SessionStorage.bal +++ b/ballerina/modules/org.openqa.selenium.html5/SessionStorage.bal @@ -1,14 +1,18 @@ -// This is an empty Ballerina class autogenerated to represent the `org.openqa.selenium.html5.SessionStorage` Java interface. +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). // -// If you need the implementation of this class generated, please use the following command. +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at // -// $ bal bindgen [(-cp|--classpath) ...] -// [(-mvn|--maven) ::] -// [(-o|--output) ] -// [--public] -// (...) +// http://www.apache.org/licenses/LICENSE-2.0 // -// E.g. $ bal bindgen org.openqa.selenium.html5.SessionStorage +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. import ballerina/jballerina.java; diff --git a/ballerina/modules/org.openqa.selenium.logging/EventType.bal b/ballerina/modules/org.openqa.selenium.logging/EventType.bal index 9663a03..b51b399 100644 --- a/ballerina/modules/org.openqa.selenium.logging/EventType.bal +++ b/ballerina/modules/org.openqa.selenium.logging/EventType.bal @@ -1,14 +1,18 @@ -// This is an empty Ballerina class autogenerated to represent the `org.openqa.selenium.logging.EventType` Java interface. +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). // -// If you need the implementation of this class generated, please use the following command. +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at // -// $ bal bindgen [(-cp|--classpath) ...] -// [(-mvn|--maven) ::] -// [(-o|--output) ] -// [--public] -// (...) +// http://www.apache.org/licenses/LICENSE-2.0 // -// E.g. $ bal bindgen org.openqa.selenium.logging.EventType +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. import ballerina/jballerina.java; diff --git a/ballerina/modules/org.openqa.selenium.mobile/ConnectionType.bal b/ballerina/modules/org.openqa.selenium.mobile/ConnectionType.bal index 5745d71..2687bae 100644 --- a/ballerina/modules/org.openqa.selenium.mobile/ConnectionType.bal +++ b/ballerina/modules/org.openqa.selenium.mobile/ConnectionType.bal @@ -1,14 +1,18 @@ -// This is an empty Ballerina class autogenerated to represent the `org.openqa.selenium.mobile.NetworkConnection$ConnectionType` Java class. +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). // -// If you need the implementation of this class generated, please use the following command. +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at // -// $ bal bindgen [(-cp|--classpath) ...] -// [(-mvn|--maven) ::] -// [(-o|--output) ] -// [--public] -// (...) +// http://www.apache.org/licenses/LICENSE-2.0 // -// E.g. $ bal bindgen org.openqa.selenium.mobile.NetworkConnection\$ConnectionType +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. import ballerina/jballerina.java; diff --git a/ballerina/modules/org.openqa.selenium.print/PrintOptions.bal b/ballerina/modules/org.openqa.selenium.print/PrintOptions.bal index 69b3d06..fbc50a2 100644 --- a/ballerina/modules/org.openqa.selenium.print/PrintOptions.bal +++ b/ballerina/modules/org.openqa.selenium.print/PrintOptions.bal @@ -1,14 +1,18 @@ -// This is an empty Ballerina class autogenerated to represent the `org.openqa.selenium.print.PrintOptions` Java class. +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). // -// If you need the implementation of this class generated, please use the following command. +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at // -// $ bal bindgen [(-cp|--classpath) ...] -// [(-mvn|--maven) ::] -// [(-o|--output) ] -// [--public] -// (...) +// http://www.apache.org/licenses/LICENSE-2.0 // -// E.g. $ bal bindgen org.openqa.selenium.print.PrintOptions +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. import ballerina/jballerina.java; diff --git a/ballerina/modules/org.openqa.selenium.remote.http/ClientConfig.bal b/ballerina/modules/org.openqa.selenium.remote.http/ClientConfig.bal index 18afe78..ea88945 100644 --- a/ballerina/modules/org.openqa.selenium.remote.http/ClientConfig.bal +++ b/ballerina/modules/org.openqa.selenium.remote.http/ClientConfig.bal @@ -1,14 +1,18 @@ -// This is an empty Ballerina class autogenerated to represent the `org.openqa.selenium.remote.http.ClientConfig` Java class. +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). // -// If you need the implementation of this class generated, please use the following command. +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at // -// $ bal bindgen [(-cp|--classpath) ...] -// [(-mvn|--maven) ::] -// [(-o|--output) ] -// [--public] -// (...) +// http://www.apache.org/licenses/LICENSE-2.0 // -// E.g. $ bal bindgen org.openqa.selenium.remote.http.ClientConfig +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. import ballerina/jballerina.java; diff --git a/ballerina/modules/org.openqa.selenium.remote.service/DriverService.bal b/ballerina/modules/org.openqa.selenium.remote.service/DriverService.bal index 787ef17..5f9b1d8 100644 --- a/ballerina/modules/org.openqa.selenium.remote.service/DriverService.bal +++ b/ballerina/modules/org.openqa.selenium.remote.service/DriverService.bal @@ -1,14 +1,18 @@ -// This is an empty Ballerina class autogenerated to represent the `org.openqa.selenium.remote.service.DriverService` Java class. +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). // -// If you need the implementation of this class generated, please use the following command. +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at // -// $ bal bindgen [(-cp|--classpath) ...] -// [(-mvn|--maven) ::] -// [(-o|--output) ] -// [--public] -// (...) +// http://www.apache.org/licenses/LICENSE-2.0 // -// E.g. $ bal bindgen org.openqa.selenium.remote.service.DriverService +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. import ballerina/jballerina.java; diff --git a/ballerina/modules/org.openqa.selenium.remote/CommandExecutor.bal b/ballerina/modules/org.openqa.selenium.remote/CommandExecutor.bal index 6645aed..c3c48e6 100644 --- a/ballerina/modules/org.openqa.selenium.remote/CommandExecutor.bal +++ b/ballerina/modules/org.openqa.selenium.remote/CommandExecutor.bal @@ -1,14 +1,18 @@ -// This is an empty Ballerina class autogenerated to represent the `org.openqa.selenium.remote.CommandExecutor` Java interface. +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). // -// If you need the implementation of this class generated, please use the following command. +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at // -// $ bal bindgen [(-cp|--classpath) ...] -// [(-mvn|--maven) ::] -// [(-o|--output) ] -// [--public] -// (...) +// http://www.apache.org/licenses/LICENSE-2.0 // -// E.g. $ bal bindgen org.openqa.selenium.remote.CommandExecutor +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. import ballerina/jballerina.java; diff --git a/ballerina/modules/org.openqa.selenium.remote/ErrorHandler.bal b/ballerina/modules/org.openqa.selenium.remote/ErrorHandler.bal index 6b87b65..58c0332 100644 --- a/ballerina/modules/org.openqa.selenium.remote/ErrorHandler.bal +++ b/ballerina/modules/org.openqa.selenium.remote/ErrorHandler.bal @@ -1,14 +1,18 @@ -// This is an empty Ballerina class autogenerated to represent the `org.openqa.selenium.remote.ErrorHandler` Java class. +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). // -// If you need the implementation of this class generated, please use the following command. +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at // -// $ bal bindgen [(-cp|--classpath) ...] -// [(-mvn|--maven) ::] -// [(-o|--output) ] -// [--public] -// (...) +// http://www.apache.org/licenses/LICENSE-2.0 // -// E.g. $ bal bindgen org.openqa.selenium.remote.ErrorHandler +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. import ballerina/jballerina.java; diff --git a/ballerina/modules/org.openqa.selenium.remote/FileDetector.bal b/ballerina/modules/org.openqa.selenium.remote/FileDetector.bal index 2031744..13b60f0 100644 --- a/ballerina/modules/org.openqa.selenium.remote/FileDetector.bal +++ b/ballerina/modules/org.openqa.selenium.remote/FileDetector.bal @@ -1,14 +1,18 @@ -// This is an empty Ballerina class autogenerated to represent the `org.openqa.selenium.remote.FileDetector` Java interface. +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). // -// If you need the implementation of this class generated, please use the following command. +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at // -// $ bal bindgen [(-cp|--classpath) ...] -// [(-mvn|--maven) ::] -// [(-o|--output) ] -// [--public] -// (...) +// http://www.apache.org/licenses/LICENSE-2.0 // -// E.g. $ bal bindgen org.openqa.selenium.remote.FileDetector +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. import ballerina/jballerina.java; diff --git a/ballerina/modules/org.openqa.selenium.remote/Network.bal b/ballerina/modules/org.openqa.selenium.remote/Network.bal index e1e307d..040c1dc 100644 --- a/ballerina/modules/org.openqa.selenium.remote/Network.bal +++ b/ballerina/modules/org.openqa.selenium.remote/Network.bal @@ -1,14 +1,18 @@ -// This is an empty Ballerina class autogenerated to represent the `org.openqa.selenium.remote.Network` Java interface. +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). // -// If you need the implementation of this class generated, please use the following command. +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at // -// $ bal bindgen [(-cp|--classpath) ...] -// [(-mvn|--maven) ::] -// [(-o|--output) ] -// [--public] -// (...) +// http://www.apache.org/licenses/LICENSE-2.0 // -// E.g. $ bal bindgen org.openqa.selenium.remote.Network +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. import ballerina/jballerina.java; diff --git a/ballerina/modules/org.openqa.selenium.remote/RemoteWebDriver.bal b/ballerina/modules/org.openqa.selenium.remote/RemoteWebDriver.bal index edc5e52..837ce0f 100644 --- a/ballerina/modules/org.openqa.selenium.remote/RemoteWebDriver.bal +++ b/ballerina/modules/org.openqa.selenium.remote/RemoteWebDriver.bal @@ -1,3 +1,19 @@ +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). +// +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + import selenium.java.io as javaio; import selenium.java.lang as javalang; import selenium.java.net as javanet; diff --git a/ballerina/modules/org.openqa.selenium.remote/RemoteWebDriverBuilder.bal b/ballerina/modules/org.openqa.selenium.remote/RemoteWebDriverBuilder.bal index 966e8ac..b92de78 100644 --- a/ballerina/modules/org.openqa.selenium.remote/RemoteWebDriverBuilder.bal +++ b/ballerina/modules/org.openqa.selenium.remote/RemoteWebDriverBuilder.bal @@ -1,14 +1,18 @@ -// This is an empty Ballerina class autogenerated to represent the `org.openqa.selenium.remote.RemoteWebDriverBuilder` Java class. +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). // -// If you need the implementation of this class generated, please use the following command. +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at // -// $ bal bindgen [(-cp|--classpath) ...] -// [(-mvn|--maven) ::] -// [(-o|--output) ] -// [--public] -// (...) +// http://www.apache.org/licenses/LICENSE-2.0 // -// E.g. $ bal bindgen org.openqa.selenium.remote.RemoteWebDriverBuilder +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. import ballerina/jballerina.java; diff --git a/ballerina/modules/org.openqa.selenium.remote/Script.bal b/ballerina/modules/org.openqa.selenium.remote/Script.bal index 58dda26..030905a 100644 --- a/ballerina/modules/org.openqa.selenium.remote/Script.bal +++ b/ballerina/modules/org.openqa.selenium.remote/Script.bal @@ -1,14 +1,18 @@ -// This is an empty Ballerina class autogenerated to represent the `org.openqa.selenium.remote.Script` Java interface. +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). // -// If you need the implementation of this class generated, please use the following command. +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at // -// $ bal bindgen [(-cp|--classpath) ...] -// [(-mvn|--maven) ::] -// [(-o|--output) ] -// [--public] -// (...) +// http://www.apache.org/licenses/LICENSE-2.0 // -// E.g. $ bal bindgen org.openqa.selenium.remote.Script +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. import ballerina/jballerina.java; diff --git a/ballerina/modules/org.openqa.selenium.remote/SessionId.bal b/ballerina/modules/org.openqa.selenium.remote/SessionId.bal index c0bc485..94e0e7a 100644 --- a/ballerina/modules/org.openqa.selenium.remote/SessionId.bal +++ b/ballerina/modules/org.openqa.selenium.remote/SessionId.bal @@ -1,14 +1,18 @@ -// This is an empty Ballerina class autogenerated to represent the `org.openqa.selenium.remote.SessionId` Java class. +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). // -// If you need the implementation of this class generated, please use the following command. +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at // -// $ bal bindgen [(-cp|--classpath) ...] -// [(-mvn|--maven) ::] -// [(-o|--output) ] -// [--public] -// (...) +// http://www.apache.org/licenses/LICENSE-2.0 // -// E.g. $ bal bindgen org.openqa.selenium.remote.SessionId +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. import ballerina/jballerina.java; diff --git a/ballerina/modules/org.openqa.selenium.safari/SafariDriver.bal b/ballerina/modules/org.openqa.selenium.safari/SafariDriver.bal index 15c48d2..74096f1 100644 --- a/ballerina/modules/org.openqa.selenium.safari/SafariDriver.bal +++ b/ballerina/modules/org.openqa.selenium.safari/SafariDriver.bal @@ -1,3 +1,19 @@ +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). +// +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + import selenium.java.io as javaio; import selenium.java.lang as javalang; import selenium.java.nio.file as javaniofile; diff --git a/ballerina/modules/org.openqa.selenium.safari/SafariDriverService.bal b/ballerina/modules/org.openqa.selenium.safari/SafariDriverService.bal index 05d481a..1d218e5 100644 --- a/ballerina/modules/org.openqa.selenium.safari/SafariDriverService.bal +++ b/ballerina/modules/org.openqa.selenium.safari/SafariDriverService.bal @@ -1,14 +1,18 @@ -// This is an empty Ballerina class autogenerated to represent the `org.openqa.selenium.safari.SafariDriverService` Java class. +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). // -// If you need the implementation of this class generated, please use the following command. +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at // -// $ bal bindgen [(-cp|--classpath) ...] -// [(-mvn|--maven) ::] -// [(-o|--output) ] -// [--public] -// (...) +// http://www.apache.org/licenses/LICENSE-2.0 // -// E.g. $ bal bindgen org.openqa.selenium.safari.SafariDriverService +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. import ballerina/jballerina.java; diff --git a/ballerina/modules/org.openqa.selenium.safari/SafariOptions.bal b/ballerina/modules/org.openqa.selenium.safari/SafariOptions.bal index dc93c06..73a3cc3 100644 --- a/ballerina/modules/org.openqa.selenium.safari/SafariOptions.bal +++ b/ballerina/modules/org.openqa.selenium.safari/SafariOptions.bal @@ -1,14 +1,18 @@ -// This is an empty Ballerina class autogenerated to represent the `org.openqa.selenium.safari.SafariOptions` Java class. +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). // -// If you need the implementation of this class generated, please use the following command. +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at // -// $ bal bindgen [(-cp|--classpath) ...] -// [(-mvn|--maven) ::] -// [(-o|--output) ] -// [--public] -// (...) +// http://www.apache.org/licenses/LICENSE-2.0 // -// E.g. $ bal bindgen org.openqa.selenium.safari.SafariOptions +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. import ballerina/jballerina.java; diff --git a/ballerina/modules/org.openqa.selenium.virtualauthenticator/VirtualAuthenticator.bal b/ballerina/modules/org.openqa.selenium.virtualauthenticator/VirtualAuthenticator.bal index 33b47f6..bee5483 100644 --- a/ballerina/modules/org.openqa.selenium.virtualauthenticator/VirtualAuthenticator.bal +++ b/ballerina/modules/org.openqa.selenium.virtualauthenticator/VirtualAuthenticator.bal @@ -1,14 +1,18 @@ -// This is an empty Ballerina class autogenerated to represent the `org.openqa.selenium.virtualauthenticator.VirtualAuthenticator` Java interface. +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). // -// If you need the implementation of this class generated, please use the following command. +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at // -// $ bal bindgen [(-cp|--classpath) ...] -// [(-mvn|--maven) ::] -// [(-o|--output) ] -// [--public] -// (...) +// http://www.apache.org/licenses/LICENSE-2.0 // -// E.g. $ bal bindgen org.openqa.selenium.virtualauthenticator.VirtualAuthenticator +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. import ballerina/jballerina.java; diff --git a/ballerina/modules/org.openqa.selenium.virtualauthenticator/VirtualAuthenticatorOptions.bal b/ballerina/modules/org.openqa.selenium.virtualauthenticator/VirtualAuthenticatorOptions.bal index b8d3dfc..1ada23a 100644 --- a/ballerina/modules/org.openqa.selenium.virtualauthenticator/VirtualAuthenticatorOptions.bal +++ b/ballerina/modules/org.openqa.selenium.virtualauthenticator/VirtualAuthenticatorOptions.bal @@ -1,14 +1,18 @@ -// This is an empty Ballerina class autogenerated to represent the `org.openqa.selenium.virtualauthenticator.VirtualAuthenticatorOptions` Java class. +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). // -// If you need the implementation of this class generated, please use the following command. +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at // -// $ bal bindgen [(-cp|--classpath) ...] -// [(-mvn|--maven) ::] -// [(-o|--output) ] -// [--public] -// (...) +// http://www.apache.org/licenses/LICENSE-2.0 // -// E.g. $ bal bindgen org.openqa.selenium.virtualauthenticator.VirtualAuthenticatorOptions +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. import ballerina/jballerina.java; diff --git a/ballerina/modules/org.openqa.selenium/By.bal b/ballerina/modules/org.openqa.selenium/By.bal index 98895b2..b233d26 100644 --- a/ballerina/modules/org.openqa.selenium/By.bal +++ b/ballerina/modules/org.openqa.selenium/By.bal @@ -1,3 +1,19 @@ +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). +// +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + import selenium.java.lang as javalang; import selenium.java.util as javautil; diff --git a/ballerina/modules/org.openqa.selenium/Capabilities.bal b/ballerina/modules/org.openqa.selenium/Capabilities.bal index e0f5d3a..8dcc1b4 100644 --- a/ballerina/modules/org.openqa.selenium/Capabilities.bal +++ b/ballerina/modules/org.openqa.selenium/Capabilities.bal @@ -1,14 +1,18 @@ -// This is an empty Ballerina class autogenerated to represent the `org.openqa.selenium.Capabilities` Java interface. +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). // -// If you need the implementation of this class generated, please use the following command. +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at // -// $ bal bindgen [(-cp|--classpath) ...] -// [(-mvn|--maven) ::] -// [(-o|--output) ] -// [--public] -// (...) +// http://www.apache.org/licenses/LICENSE-2.0 // -// E.g. $ bal bindgen org.openqa.selenium.Capabilities +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. import ballerina/jballerina.java; diff --git a/ballerina/modules/org.openqa.selenium/Dimension.bal b/ballerina/modules/org.openqa.selenium/Dimension.bal index 1d3e79e..0c78a45 100644 --- a/ballerina/modules/org.openqa.selenium/Dimension.bal +++ b/ballerina/modules/org.openqa.selenium/Dimension.bal @@ -1,3 +1,19 @@ +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). +// +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + import selenium.java.lang as javalang; import ballerina/jballerina.java; diff --git a/ballerina/modules/org.openqa.selenium/Navigation.bal b/ballerina/modules/org.openqa.selenium/Navigation.bal index 595d875..4ecd77e 100644 --- a/ballerina/modules/org.openqa.selenium/Navigation.bal +++ b/ballerina/modules/org.openqa.selenium/Navigation.bal @@ -1,14 +1,18 @@ -// This is an empty Ballerina class autogenerated to represent the `org.openqa.selenium.WebDriver$Navigation` Java interface. +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). // -// If you need the implementation of this class generated, please use the following command. +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at // -// $ bal bindgen [(-cp|--classpath) ...] -// [(-mvn|--maven) ::] -// [(-o|--output) ] -// [--public] -// (...) +// http://www.apache.org/licenses/LICENSE-2.0 // -// E.g. $ bal bindgen org.openqa.selenium.WebDriver\$Navigation +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. import ballerina/jballerina.java; diff --git a/ballerina/modules/org.openqa.selenium/Options.bal b/ballerina/modules/org.openqa.selenium/Options.bal index 9e4e134..b200a2b 100644 --- a/ballerina/modules/org.openqa.selenium/Options.bal +++ b/ballerina/modules/org.openqa.selenium/Options.bal @@ -1,14 +1,18 @@ -// This is an empty Ballerina class autogenerated to represent the `org.openqa.selenium.WebDriver$Options` Java interface. +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). // -// If you need the implementation of this class generated, please use the following command. +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at // -// $ bal bindgen [(-cp|--classpath) ...] -// [(-mvn|--maven) ::] -// [(-o|--output) ] -// [--public] -// (...) +// http://www.apache.org/licenses/LICENSE-2.0 // -// E.g. $ bal bindgen org.openqa.selenium.WebDriver\$Options +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. import ballerina/jballerina.java; diff --git a/ballerina/modules/org.openqa.selenium/OutputType.bal b/ballerina/modules/org.openqa.selenium/OutputType.bal index 352fed9..a541cf5 100644 --- a/ballerina/modules/org.openqa.selenium/OutputType.bal +++ b/ballerina/modules/org.openqa.selenium/OutputType.bal @@ -1,14 +1,18 @@ -// This is an empty Ballerina class autogenerated to represent the `org.openqa.selenium.OutputType` Java interface. +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). // -// If you need the implementation of this class generated, please use the following command. +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at // -// $ bal bindgen [(-cp|--classpath) ...] -// [(-mvn|--maven) ::] -// [(-o|--output) ] -// [--public] -// (...) +// http://www.apache.org/licenses/LICENSE-2.0 // -// E.g. $ bal bindgen org.openqa.selenium.OutputType +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. import ballerina/jballerina.java; diff --git a/ballerina/modules/org.openqa.selenium/Pdf.bal b/ballerina/modules/org.openqa.selenium/Pdf.bal index f5534b8..395e007 100644 --- a/ballerina/modules/org.openqa.selenium/Pdf.bal +++ b/ballerina/modules/org.openqa.selenium/Pdf.bal @@ -1,14 +1,18 @@ -// This is an empty Ballerina class autogenerated to represent the `org.openqa.selenium.Pdf` Java class. +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). // -// If you need the implementation of this class generated, please use the following command. +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at // -// $ bal bindgen [(-cp|--classpath) ...] -// [(-mvn|--maven) ::] -// [(-o|--output) ] -// [--public] -// (...) +// http://www.apache.org/licenses/LICENSE-2.0 // -// E.g. $ bal bindgen org.openqa.selenium.Pdf +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. import ballerina/jballerina.java; diff --git a/ballerina/modules/org.openqa.selenium/Point.bal b/ballerina/modules/org.openqa.selenium/Point.bal index 1eaa46b..7aedfab 100644 --- a/ballerina/modules/org.openqa.selenium/Point.bal +++ b/ballerina/modules/org.openqa.selenium/Point.bal @@ -1,14 +1,18 @@ -// This is an empty Ballerina class autogenerated to represent the `org.openqa.selenium.Point` Java class. +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). // -// If you need the implementation of this class generated, please use the following command. +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at // -// $ bal bindgen [(-cp|--classpath) ...] -// [(-mvn|--maven) ::] -// [(-o|--output) ] -// [--public] -// (...) +// http://www.apache.org/licenses/LICENSE-2.0 // -// E.g. $ bal bindgen org.openqa.selenium.Point +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. import ballerina/jballerina.java; diff --git a/ballerina/modules/org.openqa.selenium/Rectangle.bal b/ballerina/modules/org.openqa.selenium/Rectangle.bal index a5e0f5a..30b4f23 100644 --- a/ballerina/modules/org.openqa.selenium/Rectangle.bal +++ b/ballerina/modules/org.openqa.selenium/Rectangle.bal @@ -1,14 +1,18 @@ -// This is an empty Ballerina class autogenerated to represent the `org.openqa.selenium.Rectangle` Java class. +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). // -// If you need the implementation of this class generated, please use the following command. +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at // -// $ bal bindgen [(-cp|--classpath) ...] -// [(-mvn|--maven) ::] -// [(-o|--output) ] -// [--public] -// (...) +// http://www.apache.org/licenses/LICENSE-2.0 // -// E.g. $ bal bindgen org.openqa.selenium.Rectangle +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. import ballerina/jballerina.java; diff --git a/ballerina/modules/org.openqa.selenium/ScriptKey.bal b/ballerina/modules/org.openqa.selenium/ScriptKey.bal index cae631e..89c18f5 100644 --- a/ballerina/modules/org.openqa.selenium/ScriptKey.bal +++ b/ballerina/modules/org.openqa.selenium/ScriptKey.bal @@ -1,14 +1,18 @@ -// This is an empty Ballerina class autogenerated to represent the `org.openqa.selenium.ScriptKey` Java class. +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). // -// If you need the implementation of this class generated, please use the following command. +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at // -// $ bal bindgen [(-cp|--classpath) ...] -// [(-mvn|--maven) ::] -// [(-o|--output) ] -// [--public] -// (...) +// http://www.apache.org/licenses/LICENSE-2.0 // -// E.g. $ bal bindgen org.openqa.selenium.ScriptKey +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. import ballerina/jballerina.java; diff --git a/ballerina/modules/org.openqa.selenium/SearchContext.bal b/ballerina/modules/org.openqa.selenium/SearchContext.bal index 3bc1a42..ab93dfd 100644 --- a/ballerina/modules/org.openqa.selenium/SearchContext.bal +++ b/ballerina/modules/org.openqa.selenium/SearchContext.bal @@ -1,14 +1,18 @@ -// This is an empty Ballerina class autogenerated to represent the `org.openqa.selenium.SearchContext` Java interface. +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). // -// If you need the implementation of this class generated, please use the following command. +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at // -// $ bal bindgen [(-cp|--classpath) ...] -// [(-mvn|--maven) ::] -// [(-o|--output) ] -// [--public] -// (...) +// http://www.apache.org/licenses/LICENSE-2.0 // -// E.g. $ bal bindgen org.openqa.selenium.SearchContext +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. import ballerina/jballerina.java; diff --git a/ballerina/modules/org.openqa.selenium/TargetLocator.bal b/ballerina/modules/org.openqa.selenium/TargetLocator.bal index 3a544df..ed951d6 100644 --- a/ballerina/modules/org.openqa.selenium/TargetLocator.bal +++ b/ballerina/modules/org.openqa.selenium/TargetLocator.bal @@ -1,14 +1,18 @@ -// This is an empty Ballerina class autogenerated to represent the `org.openqa.selenium.WebDriver$TargetLocator` Java interface. +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). // -// If you need the implementation of this class generated, please use the following command. +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at // -// $ bal bindgen [(-cp|--classpath) ...] -// [(-mvn|--maven) ::] -// [(-o|--output) ] -// [--public] -// (...) +// http://www.apache.org/licenses/LICENSE-2.0 // -// E.g. $ bal bindgen org.openqa.selenium.WebDriver\$TargetLocator +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. import ballerina/jballerina.java; diff --git a/ballerina/modules/org.openqa.selenium/WebDriver.bal b/ballerina/modules/org.openqa.selenium/WebDriver.bal index 5f8b37e..6f612a7 100644 --- a/ballerina/modules/org.openqa.selenium/WebDriver.bal +++ b/ballerina/modules/org.openqa.selenium/WebDriver.bal @@ -1,3 +1,19 @@ +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). +// +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + import selenium.java.util as javautil; import ballerina/jballerina.java; diff --git a/ballerina/modules/org.openqa.selenium/WebElement.bal b/ballerina/modules/org.openqa.selenium/WebElement.bal index d7704d1..b34e155 100644 --- a/ballerina/modules/org.openqa.selenium/WebElement.bal +++ b/ballerina/modules/org.openqa.selenium/WebElement.bal @@ -1,3 +1,19 @@ +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). +// +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + import selenium.java.lang as javalang; import selenium.java.util as javautil; diff --git a/examples/student_application_form_filling/main.bal b/examples/student_application_form_filling/main.bal index 52eb884..029d48d 100644 --- a/examples/student_application_form_filling/main.bal +++ b/examples/student_application_form_filling/main.bal @@ -1,3 +1,19 @@ +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). +// +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + import ballerina/io; import ballerina/lang.runtime; diff --git a/examples/student_application_form_filling/records.bal b/examples/student_application_form_filling/records.bal index 1d4679f..d83d59a 100644 --- a/examples/student_application_form_filling/records.bal +++ b/examples/student_application_form_filling/records.bal @@ -1,3 +1,19 @@ +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). +// +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + type Emergency record { string name; string address; diff --git a/examples/student_application_form_filling/utils.bal b/examples/student_application_form_filling/utils.bal index 75aeb84..1b216a5 100644 --- a/examples/student_application_form_filling/utils.bal +++ b/examples/student_application_form_filling/utils.bal @@ -1,3 +1,19 @@ +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). +// +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + import ballerina/io; public function getData() returns Data|error { From e221e28e7332a5f33f081815cfcf7f0bf4713885 Mon Sep 17 00:00:00 2001 From: dharshi Date: Fri, 6 Dec 2024 11:15:31 +0530 Subject: [PATCH 10/43] rename module names --- ballerina/Ballerina.toml | 2 +- ballerina/Dependencies.toml | 12 ++--- ballerina/Module.md | 48 +++++++++---------- ballerina/Package.md | 48 +++++++++---------- .../ChromeDriver.bal | 2 +- .../ChromeDriverService.bal | 0 .../ChromeOptions.bal | 0 .../EdgeDriver.bal | 2 +- .../EdgeDriverService.bal | 0 .../EdgeOptions.bal | 0 .../FirefoxCommandContext.bal | 0 .../FirefoxDriver.bal | 2 +- .../FirefoxDriverService.bal | 0 .../FirefoxOptions.bal | 0 .../ChromiumDriver.bal | 2 +- .../RemoteWebDriver.bal | 2 +- .../SafariDriver.bal | 2 +- .../SafariDriverService.bal | 0 .../SafariOptions.bal | 0 .../{org.openqa.selenium => web}/By.bal | 0 .../Capabilities.bal | 0 .../Dimension.bal | 0 .../Navigation.bal | 0 .../{org.openqa.selenium => web}/Options.bal | 0 .../OutputType.bal | 0 .../{org.openqa.selenium => web}/Pdf.bal | 0 .../{org.openqa.selenium => web}/Point.bal | 0 .../Rectangle.bal | 0 .../ScriptKey.bal | 0 .../SearchContext.bal | 0 .../TargetLocator.bal | 0 .../WebDriver.bal | 0 .../WebElement.bal | 0 33 files changed, 61 insertions(+), 61 deletions(-) rename ballerina/modules/{org.openqa.selenium.chrome => chrome}/ChromeDriver.bal (99%) rename ballerina/modules/{org.openqa.selenium.chrome => chrome}/ChromeDriverService.bal (100%) rename ballerina/modules/{org.openqa.selenium.chrome => chrome}/ChromeOptions.bal (100%) rename ballerina/modules/{org.openqa.selenium.edge => edge}/EdgeDriver.bal (99%) rename ballerina/modules/{org.openqa.selenium.edge => edge}/EdgeDriverService.bal (100%) rename ballerina/modules/{org.openqa.selenium.edge => edge}/EdgeOptions.bal (100%) rename ballerina/modules/{org.openqa.selenium.firefox => firefox}/FirefoxCommandContext.bal (100%) rename ballerina/modules/{org.openqa.selenium.firefox => firefox}/FirefoxDriver.bal (99%) rename ballerina/modules/{org.openqa.selenium.firefox => firefox}/FirefoxDriverService.bal (100%) rename ballerina/modules/{org.openqa.selenium.firefox => firefox}/FirefoxOptions.bal (100%) rename ballerina/modules/{org.openqa.selenium.safari => safari}/SafariDriver.bal (99%) rename ballerina/modules/{org.openqa.selenium.safari => safari}/SafariDriverService.bal (100%) rename ballerina/modules/{org.openqa.selenium.safari => safari}/SafariOptions.bal (100%) rename ballerina/modules/{org.openqa.selenium => web}/By.bal (100%) rename ballerina/modules/{org.openqa.selenium => web}/Capabilities.bal (100%) rename ballerina/modules/{org.openqa.selenium => web}/Dimension.bal (100%) rename ballerina/modules/{org.openqa.selenium => web}/Navigation.bal (100%) rename ballerina/modules/{org.openqa.selenium => web}/Options.bal (100%) rename ballerina/modules/{org.openqa.selenium => web}/OutputType.bal (100%) rename ballerina/modules/{org.openqa.selenium => web}/Pdf.bal (100%) rename ballerina/modules/{org.openqa.selenium => web}/Point.bal (100%) rename ballerina/modules/{org.openqa.selenium => web}/Rectangle.bal (100%) rename ballerina/modules/{org.openqa.selenium => web}/ScriptKey.bal (100%) rename ballerina/modules/{org.openqa.selenium => web}/SearchContext.bal (100%) rename ballerina/modules/{org.openqa.selenium => web}/TargetLocator.bal (100%) rename ballerina/modules/{org.openqa.selenium => web}/WebDriver.bal (100%) rename ballerina/modules/{org.openqa.selenium => web}/WebElement.bal (100%) diff --git a/ballerina/Ballerina.toml b/ballerina/Ballerina.toml index a9e5970..5815562 100644 --- a/ballerina/Ballerina.toml +++ b/ballerina/Ballerina.toml @@ -8,7 +8,7 @@ authors = ["Ballerina"] keywords = ["selenium", "web-automation"] icon = "icon.png" repository = "https://github.com/xlibb/module-selenium" -export = ["selenium", "selenium.org.openqa.selenium", "selenium.org.openqa.selenium.chrome", "selenium.org.openqa.selenium.edge", "selenium.org.openqa.selenium.firefox", "selenium.org.openqa.selenium.safari"] +export = ["selenium", "selenium.web", "selenium.chrome", "selenium.edge", "selenium.firefox", "selenium.safari"] [build-options] observabilityIncluded = true diff --git a/ballerina/Dependencies.toml b/ballerina/Dependencies.toml index 5d1d509..e2a9477 100644 --- a/ballerina/Dependencies.toml +++ b/ballerina/Dependencies.toml @@ -57,6 +57,9 @@ dependencies = [ ] modules = [ {org = "xlibb", packageName = "selenium", moduleName = "selenium"}, + {org = "xlibb", packageName = "selenium", moduleName = "selenium.chrome"}, + {org = "xlibb", packageName = "selenium", moduleName = "selenium.edge"}, + {org = "xlibb", packageName = "selenium", moduleName = "selenium.firefox"}, {org = "xlibb", packageName = "selenium", moduleName = "selenium.java.io"}, {org = "xlibb", packageName = "selenium", moduleName = "selenium.java.lang"}, {org = "xlibb", packageName = "selenium", moduleName = "selenium.java.net"}, @@ -64,14 +67,10 @@ modules = [ {org = "xlibb", packageName = "selenium", moduleName = "selenium.java.util"}, {org = "xlibb", packageName = "selenium", moduleName = "selenium.java.util.function"}, {org = "xlibb", packageName = "selenium", moduleName = "selenium.java.util.logging"}, - {org = "xlibb", packageName = "selenium", moduleName = "selenium.org.openqa.selenium"}, {org = "xlibb", packageName = "selenium", moduleName = "selenium.org.openqa.selenium.bidi"}, - {org = "xlibb", packageName = "selenium", moduleName = "selenium.org.openqa.selenium.chrome"}, {org = "xlibb", packageName = "selenium", moduleName = "selenium.org.openqa.selenium.chromium"}, {org = "xlibb", packageName = "selenium", moduleName = "selenium.org.openqa.selenium.devtools"}, - {org = "xlibb", packageName = "selenium", moduleName = "selenium.org.openqa.selenium.edge"}, {org = "xlibb", packageName = "selenium", moduleName = "selenium.org.openqa.selenium.federatedcredentialmanagement"}, - {org = "xlibb", packageName = "selenium", moduleName = "selenium.org.openqa.selenium.firefox"}, {org = "xlibb", packageName = "selenium", moduleName = "selenium.org.openqa.selenium.html5"}, {org = "xlibb", packageName = "selenium", moduleName = "selenium.org.openqa.selenium.logging"}, {org = "xlibb", packageName = "selenium", moduleName = "selenium.org.openqa.selenium.mobile"}, @@ -79,7 +78,8 @@ modules = [ {org = "xlibb", packageName = "selenium", moduleName = "selenium.org.openqa.selenium.remote"}, {org = "xlibb", packageName = "selenium", moduleName = "selenium.org.openqa.selenium.remote.http"}, {org = "xlibb", packageName = "selenium", moduleName = "selenium.org.openqa.selenium.remote.service"}, - {org = "xlibb", packageName = "selenium", moduleName = "selenium.org.openqa.selenium.safari"}, - {org = "xlibb", packageName = "selenium", moduleName = "selenium.org.openqa.selenium.virtualauthenticator"} + {org = "xlibb", packageName = "selenium", moduleName = "selenium.org.openqa.selenium.virtualauthenticator"}, + {org = "xlibb", packageName = "selenium", moduleName = "selenium.safari"}, + {org = "xlibb", packageName = "selenium", moduleName = "selenium.web"} ] diff --git a/ballerina/Module.md b/ballerina/Module.md index 79994d7..f0130a2 100644 --- a/ballerina/Module.md +++ b/ballerina/Module.md @@ -9,10 +9,10 @@ This module automates web applications across various browsers. Selenium interac The core component of Selenium is the WebDriver. It is an interface for controlling a web browser instance and communicates with the browser through its native API. You can create a web driver based on the browser you want to automate. ```ballerina -import xlibb/selenium.org.openqa.selenium.chrome; -import xlibb/selenium.org.openqa.selenium.safari; -import xlibb/selenium.org.openqa.selenium.edge; -import xlibb/selenium.org.openqa.selenium.firefox; +import xlibb/selenium.chrome; +import xlibb/selenium.safari; +import xlibb/selenium.edge; +import xlibb/selenium.firefox; public function main() { @@ -27,7 +27,7 @@ public function main() { #### Launching website. ```ballerina -import xlibb/selenium.org.openqa.selenium.chrome; +import xlibb/selenium.chrome; public function main() { @@ -56,20 +56,20 @@ A locator is a way to identify elements on a page. Selenium provides support for ``` ```ballerina -import xlibb/selenium.org.openqa.selenium.chrome; -import xlibb/selenium.org.openqa.selenium; +import xlibb/selenium.chrome; +import xlibb/selenium.web; import ballerina/io; public function main() { chrome:ChromeDriver driver = chrome:newChromeDriver1(); - selenium:WebElement form = driver.findElement(selenium:By_id("form")); // By ID - selenium:WebElement searchboxByName = driver.findElement(selenium:By_name("q")); // By Name - selenium:WebElement searchboxbyCss = driver.findElement(selenium:By_cssSelector("#form .search-box")); // By CSS Selector - selenium:WebElement searchboxbyXpath = driver.findElement(selenium:By_xpath("//input[@id='search']")); // By XPath - selenium:WebElement searchboxbyClassName = driver.findElement(selenium:By_className("search-box")); // By Class Name - selenium:WebElement searchboxbyTagName = driver.findElement(selenium:By_tagName("input")); // By Tag Name - selenium:WebElement nestedElement = form.findElement(selenium:By_name("q")); // Locating a WebElement inside another WebElement + selenium:WebElement form = driver.findElement(web:By_id("form")); // By ID + selenium:WebElement searchboxByName = driver.findElement(web:By_name("q")); // By Name + selenium:WebElement searchboxbyCss = driver.findElement(web:By_cssSelector("#form .search-box")); // By CSS Selector + selenium:WebElement searchboxbyXpath = driver.findElement(web:By_xpath("//input[@id='search']")); // By XPath + selenium:WebElement searchboxbyClassName = driver.findElement(web:By_className("search-box")); // By Class Name + selenium:WebElement searchboxbyTagName = driver.findElement(web:By_tagName("input")); // By Tag Name + selenium:WebElement nestedElement = form.findElement(web:By_name("q")); // Locating a WebElement inside another WebElement } ``` @@ -81,22 +81,22 @@ To fetch data from a web element in Selenium, you can interact with it using var 1. Text of an element (e.g., a paragraph or label): ```ballerina -string labelText = driver.findElement(selenium:By_className("input-label")).getText(); +string labelText = driver.findElement(web:By_className("input-label")).getText(); io:println(labelText); ``` 2. Attribute value (e.g., value of an input field or the href attribute of a link): ```ballerina -string value = driver.findElement(selenium:By_id("elementId")).getAttribute("value"); // For input fields -string href = driver.findElement(selenium:By_tagName("a")).getAttribute("href"); // For links +string value = driver.findElement(web:By_id("elementId")).getAttribute("value"); // For input fields +string href = driver.findElement(web:By_tagName("a")).getAttribute("href"); // For links ``` 3. Checking if an element is displayed/enabled/selected: ```ballerina -selenium:WebElement element = driver.findElement(selenium:By_id("elementId")); +selenium:WebElement element = driver.findElement(web:By_id("elementId")); boolean isDisplayed = element.isDisplayed(); boolean isEnabled = element.isEnabled(); boolean isSelected = element.isSelected(); @@ -108,7 +108,7 @@ boolean isSelected = element.isSelected(); To send user inputs to web elements, you can use the sendKeys() method, which simulates typing into text-based input fields (like textboxes, textareas, etc.). ```ballerina -check driver.findElement(selenium:By_className("search-box")).sendKeys(["ballerina"]); +check driver.findElement(web:By_className("search-box")).sendKeys(["ballerina"]); ``` #### Performing Click event @@ -116,7 +116,7 @@ check driver.findElement(selenium:By_className("search-box")).sendKeys(["balleri To perform a click event on a web element, you can use the click() method on the WebElement object. This is commonly used to simulate clicking on buttons, links, checkboxes, radio buttons, or any other clickable elements. ```ballerina -driver.findElement(selenium:By_className("submit-btn")).click(); +driver.findElement(web:By_className("submit-btn")).click(); ``` #### Closing the browser @@ -133,8 +133,8 @@ The below code will do the following, 3. Search for 'http' module. ```ballerina -import xlibb/selenium.org.openqa.selenium.chrome; -import xlibb/selenium.org.openqa.selenium; +import xlibb/selenium.chrome; +import xlibb/selenium.web; import ballerina/lang.runtime; public function main() returns error? { @@ -144,8 +144,8 @@ public function main() returns error? { // Wait for some time, till the page completely loads. runtime:sleep(2); - check driver.findElement(selenium:By_id("downshift-search-bar-input")).sendKeys(["http"]); - driver.findElement(selenium:By_className("Search_searchButton__iLPLB")).click(); + check driver.findElement(web:By_id("downshift-search-bar-input")).sendKeys(["http"]); + driver.findElement(web:By_className("Search_searchButton__iLPLB")).click(); } ``` diff --git a/ballerina/Package.md b/ballerina/Package.md index 79994d7..f0130a2 100644 --- a/ballerina/Package.md +++ b/ballerina/Package.md @@ -9,10 +9,10 @@ This module automates web applications across various browsers. Selenium interac The core component of Selenium is the WebDriver. It is an interface for controlling a web browser instance and communicates with the browser through its native API. You can create a web driver based on the browser you want to automate. ```ballerina -import xlibb/selenium.org.openqa.selenium.chrome; -import xlibb/selenium.org.openqa.selenium.safari; -import xlibb/selenium.org.openqa.selenium.edge; -import xlibb/selenium.org.openqa.selenium.firefox; +import xlibb/selenium.chrome; +import xlibb/selenium.safari; +import xlibb/selenium.edge; +import xlibb/selenium.firefox; public function main() { @@ -27,7 +27,7 @@ public function main() { #### Launching website. ```ballerina -import xlibb/selenium.org.openqa.selenium.chrome; +import xlibb/selenium.chrome; public function main() { @@ -56,20 +56,20 @@ A locator is a way to identify elements on a page. Selenium provides support for ``` ```ballerina -import xlibb/selenium.org.openqa.selenium.chrome; -import xlibb/selenium.org.openqa.selenium; +import xlibb/selenium.chrome; +import xlibb/selenium.web; import ballerina/io; public function main() { chrome:ChromeDriver driver = chrome:newChromeDriver1(); - selenium:WebElement form = driver.findElement(selenium:By_id("form")); // By ID - selenium:WebElement searchboxByName = driver.findElement(selenium:By_name("q")); // By Name - selenium:WebElement searchboxbyCss = driver.findElement(selenium:By_cssSelector("#form .search-box")); // By CSS Selector - selenium:WebElement searchboxbyXpath = driver.findElement(selenium:By_xpath("//input[@id='search']")); // By XPath - selenium:WebElement searchboxbyClassName = driver.findElement(selenium:By_className("search-box")); // By Class Name - selenium:WebElement searchboxbyTagName = driver.findElement(selenium:By_tagName("input")); // By Tag Name - selenium:WebElement nestedElement = form.findElement(selenium:By_name("q")); // Locating a WebElement inside another WebElement + selenium:WebElement form = driver.findElement(web:By_id("form")); // By ID + selenium:WebElement searchboxByName = driver.findElement(web:By_name("q")); // By Name + selenium:WebElement searchboxbyCss = driver.findElement(web:By_cssSelector("#form .search-box")); // By CSS Selector + selenium:WebElement searchboxbyXpath = driver.findElement(web:By_xpath("//input[@id='search']")); // By XPath + selenium:WebElement searchboxbyClassName = driver.findElement(web:By_className("search-box")); // By Class Name + selenium:WebElement searchboxbyTagName = driver.findElement(web:By_tagName("input")); // By Tag Name + selenium:WebElement nestedElement = form.findElement(web:By_name("q")); // Locating a WebElement inside another WebElement } ``` @@ -81,22 +81,22 @@ To fetch data from a web element in Selenium, you can interact with it using var 1. Text of an element (e.g., a paragraph or label): ```ballerina -string labelText = driver.findElement(selenium:By_className("input-label")).getText(); +string labelText = driver.findElement(web:By_className("input-label")).getText(); io:println(labelText); ``` 2. Attribute value (e.g., value of an input field or the href attribute of a link): ```ballerina -string value = driver.findElement(selenium:By_id("elementId")).getAttribute("value"); // For input fields -string href = driver.findElement(selenium:By_tagName("a")).getAttribute("href"); // For links +string value = driver.findElement(web:By_id("elementId")).getAttribute("value"); // For input fields +string href = driver.findElement(web:By_tagName("a")).getAttribute("href"); // For links ``` 3. Checking if an element is displayed/enabled/selected: ```ballerina -selenium:WebElement element = driver.findElement(selenium:By_id("elementId")); +selenium:WebElement element = driver.findElement(web:By_id("elementId")); boolean isDisplayed = element.isDisplayed(); boolean isEnabled = element.isEnabled(); boolean isSelected = element.isSelected(); @@ -108,7 +108,7 @@ boolean isSelected = element.isSelected(); To send user inputs to web elements, you can use the sendKeys() method, which simulates typing into text-based input fields (like textboxes, textareas, etc.). ```ballerina -check driver.findElement(selenium:By_className("search-box")).sendKeys(["ballerina"]); +check driver.findElement(web:By_className("search-box")).sendKeys(["ballerina"]); ``` #### Performing Click event @@ -116,7 +116,7 @@ check driver.findElement(selenium:By_className("search-box")).sendKeys(["balleri To perform a click event on a web element, you can use the click() method on the WebElement object. This is commonly used to simulate clicking on buttons, links, checkboxes, radio buttons, or any other clickable elements. ```ballerina -driver.findElement(selenium:By_className("submit-btn")).click(); +driver.findElement(web:By_className("submit-btn")).click(); ``` #### Closing the browser @@ -133,8 +133,8 @@ The below code will do the following, 3. Search for 'http' module. ```ballerina -import xlibb/selenium.org.openqa.selenium.chrome; -import xlibb/selenium.org.openqa.selenium; +import xlibb/selenium.chrome; +import xlibb/selenium.web; import ballerina/lang.runtime; public function main() returns error? { @@ -144,8 +144,8 @@ public function main() returns error? { // Wait for some time, till the page completely loads. runtime:sleep(2); - check driver.findElement(selenium:By_id("downshift-search-bar-input")).sendKeys(["http"]); - driver.findElement(selenium:By_className("Search_searchButton__iLPLB")).click(); + check driver.findElement(web:By_id("downshift-search-bar-input")).sendKeys(["http"]); + driver.findElement(web:By_className("Search_searchButton__iLPLB")).click(); } ``` diff --git a/ballerina/modules/org.openqa.selenium.chrome/ChromeDriver.bal b/ballerina/modules/chrome/ChromeDriver.bal similarity index 99% rename from ballerina/modules/org.openqa.selenium.chrome/ChromeDriver.bal rename to ballerina/modules/chrome/ChromeDriver.bal index 359eec1..d8bc23e 100644 --- a/ballerina/modules/org.openqa.selenium.chrome/ChromeDriver.bal +++ b/ballerina/modules/chrome/ChromeDriver.bal @@ -20,7 +20,7 @@ import selenium.java.nio.file as javaniofile; import selenium.java.util as javautil; import selenium.java.util.'function as javautilfunction; import selenium.java.util.logging as javautillogging; -import selenium.org.openqa.selenium as orgopenqaselenium; +import selenium.web as orgopenqaselenium; import selenium.org.openqa.selenium.'remote as orgopenqaseleniumremote; import selenium.org.openqa.selenium.'remote.http as orgopenqaseleniumremotehttp; import selenium.org.openqa.selenium.bidi as orgopenqaseleniumbidi; diff --git a/ballerina/modules/org.openqa.selenium.chrome/ChromeDriverService.bal b/ballerina/modules/chrome/ChromeDriverService.bal similarity index 100% rename from ballerina/modules/org.openqa.selenium.chrome/ChromeDriverService.bal rename to ballerina/modules/chrome/ChromeDriverService.bal diff --git a/ballerina/modules/org.openqa.selenium.chrome/ChromeOptions.bal b/ballerina/modules/chrome/ChromeOptions.bal similarity index 100% rename from ballerina/modules/org.openqa.selenium.chrome/ChromeOptions.bal rename to ballerina/modules/chrome/ChromeOptions.bal diff --git a/ballerina/modules/org.openqa.selenium.edge/EdgeDriver.bal b/ballerina/modules/edge/EdgeDriver.bal similarity index 99% rename from ballerina/modules/org.openqa.selenium.edge/EdgeDriver.bal rename to ballerina/modules/edge/EdgeDriver.bal index 966d7e0..971cc50 100644 --- a/ballerina/modules/org.openqa.selenium.edge/EdgeDriver.bal +++ b/ballerina/modules/edge/EdgeDriver.bal @@ -20,7 +20,7 @@ import selenium.java.nio.file as javaniofile; import selenium.java.util as javautil; import selenium.java.util.'function as javautilfunction; import selenium.java.util.logging as javautillogging; -import selenium.org.openqa.selenium as orgopenqaselenium; +import selenium.web as orgopenqaselenium; import selenium.org.openqa.selenium.'remote as orgopenqaseleniumremote; import selenium.org.openqa.selenium.'remote.http as orgopenqaseleniumremotehttp; import selenium.org.openqa.selenium.bidi as orgopenqaseleniumbidi; diff --git a/ballerina/modules/org.openqa.selenium.edge/EdgeDriverService.bal b/ballerina/modules/edge/EdgeDriverService.bal similarity index 100% rename from ballerina/modules/org.openqa.selenium.edge/EdgeDriverService.bal rename to ballerina/modules/edge/EdgeDriverService.bal diff --git a/ballerina/modules/org.openqa.selenium.edge/EdgeOptions.bal b/ballerina/modules/edge/EdgeOptions.bal similarity index 100% rename from ballerina/modules/org.openqa.selenium.edge/EdgeOptions.bal rename to ballerina/modules/edge/EdgeOptions.bal diff --git a/ballerina/modules/org.openqa.selenium.firefox/FirefoxCommandContext.bal b/ballerina/modules/firefox/FirefoxCommandContext.bal similarity index 100% rename from ballerina/modules/org.openqa.selenium.firefox/FirefoxCommandContext.bal rename to ballerina/modules/firefox/FirefoxCommandContext.bal diff --git a/ballerina/modules/org.openqa.selenium.firefox/FirefoxDriver.bal b/ballerina/modules/firefox/FirefoxDriver.bal similarity index 99% rename from ballerina/modules/org.openqa.selenium.firefox/FirefoxDriver.bal rename to ballerina/modules/firefox/FirefoxDriver.bal index c7d093e..934fd21 100644 --- a/ballerina/modules/org.openqa.selenium.firefox/FirefoxDriver.bal +++ b/ballerina/modules/firefox/FirefoxDriver.bal @@ -20,7 +20,7 @@ import selenium.java.nio.file as javaniofile; import selenium.java.util as javautil; import selenium.java.util.'function as javautilfunction; import selenium.java.util.logging as javautillogging; -import selenium.org.openqa.selenium as orgopenqaselenium; +import selenium.web as orgopenqaselenium; import selenium.org.openqa.selenium.'remote as orgopenqaseleniumremote; import selenium.org.openqa.selenium.'remote.http as orgopenqaseleniumremotehttp; import selenium.org.openqa.selenium.bidi as orgopenqaseleniumbidi; diff --git a/ballerina/modules/org.openqa.selenium.firefox/FirefoxDriverService.bal b/ballerina/modules/firefox/FirefoxDriverService.bal similarity index 100% rename from ballerina/modules/org.openqa.selenium.firefox/FirefoxDriverService.bal rename to ballerina/modules/firefox/FirefoxDriverService.bal diff --git a/ballerina/modules/org.openqa.selenium.firefox/FirefoxOptions.bal b/ballerina/modules/firefox/FirefoxOptions.bal similarity index 100% rename from ballerina/modules/org.openqa.selenium.firefox/FirefoxOptions.bal rename to ballerina/modules/firefox/FirefoxOptions.bal diff --git a/ballerina/modules/org.openqa.selenium.chromium/ChromiumDriver.bal b/ballerina/modules/org.openqa.selenium.chromium/ChromiumDriver.bal index 90c3e1e..8098dd7 100644 --- a/ballerina/modules/org.openqa.selenium.chromium/ChromiumDriver.bal +++ b/ballerina/modules/org.openqa.selenium.chromium/ChromiumDriver.bal @@ -20,7 +20,7 @@ import selenium.java.nio.file as javaniofile; import selenium.java.util as javautil; import selenium.java.util.'function as javautilfunction; import selenium.java.util.logging as javautillogging; -import selenium.org.openqa.selenium as orgopenqaselenium; +import selenium.web as orgopenqaselenium; import selenium.org.openqa.selenium.'remote as orgopenqaseleniumremote; import selenium.org.openqa.selenium.bidi as orgopenqaseleniumbidi; import selenium.org.openqa.selenium.devtools as orgopenqaseleniumdevtools; diff --git a/ballerina/modules/org.openqa.selenium.remote/RemoteWebDriver.bal b/ballerina/modules/org.openqa.selenium.remote/RemoteWebDriver.bal index 837ce0f..da39b07 100644 --- a/ballerina/modules/org.openqa.selenium.remote/RemoteWebDriver.bal +++ b/ballerina/modules/org.openqa.selenium.remote/RemoteWebDriver.bal @@ -21,7 +21,7 @@ import selenium.java.nio.file as javaniofile; import selenium.java.util as javautil; import selenium.java.util.'function as javautilfunction; import selenium.java.util.logging as javautillogging; -import selenium.org.openqa.selenium as orgopenqaselenium; +import selenium.web as orgopenqaselenium; import selenium.org.openqa.selenium.federatedcredentialmanagement as orgopenqaseleniumfederatedcredentialmanagement; import selenium.org.openqa.selenium.print as orgopenqaseleniumprint; import selenium.org.openqa.selenium.virtualauthenticator as orgopenqaseleniumvirtualauthenticator; diff --git a/ballerina/modules/org.openqa.selenium.safari/SafariDriver.bal b/ballerina/modules/safari/SafariDriver.bal similarity index 99% rename from ballerina/modules/org.openqa.selenium.safari/SafariDriver.bal rename to ballerina/modules/safari/SafariDriver.bal index 74096f1..66f090a 100644 --- a/ballerina/modules/org.openqa.selenium.safari/SafariDriver.bal +++ b/ballerina/modules/safari/SafariDriver.bal @@ -20,7 +20,7 @@ import selenium.java.nio.file as javaniofile; import selenium.java.util as javautil; import selenium.java.util.'function as javautilfunction; import selenium.java.util.logging as javautillogging; -import selenium.org.openqa.selenium as orgopenqaselenium; +import selenium.web as orgopenqaselenium; import selenium.org.openqa.selenium.'remote as orgopenqaseleniumremote; import selenium.org.openqa.selenium.'remote.'service as orgopenqaseleniumremoteservice; import selenium.org.openqa.selenium.'remote.http as orgopenqaseleniumremotehttp; diff --git a/ballerina/modules/org.openqa.selenium.safari/SafariDriverService.bal b/ballerina/modules/safari/SafariDriverService.bal similarity index 100% rename from ballerina/modules/org.openqa.selenium.safari/SafariDriverService.bal rename to ballerina/modules/safari/SafariDriverService.bal diff --git a/ballerina/modules/org.openqa.selenium.safari/SafariOptions.bal b/ballerina/modules/safari/SafariOptions.bal similarity index 100% rename from ballerina/modules/org.openqa.selenium.safari/SafariOptions.bal rename to ballerina/modules/safari/SafariOptions.bal diff --git a/ballerina/modules/org.openqa.selenium/By.bal b/ballerina/modules/web/By.bal similarity index 100% rename from ballerina/modules/org.openqa.selenium/By.bal rename to ballerina/modules/web/By.bal diff --git a/ballerina/modules/org.openqa.selenium/Capabilities.bal b/ballerina/modules/web/Capabilities.bal similarity index 100% rename from ballerina/modules/org.openqa.selenium/Capabilities.bal rename to ballerina/modules/web/Capabilities.bal diff --git a/ballerina/modules/org.openqa.selenium/Dimension.bal b/ballerina/modules/web/Dimension.bal similarity index 100% rename from ballerina/modules/org.openqa.selenium/Dimension.bal rename to ballerina/modules/web/Dimension.bal diff --git a/ballerina/modules/org.openqa.selenium/Navigation.bal b/ballerina/modules/web/Navigation.bal similarity index 100% rename from ballerina/modules/org.openqa.selenium/Navigation.bal rename to ballerina/modules/web/Navigation.bal diff --git a/ballerina/modules/org.openqa.selenium/Options.bal b/ballerina/modules/web/Options.bal similarity index 100% rename from ballerina/modules/org.openqa.selenium/Options.bal rename to ballerina/modules/web/Options.bal diff --git a/ballerina/modules/org.openqa.selenium/OutputType.bal b/ballerina/modules/web/OutputType.bal similarity index 100% rename from ballerina/modules/org.openqa.selenium/OutputType.bal rename to ballerina/modules/web/OutputType.bal diff --git a/ballerina/modules/org.openqa.selenium/Pdf.bal b/ballerina/modules/web/Pdf.bal similarity index 100% rename from ballerina/modules/org.openqa.selenium/Pdf.bal rename to ballerina/modules/web/Pdf.bal diff --git a/ballerina/modules/org.openqa.selenium/Point.bal b/ballerina/modules/web/Point.bal similarity index 100% rename from ballerina/modules/org.openqa.selenium/Point.bal rename to ballerina/modules/web/Point.bal diff --git a/ballerina/modules/org.openqa.selenium/Rectangle.bal b/ballerina/modules/web/Rectangle.bal similarity index 100% rename from ballerina/modules/org.openqa.selenium/Rectangle.bal rename to ballerina/modules/web/Rectangle.bal diff --git a/ballerina/modules/org.openqa.selenium/ScriptKey.bal b/ballerina/modules/web/ScriptKey.bal similarity index 100% rename from ballerina/modules/org.openqa.selenium/ScriptKey.bal rename to ballerina/modules/web/ScriptKey.bal diff --git a/ballerina/modules/org.openqa.selenium/SearchContext.bal b/ballerina/modules/web/SearchContext.bal similarity index 100% rename from ballerina/modules/org.openqa.selenium/SearchContext.bal rename to ballerina/modules/web/SearchContext.bal diff --git a/ballerina/modules/org.openqa.selenium/TargetLocator.bal b/ballerina/modules/web/TargetLocator.bal similarity index 100% rename from ballerina/modules/org.openqa.selenium/TargetLocator.bal rename to ballerina/modules/web/TargetLocator.bal diff --git a/ballerina/modules/org.openqa.selenium/WebDriver.bal b/ballerina/modules/web/WebDriver.bal similarity index 100% rename from ballerina/modules/org.openqa.selenium/WebDriver.bal rename to ballerina/modules/web/WebDriver.bal diff --git a/ballerina/modules/org.openqa.selenium/WebElement.bal b/ballerina/modules/web/WebElement.bal similarity index 100% rename from ballerina/modules/org.openqa.selenium/WebElement.bal rename to ballerina/modules/web/WebElement.bal From 27cf30c93666b74697af65701c52b8cd76964de7 Mon Sep 17 00:00:00 2001 From: dharshi Date: Fri, 6 Dec 2024 11:23:34 +0530 Subject: [PATCH 11/43] update module names in example and readme --- README.md | 48 ++--- .../Dependencies.toml | 63 +------ .../student_application_form_filling/main.bal | 164 +++++++++--------- 3 files changed, 108 insertions(+), 167 deletions(-) diff --git a/README.md b/README.md index 3d802ff..525e065 100644 --- a/README.md +++ b/README.md @@ -18,10 +18,10 @@ This module automates web applications across various browsers. Selenium interac The core component of Selenium is the WebDriver. It is an interface for controlling a web browser instance and communicates with the browser through its native API. You can create a web driver based on the browser you want to automate. ```ballerina -import xlibb/selenium.org.openqa.selenium.chrome; -import xlibb/selenium.org.openqa.selenium.safari; -import xlibb/selenium.org.openqa.selenium.edge; -import xlibb/selenium.org.openqa.selenium.firefox; +import xlibb/selenium.chrome; +import xlibb/selenium.safari; +import xlibb/selenium.edge; +import xlibb/selenium.firefox; public function main() { @@ -36,7 +36,7 @@ public function main() { #### Launching website. ```ballerina -import xlibb/selenium.org.openqa.selenium.chrome; +import xlibb/selenium.chrome; public function main() { @@ -65,20 +65,20 @@ A locator is a way to identify elements on a page. Selenium provides support for ``` ```ballerina -import xlibb/selenium.org.openqa.selenium.chrome; -import xlibb/selenium.org.openqa.selenium; +import xlibb/selenium.chrome; +import xlibb/selenium.web; import ballerina/io; public function main() { chrome:ChromeDriver driver = chrome:newChromeDriver1(); - selenium:WebElement form = driver.findElement(selenium:By_id("form")); // By ID - selenium:WebElement searchboxByName = driver.findElement(selenium:By_name("q")); // By Name - selenium:WebElement searchboxbyCss = driver.findElement(selenium:By_cssSelector("#form .search-box")); // By CSS Selector - selenium:WebElement searchboxbyXpath = driver.findElement(selenium:By_xpath("//input[@id='search']")); // By XPath - selenium:WebElement searchboxbyClassName = driver.findElement(selenium:By_className("search-box")); // By Class Name - selenium:WebElement searchboxbyTagName = driver.findElement(selenium:By_tagName("input")); // By Tag Name - selenium:WebElement nestedElement = form.findElement(selenium:By_name("q")); // Locating a WebElement inside another WebElement + web:WebElement form = driver.findElement(web:By_id("form")); // By ID + web:WebElement searchboxByName = driver.findElement(web:By_name("q")); // By Name + web:WebElement searchboxbyCss = driver.findElement(web:By_cssSelector("#form .search-box")); // By CSS Selector + web:WebElement searchboxbyXpath = driver.findElement(web:By_xpath("//input[@id='search']")); // By XPath + web:WebElement searchboxbyClassName = driver.findElement(web:By_className("search-box")); // By Class Name + web:WebElement searchboxbyTagName = driver.findElement(web:By_tagName("input")); // By Tag Name + web:WebElement nestedElement = form.findElement(web:By_name("q")); // Locating a WebElement inside another WebElement } ``` @@ -90,22 +90,22 @@ To fetch data from a web element in Selenium, you can interact with it using var 1. Text of an element (e.g., a paragraph or label): ```ballerina -string labelText = driver.findElement(selenium:By_className("input-label")).getText(); +string labelText = driver.findElement(web:By_className("input-label")).getText(); io:println(labelText); ``` 2. Attribute value (e.g., value of an input field or the href attribute of a link): ```ballerina -string value = driver.findElement(selenium:By_id("elementId")).getAttribute("value"); // For input fields -string href = driver.findElement(selenium:By_tagName("a")).getAttribute("href"); // For links +string value = driver.findElement(web:By_id("elementId")).getAttribute("value"); // For input fields +string href = driver.findElement(web:By_tagName("a")).getAttribute("href"); // For links ``` 3. Checking if an element is displayed/enabled/selected: ```ballerina -selenium:WebElement element = driver.findElement(selenium:By_id("elementId")); +selenium:WebElement element = driver.findElement(web:By_id("elementId")); boolean isDisplayed = element.isDisplayed(); boolean isEnabled = element.isEnabled(); boolean isSelected = element.isSelected(); @@ -117,7 +117,7 @@ boolean isSelected = element.isSelected(); To send user inputs to web elements, you can use the sendKeys() method, which simulates typing into text-based input fields (like textboxes, textareas, etc.). ```ballerina -check driver.findElement(selenium:By_className("search-box")).sendKeys(["ballerina"]); +check driver.findElement(web:By_className("search-box")).sendKeys(["ballerina"]); ``` #### Performing Click event @@ -125,7 +125,7 @@ check driver.findElement(selenium:By_className("search-box")).sendKeys(["balleri To perform a click event on a web element, you can use the click() method on the WebElement object. This is commonly used to simulate clicking on buttons, links, checkboxes, radio buttons, or any other clickable elements. ```ballerina -driver.findElement(selenium:By_className("submit-btn")).click(); +driver.findElement(web:By_className("submit-btn")).click(); ``` #### Closing the browser @@ -142,8 +142,8 @@ The below code will do the following, 3. Search for 'http' module. ```ballerina -import xlibb/selenium.org.openqa.selenium.chrome; -import xlibb/selenium.org.openqa.selenium; +import xlibb/selenium.chrome; +import xlibb/selenium.web; import ballerina/lang.runtime; public function main() returns error? { @@ -153,8 +153,8 @@ public function main() returns error? { // Wait for some time, till the page completely loads. runtime:sleep(2); - check driver.findElement(selenium:By_id("downshift-search-bar-input")).sendKeys(["http"]); - driver.findElement(selenium:By_className("Search_searchButton__iLPLB")).click(); + check driver.findElement(web:By_id("downshift-search-bar-input")).sendKeys(["http"]); + driver.findElement(web:By_className("Search_searchButton__iLPLB")).click(); } ``` diff --git a/examples/student_application_form_filling/Dependencies.toml b/examples/student_application_form_filling/Dependencies.toml index 4c85216..82628ba 100644 --- a/examples/student_application_form_filling/Dependencies.toml +++ b/examples/student_application_form_filling/Dependencies.toml @@ -10,7 +10,7 @@ distribution-version = "2201.10.2" [[package]] org = "ballerina" name = "io" -version = "1.6.1" +version = "1.6.3" dependencies = [ {org = "ballerina", name = "jballerina.java"}, {org = "ballerina", name = "lang.value"} @@ -24,25 +24,6 @@ org = "ballerina" name = "jballerina.java" version = "0.0.0" -[[package]] -org = "ballerina" -name = "jballerina.java.arrays" -version = "1.4.0" -dependencies = [ - {org = "ballerina", name = "jballerina.java"} -] - -[[package]] -org = "ballerina" -name = "lang.runtime" -version = "0.0.0" -dependencies = [ - {org = "ballerina", name = "jballerina.java"} -] -modules = [ - {org = "ballerina", packageName = "lang.runtime", moduleName = "lang.runtime"} -] - [[package]] org = "ballerina" name = "lang.value" @@ -71,53 +52,13 @@ modules = [ {org = "ballerinai", packageName = "observe", moduleName = "observe"} ] -[[package]] -org = "dharshi" -name = "selenium" -version = "0.1.0" -dependencies = [ - {org = "ballerina", name = "io"}, - {org = "ballerina", name = "jballerina.java"}, - {org = "ballerina", name = "jballerina.java.arrays"}, - {org = "ballerinai", name = "observe"} -] -modules = [ - {org = "dharshi", packageName = "selenium", moduleName = "selenium"}, - {org = "dharshi", packageName = "selenium", moduleName = "selenium.java.io"}, - {org = "dharshi", packageName = "selenium", moduleName = "selenium.java.lang"}, - {org = "dharshi", packageName = "selenium", moduleName = "selenium.java.net"}, - {org = "dharshi", packageName = "selenium", moduleName = "selenium.java.nio.file"}, - {org = "dharshi", packageName = "selenium", moduleName = "selenium.java.util"}, - {org = "dharshi", packageName = "selenium", moduleName = "selenium.java.util.function"}, - {org = "dharshi", packageName = "selenium", moduleName = "selenium.java.util.logging"}, - {org = "dharshi", packageName = "selenium", moduleName = "selenium.org.openqa.selenium"}, - {org = "dharshi", packageName = "selenium", moduleName = "selenium.org.openqa.selenium.bidi"}, - {org = "dharshi", packageName = "selenium", moduleName = "selenium.org.openqa.selenium.chrome"}, - {org = "dharshi", packageName = "selenium", moduleName = "selenium.org.openqa.selenium.chromium"}, - {org = "dharshi", packageName = "selenium", moduleName = "selenium.org.openqa.selenium.devtools"}, - {org = "dharshi", packageName = "selenium", moduleName = "selenium.org.openqa.selenium.edge"}, - {org = "dharshi", packageName = "selenium", moduleName = "selenium.org.openqa.selenium.federatedcredentialmanagement"}, - {org = "dharshi", packageName = "selenium", moduleName = "selenium.org.openqa.selenium.firefox"}, - {org = "dharshi", packageName = "selenium", moduleName = "selenium.org.openqa.selenium.html5"}, - {org = "dharshi", packageName = "selenium", moduleName = "selenium.org.openqa.selenium.logging"}, - {org = "dharshi", packageName = "selenium", moduleName = "selenium.org.openqa.selenium.mobile"}, - {org = "dharshi", packageName = "selenium", moduleName = "selenium.org.openqa.selenium.print"}, - {org = "dharshi", packageName = "selenium", moduleName = "selenium.org.openqa.selenium.remote"}, - {org = "dharshi", packageName = "selenium", moduleName = "selenium.org.openqa.selenium.remote.http"}, - {org = "dharshi", packageName = "selenium", moduleName = "selenium.org.openqa.selenium.remote.service"}, - {org = "dharshi", packageName = "selenium", moduleName = "selenium.org.openqa.selenium.safari"}, - {org = "dharshi", packageName = "selenium", moduleName = "selenium.org.openqa.selenium.virtualauthenticator"} -] - [[package]] org = "xlibb" name = "student_application_form_filling" version = "0.1.0" dependencies = [ {org = "ballerina", name = "io"}, - {org = "ballerina", name = "lang.runtime"}, - {org = "ballerinai", name = "observe"}, - {org = "dharshi", name = "selenium"} + {org = "ballerinai", name = "observe"} ] modules = [ {org = "xlibb", packageName = "student_application_form_filling", moduleName = "student_application_form_filling"}, diff --git a/examples/student_application_form_filling/main.bal b/examples/student_application_form_filling/main.bal index 029d48d..13b6de8 100644 --- a/examples/student_application_form_filling/main.bal +++ b/examples/student_application_form_filling/main.bal @@ -17,8 +17,8 @@ import ballerina/io; import ballerina/lang.runtime; -import xlibb/selenium.org.openqa.selenium; -import xlibb/selenium.org.openqa.selenium.chrome; +import xlibb/selenium.web; +import xlibb/selenium.chrome; public function main() returns error? { @@ -29,108 +29,108 @@ public function main() returns error? { runtime:sleep(2); - driver.findElement(selenium:By_id("fullName")).click(); - check driver.findElement(selenium:By_id("fullName")).sendKeys([data.fullName]); - driver.findElement(selenium:By_id("nameWithInitials")).click(); - check driver.findElement(selenium:By_id("nameWithInitials")).sendKeys([data.nameWithInitials]); - driver.findElement(selenium:By_id("dob")).click(); - check driver.findElement(selenium:By_id("dob")).sendKeys([data.dob]); - driver.findElement(selenium:By_id("age")).click(); - check driver.findElement(selenium:By_id("age")).sendKeys([data.age]); - driver.findElement(selenium:By_id("nationality")).click(); - check driver.findElement(selenium:By_id("nationality")).sendKeys([data.nationality]); - driver.findElement(selenium:By_id(data.gender)).click(); - driver.findElement(selenium:By_id("address")).click(); - check driver.findElement(selenium:By_id("address")).sendKeys([data.address]); - driver.findElement(selenium:By_id("mobile")).click(); - check driver.findElement(selenium:By_id("mobile")).sendKeys([data.mobile]); - driver.findElement(selenium:By_id("district")).click(); - check driver.findElement(selenium:By_id("district")).sendKeys([data.district]); - driver.findElement(selenium:By_id("gramaSevaka")).click(); - check driver.findElement(selenium:By_id("gramaSevaka")).sendKeys([data.gramaSevaka]); - driver.findElement(selenium:By_id("nic")).click(); - check driver.findElement(selenium:By_id("nic")).sendKeys([data.nic ?: ""]); - driver.findElement(selenium:By_id("passport")).click(); - check driver.findElement(selenium:By_id("passport")).sendKeys([data.passport ?: ""]); + driver.findElement(web:By_id("fullName")).click(); + check driver.findElement(web:By_id("fullName")).sendKeys([data.fullName]); + driver.findElement(web:By_id("nameWithInitials")).click(); + check driver.findElement(web:By_id("nameWithInitials")).sendKeys([data.nameWithInitials]); + driver.findElement(web:By_id("dob")).click(); + check driver.findElement(web:By_id("dob")).sendKeys([data.dob]); + driver.findElement(web:By_id("age")).click(); + check driver.findElement(web:By_id("age")).sendKeys([data.age]); + driver.findElement(web:By_id("nationality")).click(); + check driver.findElement(web:By_id("nationality")).sendKeys([data.nationality]); + driver.findElement(web:By_id(data.gender)).click(); + driver.findElement(web:By_id("address")).click(); + check driver.findElement(web:By_id("address")).sendKeys([data.address]); + driver.findElement(web:By_id("mobile")).click(); + check driver.findElement(web:By_id("mobile")).sendKeys([data.mobile]); + driver.findElement(web:By_id("district")).click(); + check driver.findElement(web:By_id("district")).sendKeys([data.district]); + driver.findElement(web:By_id("gramaSevaka")).click(); + check driver.findElement(web:By_id("gramaSevaka")).sendKeys([data.gramaSevaka]); + driver.findElement(web:By_id("nic")).click(); + check driver.findElement(web:By_id("nic")).sendKeys([data.nic ?: ""]); + driver.findElement(web:By_id("passport")).click(); + check driver.findElement(web:By_id("passport")).sendKeys([data.passport ?: ""]); // 2. Emergency contact - driver.findElement(selenium:By_id("emer-name")).click(); - check driver.findElement(selenium:By_id("emer-name")).sendKeys([data.emergency.name]); - driver.findElement(selenium:By_id("emer-address")).click(); - check driver.findElement(selenium:By_id("emer-address")).sendKeys([data.emergency.address]); - driver.findElement(selenium:By_id("emer-mobile")).click(); - check driver.findElement(selenium:By_id("emer-mobile")).sendKeys([data.emergency.mobile]); - driver.findElement(selenium:By_id("relationship")).click(); - check driver.findElement(selenium:By_id("relationship")).sendKeys([data.emergency.relationship]); - driver.findElement(selenium:By_id("emer-email")).click(); - check driver.findElement(selenium:By_id("emer-email")).sendKeys([data.emergency.email]); + driver.findElement(web:By_id("emer-name")).click(); + check driver.findElement(web:By_id("emer-name")).sendKeys([data.emergency.name]); + driver.findElement(web:By_id("emer-address")).click(); + check driver.findElement(web:By_id("emer-address")).sendKeys([data.emergency.address]); + driver.findElement(web:By_id("emer-mobile")).click(); + check driver.findElement(web:By_id("emer-mobile")).sendKeys([data.emergency.mobile]); + driver.findElement(web:By_id("relationship")).click(); + check driver.findElement(web:By_id("relationship")).sendKeys([data.emergency.relationship]); + driver.findElement(web:By_id("emer-email")).click(); + check driver.findElement(web:By_id("emer-email")).sendKeys([data.emergency.email]); // 3. O/L results - driver.findElement(selenium:By_id("ol-school")).click(); - check driver.findElement(selenium:By_id("ol-school")).sendKeys([data.olResults.school]); - driver.findElement(selenium:By_id("ol-year")).click(); - check driver.findElement(selenium:By_id("ol-year")).sendKeys([data.olResults.year]); - driver.findElement(selenium:By_id("ol-index")).click(); - check driver.findElement(selenium:By_id("ol-index")).sendKeys([data.olResults.index]); + driver.findElement(web:By_id("ol-school")).click(); + check driver.findElement(web:By_id("ol-school")).sendKeys([data.olResults.school]); + driver.findElement(web:By_id("ol-year")).click(); + check driver.findElement(web:By_id("ol-year")).sendKeys([data.olResults.year]); + driver.findElement(web:By_id("ol-index")).click(); + check driver.findElement(web:By_id("ol-index")).sendKeys([data.olResults.index]); foreach ResultsItem item in data.olResults.results { - driver.findElement(selenium:By_id("ol-subject")).click(); - check driver.findElement(selenium:By_id("ol-subject")).sendKeys([item.subject]); - driver.findElement(selenium:By_id("ol-grade")).click(); - check driver.findElement(selenium:By_id("ol-grade")).sendKeys([item.grade]); - driver.findElement(selenium:By_id("add-ol-result")).click(); + driver.findElement(web:By_id("ol-subject")).click(); + check driver.findElement(web:By_id("ol-subject")).sendKeys([item.subject]); + driver.findElement(web:By_id("ol-grade")).click(); + check driver.findElement(web:By_id("ol-grade")).sendKeys([item.grade]); + driver.findElement(web:By_id("add-ol-result")).click(); } // 4. A/L results - driver.findElement(selenium:By_id("al-school")).click(); - check driver.findElement(selenium:By_id("al-school")).sendKeys([data.alResults.school]); - driver.findElement(selenium:By_id("al-year")).click(); - check driver.findElement(selenium:By_id("al-year")).sendKeys([data.alResults.year]); - driver.findElement(selenium:By_id("al-index")).click(); - check driver.findElement(selenium:By_id("al-index")).sendKeys([data.alResults.index]); - driver.findElement(selenium:By_id("zScore")).click(); - check driver.findElement(selenium:By_id("zScore")).sendKeys([data.alResults.zScore]); - driver.findElement(selenium:By_id("al-subject")).click(); + driver.findElement(web:By_id("al-school")).click(); + check driver.findElement(web:By_id("al-school")).sendKeys([data.alResults.school]); + driver.findElement(web:By_id("al-year")).click(); + check driver.findElement(web:By_id("al-year")).sendKeys([data.alResults.year]); + driver.findElement(web:By_id("al-index")).click(); + check driver.findElement(web:By_id("al-index")).sendKeys([data.alResults.index]); + driver.findElement(web:By_id("zScore")).click(); + check driver.findElement(web:By_id("zScore")).sendKeys([data.alResults.zScore]); + driver.findElement(web:By_id("al-subject")).click(); foreach ResultsItem item in data.alResults.results { - check driver.findElement(selenium:By_id("al-subject")).sendKeys([item.subject]); - driver.findElement(selenium:By_id("al-grade")).click(); - check driver.findElement(selenium:By_id("al-grade")).sendKeys([item.grade]); - driver.findElement(selenium:By_id("add-al-result")).click(); + check driver.findElement(web:By_id("al-subject")).sendKeys([item.subject]); + driver.findElement(web:By_id("al-grade")).click(); + check driver.findElement(web:By_id("al-grade")).sendKeys([item.grade]); + driver.findElement(web:By_id("add-al-result")).click(); } // 5. Other qualifications foreach OtherQualificationsItem item in data.otherQualifications { - driver.findElement(selenium:By_id("course")).click(); - check driver.findElement(selenium:By_id("course")).sendKeys([item.course]); - driver.findElement(selenium:By_id("nvq")).click(); - check driver.findElement(selenium:By_id("nvq")).sendKeys([item.nvqLevel]); - driver.findElement(selenium:By_id("institute")).click(); - check driver.findElement(selenium:By_id("institute")).sendKeys([item.institute]); - driver.findElement(selenium:By_id("nvq-year")).click(); - check driver.findElement(selenium:By_id("nvq-year")).sendKeys([item.year]); - driver.findElement(selenium:By_id("nvq-result")).click(); - check driver.findElement(selenium:By_id("nvq-result")).sendKeys([item.result]); - driver.findElement(selenium:By_id("add-nvq-result")).click(); + driver.findElement(web:By_id("course")).click(); + check driver.findElement(web:By_id("course")).sendKeys([item.course]); + driver.findElement(web:By_id("nvq")).click(); + check driver.findElement(web:By_id("nvq")).sendKeys([item.nvqLevel]); + driver.findElement(web:By_id("institute")).click(); + check driver.findElement(web:By_id("institute")).sendKeys([item.institute]); + driver.findElement(web:By_id("nvq-year")).click(); + check driver.findElement(web:By_id("nvq-year")).sendKeys([item.year]); + driver.findElement(web:By_id("nvq-result")).click(); + check driver.findElement(web:By_id("nvq-result")).sendKeys([item.result]); + driver.findElement(web:By_id("add-nvq-result")).click(); } // 6. Extra curricular activities - driver.findElement(selenium:By_id("extra-activities")).click(); - check driver.findElement(selenium:By_id("extra-activities")).sendKeys([data.extraCurricularActivities]); + driver.findElement(web:By_id("extra-activities")).click(); + check driver.findElement(web:By_id("extra-activities")).sendKeys([data.extraCurricularActivities]); // 7. References foreach RefreesItem item in data.refrees { - driver.findElement(selenium:By_id("refree-name")).click(); - check driver.findElement(selenium:By_id("refree-name")).sendKeys([item.name]); - driver.findElement(selenium:By_id("designation")).click(); - check driver.findElement(selenium:By_id("designation")).sendKeys([item.designation]); - driver.findElement(selenium:By_id("refree-address")).click(); - check driver.findElement(selenium:By_id("refree-address")).sendKeys([item.address]); - driver.findElement(selenium:By_id("refree-mobile")).click(); - check driver.findElement(selenium:By_id("refree-mobile")).sendKeys([item.mobile]); - driver.findElement(selenium:By_id("add-refree")).click(); + driver.findElement(web:By_id("refree-name")).click(); + check driver.findElement(web:By_id("refree-name")).sendKeys([item.name]); + driver.findElement(web:By_id("designation")).click(); + check driver.findElement(web:By_id("designation")).sendKeys([item.designation]); + driver.findElement(web:By_id("refree-address")).click(); + check driver.findElement(web:By_id("refree-address")).sendKeys([item.address]); + driver.findElement(web:By_id("refree-mobile")).click(); + check driver.findElement(web:By_id("refree-mobile")).sendKeys([item.mobile]); + driver.findElement(web:By_id("add-refree")).click(); } // submit button - driver.findElement(selenium:By_id("submit")).click(); + driver.findElement(web:By_id("submit")).click(); io:println("Data entered successsfully!"); } From b42b6f0821bc88b0c6391ad54143a844cc1d1897 Mon Sep 17 00:00:00 2001 From: dharshi Date: Sat, 7 Dec 2024 20:36:16 +0530 Subject: [PATCH 12/43] corrected a spell mistake --- README.md | 2 +- ballerina/Module.md | 2 +- ballerina/Package.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 525e065..d3f8027 100644 --- a/README.md +++ b/README.md @@ -162,7 +162,7 @@ public function main() returns error? { The `Selenium` connector provides practical examples illustrating usage in various scenarios. Explore these [examples](https://github.com/xlibb/module-selenium/tree/main/examples/), covering the following use cases: -1. [Automating the Filling of Student Application Forms for a Web Application.](https://github.com/xlibb/module-selenium/tree/main/examples/student_appliation_form_filling). +1. [Automating the Filling of Student Application Forms for a Web Application.](https://github.com/xlibb/module-selenium/tree/main/examples/student_application_form_filling). ## Build from the source diff --git a/ballerina/Module.md b/ballerina/Module.md index f0130a2..48c12fa 100644 --- a/ballerina/Module.md +++ b/ballerina/Module.md @@ -180,4 +180,4 @@ Selenium IDE is a handy tool for finding locators for web elements. Here's how t The `Selenium` connector provides practical examples illustrating usage in various scenarios. Explore these [examples](https://github.com/xlibb/module-selenium/tree/main/examples/), covering the following use cases: -1. [Automating the Filling of Student Application Forms for a Web Application.](https://github.com/xlibb/module-selenium/tree/main/examples/student_appliation_form_filling). +1. [Automating the Filling of Student Application Forms for a Web Application.](https://github.com/xlibb/module-selenium/tree/main/examples/student_application_form_filling). diff --git a/ballerina/Package.md b/ballerina/Package.md index f0130a2..48c12fa 100644 --- a/ballerina/Package.md +++ b/ballerina/Package.md @@ -180,4 +180,4 @@ Selenium IDE is a handy tool for finding locators for web elements. Here's how t The `Selenium` connector provides practical examples illustrating usage in various scenarios. Explore these [examples](https://github.com/xlibb/module-selenium/tree/main/examples/), covering the following use cases: -1. [Automating the Filling of Student Application Forms for a Web Application.](https://github.com/xlibb/module-selenium/tree/main/examples/student_appliation_form_filling). +1. [Automating the Filling of Student Application Forms for a Web Application.](https://github.com/xlibb/module-selenium/tree/main/examples/student_application_form_filling). From d06d9652ba492793cbc217538ce7724520b21bed Mon Sep 17 00:00:00 2001 From: dharshi Date: Fri, 13 Dec 2024 09:46:57 +0530 Subject: [PATCH 13/43] add findAllElemenst feature --- ballerina/Dependencies.toml | 1 + ballerina/Module.md | 17 +- ballerina/Package.md | 17 +- ballerina/client.bal | 2 +- ballerina/modules/chrome/ChromeDriver.bal | 16 + ballerina/modules/edge/EdgeDriver.bal | 16 + ballerina/modules/firefox/FirefoxDriver.bal | 15 + .../modules/java.util.function/Consumer.bal | 39 + .../java.util.function/IntFunction.bal | 39 + .../java.util.function/UnaryOperator.bal | 39 + ballerina/modules/java.util.stream/Stream.bal | 39 + ballerina/modules/java.util/Comparator.bal | 39 + ballerina/modules/java.util/Iterator.bal | 39 + ballerina/modules/java.util/List.bal | 767 +++++++++++++++++- ballerina/modules/java.util/ListIterator.bal | 39 + ballerina/modules/java.util/Spliterator.bal | 39 + .../ChromiumDriver.bal | 16 + .../RemoteWebDriver.bal | 15 + ballerina/modules/safari/SafariDriver.bal | 15 + ballerina/modules/web/WebElement.bal | 15 + 20 files changed, 1191 insertions(+), 33 deletions(-) create mode 100644 ballerina/modules/java.util.function/Consumer.bal create mode 100644 ballerina/modules/java.util.function/IntFunction.bal create mode 100644 ballerina/modules/java.util.function/UnaryOperator.bal create mode 100644 ballerina/modules/java.util.stream/Stream.bal create mode 100644 ballerina/modules/java.util/Comparator.bal create mode 100644 ballerina/modules/java.util/Iterator.bal create mode 100644 ballerina/modules/java.util/ListIterator.bal create mode 100644 ballerina/modules/java.util/Spliterator.bal diff --git a/ballerina/Dependencies.toml b/ballerina/Dependencies.toml index e2a9477..20e09f2 100644 --- a/ballerina/Dependencies.toml +++ b/ballerina/Dependencies.toml @@ -67,6 +67,7 @@ modules = [ {org = "xlibb", packageName = "selenium", moduleName = "selenium.java.util"}, {org = "xlibb", packageName = "selenium", moduleName = "selenium.java.util.function"}, {org = "xlibb", packageName = "selenium", moduleName = "selenium.java.util.logging"}, + {org = "xlibb", packageName = "selenium", moduleName = "selenium.java.util.stream"}, {org = "xlibb", packageName = "selenium", moduleName = "selenium.org.openqa.selenium.bidi"}, {org = "xlibb", packageName = "selenium", moduleName = "selenium.org.openqa.selenium.chromium"}, {org = "xlibb", packageName = "selenium", moduleName = "selenium.org.openqa.selenium.devtools"}, diff --git a/ballerina/Module.md b/ballerina/Module.md index 48c12fa..18d5f9a 100644 --- a/ballerina/Module.md +++ b/ballerina/Module.md @@ -63,13 +63,14 @@ import ballerina/io; public function main() { chrome:ChromeDriver driver = chrome:newChromeDriver1(); - selenium:WebElement form = driver.findElement(web:By_id("form")); // By ID - selenium:WebElement searchboxByName = driver.findElement(web:By_name("q")); // By Name - selenium:WebElement searchboxbyCss = driver.findElement(web:By_cssSelector("#form .search-box")); // By CSS Selector - selenium:WebElement searchboxbyXpath = driver.findElement(web:By_xpath("//input[@id='search']")); // By XPath - selenium:WebElement searchboxbyClassName = driver.findElement(web:By_className("search-box")); // By Class Name - selenium:WebElement searchboxbyTagName = driver.findElement(web:By_tagName("input")); // By Tag Name - selenium:WebElement nestedElement = form.findElement(web:By_name("q")); // Locating a WebElement inside another WebElement + web:WebElement form = driver.findElement(web:By_id("form")); // By ID + web:WebElement searchboxByName = driver.findElement(web:By_name("q")); // By Name + web:WebElement searchboxbyCss = driver.findElement(web:By_cssSelector("#form .search-box")); // By CSS Selector + web:WebElement searchboxbyXpath = driver.findElement(web:By_xpath("//input[@id='search']")); // By XPath + web:WebElement searchboxbyClassName = driver.findElement(web:By_className("search-box")); // By Class Name + web:WebElement searchboxbyTagName = driver.findElement(web:By_tagName("input")); // By Tag Name + web:WebElement nestedElement = form.findElement(web:By_name("q")); // Locating a WebElement inside another WebElement + web:WebElement[] inputElements = check driver.findAllElements(web:By_tagName("input")); // Locating all elements with same locator } ``` @@ -96,7 +97,7 @@ string href = driver.findElement(web:By_tagName("a")).getAttribute("href"); // F 3. Checking if an element is displayed/enabled/selected: ```ballerina -selenium:WebElement element = driver.findElement(web:By_id("elementId")); +web:WebElement element = driver.findElement(web:By_id("elementId")); boolean isDisplayed = element.isDisplayed(); boolean isEnabled = element.isEnabled(); boolean isSelected = element.isSelected(); diff --git a/ballerina/Package.md b/ballerina/Package.md index 48c12fa..18d5f9a 100644 --- a/ballerina/Package.md +++ b/ballerina/Package.md @@ -63,13 +63,14 @@ import ballerina/io; public function main() { chrome:ChromeDriver driver = chrome:newChromeDriver1(); - selenium:WebElement form = driver.findElement(web:By_id("form")); // By ID - selenium:WebElement searchboxByName = driver.findElement(web:By_name("q")); // By Name - selenium:WebElement searchboxbyCss = driver.findElement(web:By_cssSelector("#form .search-box")); // By CSS Selector - selenium:WebElement searchboxbyXpath = driver.findElement(web:By_xpath("//input[@id='search']")); // By XPath - selenium:WebElement searchboxbyClassName = driver.findElement(web:By_className("search-box")); // By Class Name - selenium:WebElement searchboxbyTagName = driver.findElement(web:By_tagName("input")); // By Tag Name - selenium:WebElement nestedElement = form.findElement(web:By_name("q")); // Locating a WebElement inside another WebElement + web:WebElement form = driver.findElement(web:By_id("form")); // By ID + web:WebElement searchboxByName = driver.findElement(web:By_name("q")); // By Name + web:WebElement searchboxbyCss = driver.findElement(web:By_cssSelector("#form .search-box")); // By CSS Selector + web:WebElement searchboxbyXpath = driver.findElement(web:By_xpath("//input[@id='search']")); // By XPath + web:WebElement searchboxbyClassName = driver.findElement(web:By_className("search-box")); // By Class Name + web:WebElement searchboxbyTagName = driver.findElement(web:By_tagName("input")); // By Tag Name + web:WebElement nestedElement = form.findElement(web:By_name("q")); // Locating a WebElement inside another WebElement + web:WebElement[] inputElements = check driver.findAllElements(web:By_tagName("input")); // Locating all elements with same locator } ``` @@ -96,7 +97,7 @@ string href = driver.findElement(web:By_tagName("a")).getAttribute("href"); // F 3. Checking if an element is displayed/enabled/selected: ```ballerina -selenium:WebElement element = driver.findElement(web:By_id("elementId")); +web:WebElement element = driver.findElement(web:By_id("elementId")); boolean isDisplayed = element.isDisplayed(); boolean isEnabled = element.isEnabled(); boolean isSelected = element.isSelected(); diff --git a/ballerina/client.bal b/ballerina/client.bal index 2c69ef5..66cdc3f 100644 --- a/ballerina/client.bal +++ b/ballerina/client.bal @@ -12,4 +12,4 @@ // "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY // KIND, either express or implied. See the License for the // specific language governing permissions and limitations -// under the License. \ No newline at end of file +// under the License. diff --git a/ballerina/modules/chrome/ChromeDriver.bal b/ballerina/modules/chrome/ChromeDriver.bal index d8bc23e..051f871 100644 --- a/ballerina/modules/chrome/ChromeDriver.bal +++ b/ballerina/modules/chrome/ChromeDriver.bal @@ -160,6 +160,22 @@ public distinct class ChromeDriver { return newObj; } + # The function that maps to the `findElements` method of `org.openqa.selenium.chrome.ChromeDriver`. + # + # + locator - The `orgopenqaselenium:By` value required to map with the Java method parameter. + # + return - The `orgopenqaselenium:WebElement[]` value returning from the Java mapping. + public isolated function findAllElements(orgopenqaselenium:By locator) returns orgopenqaselenium:WebElement[]|error { + handle externalObj = org_openqa_selenium_chrome_ChromeDriver_findElements(self.jObj, locator.jObj); + javautil:List newObj = new (externalObj); + orgopenqaselenium:WebElement[] elements = []; + javalang:Object[] arr = check newObj.toArray(); + foreach var item in arr { + elements.push(check java:cast(item, orgopenqaselenium:WebElement)); + } + return elements; + } + + # The function that maps to the `findElements` method of `org.openqa.selenium.chrome.ChromeDriver`. # # + locator - The `orgopenqaselenium:By` value required to map with the Java method parameter. diff --git a/ballerina/modules/edge/EdgeDriver.bal b/ballerina/modules/edge/EdgeDriver.bal index 971cc50..9818dc2 100644 --- a/ballerina/modules/edge/EdgeDriver.bal +++ b/ballerina/modules/edge/EdgeDriver.bal @@ -170,6 +170,22 @@ public distinct class EdgeDriver { return newObj; } + # The function that maps to the `findElements` method of `org.openqa.selenium.chrome.ChromeDriver`. + # + # + locator - The `orgopenqaselenium:By` value required to map with the Java method parameter. + # + return - The `orgopenqaselenium:WebElement[]` value returning from the Java mapping. + public isolated function findAllElements(orgopenqaselenium:By locator) returns orgopenqaselenium:WebElement[]|error { + handle externalObj = org_openqa_selenium_edge_EdgeDriver_findElements(self.jObj, locator.jObj); + javautil:List newObj = new (externalObj); + orgopenqaselenium:WebElement[] elements = []; + javalang:Object[] arr = check newObj.toArray(); + foreach var item in arr { + elements.push(check java:cast(item, orgopenqaselenium:WebElement)); + } + return elements; + } + + # The function that maps to the `findElements` method of `org.openqa.selenium.edge.EdgeDriver`. # # + context - The `orgopenqaselenium:SearchContext` value required to map with the Java method parameter. diff --git a/ballerina/modules/firefox/FirefoxDriver.bal b/ballerina/modules/firefox/FirefoxDriver.bal index 934fd21..f457aea 100644 --- a/ballerina/modules/firefox/FirefoxDriver.bal +++ b/ballerina/modules/firefox/FirefoxDriver.bal @@ -151,6 +151,21 @@ public distinct class FirefoxDriver { return newObj; } + # The function that maps to the `findElements` method of `org.openqa.selenium.chrome.ChromeDriver`. + # + # + locator - The `orgopenqaselenium:By` value required to map with the Java method parameter. + # + return - The `orgopenqaselenium:WebElement[]` value returning from the Java mapping. + public isolated function findAllElements(orgopenqaselenium:By locator) returns orgopenqaselenium:WebElement[]|error { + handle externalObj = org_openqa_selenium_firefox_FirefoxDriver_findElements(self.jObj, locator.jObj); + javautil:List newObj = new (externalObj); + orgopenqaselenium:WebElement[] elements = []; + javalang:Object[] arr = check newObj.toArray(); + foreach var item in arr { + elements.push(check java:cast(item, orgopenqaselenium:WebElement)); + } + return elements; + } + # The function that maps to the `findElements` method of `org.openqa.selenium.firefox.FirefoxDriver`. # # + context - The `orgopenqaselenium:SearchContext` value required to map with the Java method parameter. diff --git a/ballerina/modules/java.util.function/Consumer.bal b/ballerina/modules/java.util.function/Consumer.bal new file mode 100644 index 0000000..60607d6 --- /dev/null +++ b/ballerina/modules/java.util.function/Consumer.bal @@ -0,0 +1,39 @@ +// This is an empty Ballerina class autogenerated to represent the `java.util.function.Consumer` Java interface. +// +// If you need the implementation of this class generated, please use the following command. +// +// $ bal bindgen [(-cp|--classpath) ...] +// [(-mvn|--maven) ::] +// [(-o|--output) ] +// [--public] +// (...) +// +// E.g. $ bal bindgen java.util.function.Consumer + +import ballerina/jballerina.java; + +# Ballerina class mapping for the Java `java.util.function.Consumer` interface. +@java:Binding {'class: "java.util.function.Consumer"} +public distinct class Consumer { + + *java:JObject; + + # The `handle` field that stores the reference to the `java.util.function.Consumer` object. + public handle jObj; + + # The init function of the Ballerina class mapping the `java.util.function.Consumer` Java interface. + # + # + obj - The `handle` value containing the Java reference of the object. + public function init(handle obj) { + self.jObj = obj; + } + + # The function to retrieve the string representation of the Ballerina class mapping the `java.util.function.Consumer` Java interface. + # + # + return - The `string` form of the Java object instance. + public function toString() returns string { + return java:toString(self.jObj) ?: ""; + } + +} + diff --git a/ballerina/modules/java.util.function/IntFunction.bal b/ballerina/modules/java.util.function/IntFunction.bal new file mode 100644 index 0000000..af1564a --- /dev/null +++ b/ballerina/modules/java.util.function/IntFunction.bal @@ -0,0 +1,39 @@ +// This is an empty Ballerina class autogenerated to represent the `java.util.function.IntFunction` Java interface. +// +// If you need the implementation of this class generated, please use the following command. +// +// $ bal bindgen [(-cp|--classpath) ...] +// [(-mvn|--maven) ::] +// [(-o|--output) ] +// [--public] +// (...) +// +// E.g. $ bal bindgen java.util.function.IntFunction + +import ballerina/jballerina.java; + +# Ballerina class mapping for the Java `java.util.function.IntFunction` interface. +@java:Binding {'class: "java.util.function.IntFunction"} +public distinct class IntFunction { + + *java:JObject; + + # The `handle` field that stores the reference to the `java.util.function.IntFunction` object. + public handle jObj; + + # The init function of the Ballerina class mapping the `java.util.function.IntFunction` Java interface. + # + # + obj - The `handle` value containing the Java reference of the object. + public function init(handle obj) { + self.jObj = obj; + } + + # The function to retrieve the string representation of the Ballerina class mapping the `java.util.function.IntFunction` Java interface. + # + # + return - The `string` form of the Java object instance. + public function toString() returns string { + return java:toString(self.jObj) ?: ""; + } + +} + diff --git a/ballerina/modules/java.util.function/UnaryOperator.bal b/ballerina/modules/java.util.function/UnaryOperator.bal new file mode 100644 index 0000000..79b03de --- /dev/null +++ b/ballerina/modules/java.util.function/UnaryOperator.bal @@ -0,0 +1,39 @@ +// This is an empty Ballerina class autogenerated to represent the `java.util.function.UnaryOperator` Java interface. +// +// If you need the implementation of this class generated, please use the following command. +// +// $ bal bindgen [(-cp|--classpath) ...] +// [(-mvn|--maven) ::] +// [(-o|--output) ] +// [--public] +// (...) +// +// E.g. $ bal bindgen java.util.function.UnaryOperator + +import ballerina/jballerina.java; + +# Ballerina class mapping for the Java `java.util.function.UnaryOperator` interface. +@java:Binding {'class: "java.util.function.UnaryOperator"} +public distinct class UnaryOperator { + + *java:JObject; + + # The `handle` field that stores the reference to the `java.util.function.UnaryOperator` object. + public handle jObj; + + # The init function of the Ballerina class mapping the `java.util.function.UnaryOperator` Java interface. + # + # + obj - The `handle` value containing the Java reference of the object. + public function init(handle obj) { + self.jObj = obj; + } + + # The function to retrieve the string representation of the Ballerina class mapping the `java.util.function.UnaryOperator` Java interface. + # + # + return - The `string` form of the Java object instance. + public function toString() returns string { + return java:toString(self.jObj) ?: ""; + } + +} + diff --git a/ballerina/modules/java.util.stream/Stream.bal b/ballerina/modules/java.util.stream/Stream.bal new file mode 100644 index 0000000..811a3f1 --- /dev/null +++ b/ballerina/modules/java.util.stream/Stream.bal @@ -0,0 +1,39 @@ +// This is an empty Ballerina class autogenerated to represent the `java.util.stream.Stream` Java interface. +// +// If you need the implementation of this class generated, please use the following command. +// +// $ bal bindgen [(-cp|--classpath) ...] +// [(-mvn|--maven) ::] +// [(-o|--output) ] +// [--public] +// (...) +// +// E.g. $ bal bindgen java.util.stream.Stream + +import ballerina/jballerina.java; + +# Ballerina class mapping for the Java `java.util.stream.Stream` interface. +@java:Binding {'class: "java.util.stream.Stream"} +public distinct class Stream { + + *java:JObject; + + # The `handle` field that stores the reference to the `java.util.stream.Stream` object. + public handle jObj; + + # The init function of the Ballerina class mapping the `java.util.stream.Stream` Java interface. + # + # + obj - The `handle` value containing the Java reference of the object. + public function init(handle obj) { + self.jObj = obj; + } + + # The function to retrieve the string representation of the Ballerina class mapping the `java.util.stream.Stream` Java interface. + # + # + return - The `string` form of the Java object instance. + public function toString() returns string { + return java:toString(self.jObj) ?: ""; + } + +} + diff --git a/ballerina/modules/java.util/Comparator.bal b/ballerina/modules/java.util/Comparator.bal new file mode 100644 index 0000000..0725982 --- /dev/null +++ b/ballerina/modules/java.util/Comparator.bal @@ -0,0 +1,39 @@ +// This is an empty Ballerina class autogenerated to represent the `java.util.Comparator` Java interface. +// +// If you need the implementation of this class generated, please use the following command. +// +// $ bal bindgen [(-cp|--classpath) ...] +// [(-mvn|--maven) ::] +// [(-o|--output) ] +// [--public] +// (...) +// +// E.g. $ bal bindgen java.util.Comparator + +import ballerina/jballerina.java; + +# Ballerina class mapping for the Java `java.util.Comparator` interface. +@java:Binding {'class: "java.util.Comparator"} +public distinct class Comparator { + + *java:JObject; + + # The `handle` field that stores the reference to the `java.util.Comparator` object. + public handle jObj; + + # The init function of the Ballerina class mapping the `java.util.Comparator` Java interface. + # + # + obj - The `handle` value containing the Java reference of the object. + public function init(handle obj) { + self.jObj = obj; + } + + # The function to retrieve the string representation of the Ballerina class mapping the `java.util.Comparator` Java interface. + # + # + return - The `string` form of the Java object instance. + public function toString() returns string { + return java:toString(self.jObj) ?: ""; + } + +} + diff --git a/ballerina/modules/java.util/Iterator.bal b/ballerina/modules/java.util/Iterator.bal new file mode 100644 index 0000000..f6c8077 --- /dev/null +++ b/ballerina/modules/java.util/Iterator.bal @@ -0,0 +1,39 @@ +// This is an empty Ballerina class autogenerated to represent the `java.util.Iterator` Java interface. +// +// If you need the implementation of this class generated, please use the following command. +// +// $ bal bindgen [(-cp|--classpath) ...] +// [(-mvn|--maven) ::] +// [(-o|--output) ] +// [--public] +// (...) +// +// E.g. $ bal bindgen java.util.Iterator + +import ballerina/jballerina.java; + +# Ballerina class mapping for the Java `java.util.Iterator` interface. +@java:Binding {'class: "java.util.Iterator"} +public distinct class Iterator { + + *java:JObject; + + # The `handle` field that stores the reference to the `java.util.Iterator` object. + public handle jObj; + + # The init function of the Ballerina class mapping the `java.util.Iterator` Java interface. + # + # + obj - The `handle` value containing the Java reference of the object. + public function init(handle obj) { + self.jObj = obj; + } + + # The function to retrieve the string representation of the Ballerina class mapping the `java.util.Iterator` Java interface. + # + # + return - The `string` form of the Java object instance. + public function toString() returns string { + return java:toString(self.jObj) ?: ""; + } + +} + diff --git a/ballerina/modules/java.util/List.bal b/ballerina/modules/java.util/List.bal index 742f976..4c93ed5 100644 --- a/ballerina/modules/java.util/List.bal +++ b/ballerina/modules/java.util/List.bal @@ -1,20 +1,9 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). -// -// WSO2 LLC. licenses this file to you under the Apache License, -// Version 2.0 (the "License"); you may not use this file except -// in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. +import selenium.java.lang as javalang; +import selenium.java.util.'function as javautilfunction; +import selenium.java.util.'stream as javautilstream; import ballerina/jballerina.java; +import ballerina/jballerina.java.arrays as jarrays; # Ballerina class mapping for the Java `java.util.List` interface. @java:Binding {'class: "java.util.List"} @@ -35,9 +24,755 @@ public distinct class List { # The function to retrieve the string representation of the Ballerina class mapping the `java.util.List` Java interface. # # + return - The `string` form of the Java object instance. - public isolated function toString() returns string { + public function toString() returns string { return java:toString(self.jObj) ?: ""; } + # The function that maps to the `add` method of `java.util.List`. + # + # + arg0 - The `int` value required to map with the Java method parameter. + # + arg1 - The `javalang:Object` value required to map with the Java method parameter. + public function add(int arg0, javalang:Object arg1) { + java_util_List_add(self.jObj, arg0, arg1.jObj); + } + + # The function that maps to the `add` method of `java.util.List`. + # + # + arg0 - The `javalang:Object` value required to map with the Java method parameter. + # + return - The `boolean` value returning from the Java mapping. + public function add2(javalang:Object arg0) returns boolean { + return java_util_List_add2(self.jObj, arg0.jObj); + } + + # The function that maps to the `addAll` method of `java.util.List`. + # + # + arg0 - The `Collection` value required to map with the Java method parameter. + # + return - The `boolean` value returning from the Java mapping. + public function addAll(Collection arg0) returns boolean { + return java_util_List_addAll(self.jObj, arg0.jObj); + } + + # The function that maps to the `addAll` method of `java.util.List`. + # + # + arg0 - The `int` value required to map with the Java method parameter. + # + arg1 - The `Collection` value required to map with the Java method parameter. + # + return - The `boolean` value returning from the Java mapping. + public function addAll2(int arg0, Collection arg1) returns boolean { + return java_util_List_addAll2(self.jObj, arg0, arg1.jObj); + } + + # The function that maps to the `clear` method of `java.util.List`. + public function clear() { + java_util_List_clear(self.jObj); + } + + # The function that maps to the `contains` method of `java.util.List`. + # + # + arg0 - The `javalang:Object` value required to map with the Java method parameter. + # + return - The `boolean` value returning from the Java mapping. + public function contains(javalang:Object arg0) returns boolean { + return java_util_List_contains(self.jObj, arg0.jObj); + } + + # The function that maps to the `containsAll` method of `java.util.List`. + # + # + arg0 - The `Collection` value required to map with the Java method parameter. + # + return - The `boolean` value returning from the Java mapping. + public function containsAll(Collection arg0) returns boolean { + return java_util_List_containsAll(self.jObj, arg0.jObj); + } + + # The function that maps to the `equals` method of `java.util.List`. + # + # + arg0 - The `javalang:Object` value required to map with the Java method parameter. + # + return - The `boolean` value returning from the Java mapping. + public function 'equals(javalang:Object arg0) returns boolean { + return java_util_List_equals(self.jObj, arg0.jObj); + } + + # The function that maps to the `forEach` method of `java.util.List`. + # + # + arg0 - The `javautilfunction:Consumer` value required to map with the Java method parameter. + public function forEach(javautilfunction:Consumer arg0) { + java_util_List_forEach(self.jObj, arg0.jObj); + } + + # The function that maps to the `get` method of `java.util.List`. + # + # + arg0 - The `int` value required to map with the Java method parameter. + # + return - The `javalang:Object` value returning from the Java mapping. + public function get(int arg0) returns javalang:Object { + handle externalObj = java_util_List_get(self.jObj, arg0); + javalang:Object newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `hashCode` method of `java.util.List`. + # + # + return - The `int` value returning from the Java mapping. + public function hashCode() returns int { + return java_util_List_hashCode(self.jObj); + } + + # The function that maps to the `indexOf` method of `java.util.List`. + # + # + arg0 - The `javalang:Object` value required to map with the Java method parameter. + # + return - The `int` value returning from the Java mapping. + public function indexOf(javalang:Object arg0) returns int { + return java_util_List_indexOf(self.jObj, arg0.jObj); + } + + # The function that maps to the `isEmpty` method of `java.util.List`. + # + # + return - The `boolean` value returning from the Java mapping. + public function isEmpty() returns boolean { + return java_util_List_isEmpty(self.jObj); + } + + # The function that maps to the `iterator` method of `java.util.List`. + # + # + return - The `Iterator` value returning from the Java mapping. + public function iterator() returns Iterator { + handle externalObj = java_util_List_iterator(self.jObj); + Iterator newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `lastIndexOf` method of `java.util.List`. + # + # + arg0 - The `javalang:Object` value required to map with the Java method parameter. + # + return - The `int` value returning from the Java mapping. + public function lastIndexOf(javalang:Object arg0) returns int { + return java_util_List_lastIndexOf(self.jObj, arg0.jObj); + } + + # The function that maps to the `listIterator` method of `java.util.List`. + # + # + return - The `ListIterator` value returning from the Java mapping. + public function listIterator() returns ListIterator { + handle externalObj = java_util_List_listIterator(self.jObj); + ListIterator newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `listIterator` method of `java.util.List`. + # + # + arg0 - The `int` value required to map with the Java method parameter. + # + return - The `ListIterator` value returning from the Java mapping. + public function listIterator2(int arg0) returns ListIterator { + handle externalObj = java_util_List_listIterator2(self.jObj, arg0); + ListIterator newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `parallelStream` method of `java.util.List`. + # + # + return - The `javautilstream:Stream` value returning from the Java mapping. + public function parallelStream() returns javautilstream:Stream { + handle externalObj = java_util_List_parallelStream(self.jObj); + javautilstream:Stream newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `remove` method of `java.util.List`. + # + # + arg0 - The `int` value required to map with the Java method parameter. + # + return - The `javalang:Object` value returning from the Java mapping. + public function remove(int arg0) returns javalang:Object { + handle externalObj = java_util_List_remove(self.jObj, arg0); + javalang:Object newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `remove` method of `java.util.List`. + # + # + arg0 - The `javalang:Object` value required to map with the Java method parameter. + # + return - The `boolean` value returning from the Java mapping. + public function remove2(javalang:Object arg0) returns boolean { + return java_util_List_remove2(self.jObj, arg0.jObj); + } + + # The function that maps to the `removeAll` method of `java.util.List`. + # + # + arg0 - The `Collection` value required to map with the Java method parameter. + # + return - The `boolean` value returning from the Java mapping. + public function removeAll(Collection arg0) returns boolean { + return java_util_List_removeAll(self.jObj, arg0.jObj); + } + + # The function that maps to the `removeIf` method of `java.util.List`. + # + # + arg0 - The `javautilfunction:Predicate` value required to map with the Java method parameter. + # + return - The `boolean` value returning from the Java mapping. + public function removeIf(javautilfunction:Predicate arg0) returns boolean { + return java_util_List_removeIf(self.jObj, arg0.jObj); + } + + # The function that maps to the `replaceAll` method of `java.util.List`. + # + # + arg0 - The `javautilfunction:UnaryOperator` value required to map with the Java method parameter. + public function replaceAll(javautilfunction:UnaryOperator arg0) { + java_util_List_replaceAll(self.jObj, arg0.jObj); + } + + # The function that maps to the `retainAll` method of `java.util.List`. + # + # + arg0 - The `Collection` value required to map with the Java method parameter. + # + return - The `boolean` value returning from the Java mapping. + public function retainAll(Collection arg0) returns boolean { + return java_util_List_retainAll(self.jObj, arg0.jObj); + } + + # The function that maps to the `set` method of `java.util.List`. + # + # + arg0 - The `int` value required to map with the Java method parameter. + # + arg1 - The `javalang:Object` value required to map with the Java method parameter. + # + return - The `javalang:Object` value returning from the Java mapping. + public function set(int arg0, javalang:Object arg1) returns javalang:Object { + handle externalObj = java_util_List_set(self.jObj, arg0, arg1.jObj); + javalang:Object newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `size` method of `java.util.List`. + # + # + return - The `int` value returning from the Java mapping. + public function size() returns int { + return java_util_List_size(self.jObj); + } + + # The function that maps to the `sort` method of `java.util.List`. + # + # + arg0 - The `Comparator` value required to map with the Java method parameter. + public function sort(Comparator arg0) { + java_util_List_sort(self.jObj, arg0.jObj); + } + + # The function that maps to the `spliterator` method of `java.util.List`. + # + # + return - The `Spliterator` value returning from the Java mapping. + public function spliterator() returns Spliterator { + handle externalObj = java_util_List_spliterator(self.jObj); + Spliterator newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `stream` method of `java.util.List`. + # + # + return - The `javautilstream:Stream` value returning from the Java mapping. + public function 'stream() returns javautilstream:Stream { + handle externalObj = java_util_List_stream(self.jObj); + javautilstream:Stream newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `subList` method of `java.util.List`. + # + # + arg0 - The `int` value required to map with the Java method parameter. + # + arg1 - The `int` value required to map with the Java method parameter. + # + return - The `List` value returning from the Java mapping. + public function subList(int arg0, int arg1) returns List { + handle externalObj = java_util_List_subList(self.jObj, arg0, arg1); + List newObj = new (externalObj); + return newObj; + } + + # The function that maps to the `toArray` method of `java.util.List`. + # + # + return - The `javalang:Object[]` value returning from the Java mapping. + public isolated function toArray() returns javalang:Object[]|error { + handle externalObj = java_util_List_toArray(self.jObj); + javalang:Object[] newObj = []; + handle[] anyObj = check jarrays:fromHandle(externalObj, "handle"); + int count = anyObj.length(); + foreach int i in 0 ... count - 1 { + javalang:Object element = new (anyObj[i]); + newObj[i] = element; + } + return newObj; + } + + # The function that maps to the `toArray` method of `java.util.List`. + # + # + arg0 - The `javautilfunction:IntFunction` value required to map with the Java method parameter. + # + return - The `javalang:Object[]` value returning from the Java mapping. + public function toArray2(javautilfunction:IntFunction arg0) returns javalang:Object[]|error { + handle externalObj = java_util_List_toArray2(self.jObj, arg0.jObj); + javalang:Object[] newObj = []; + handle[] anyObj = check jarrays:fromHandle(externalObj, "handle"); + int count = anyObj.length(); + foreach int i in 0 ... count - 1 { + javalang:Object element = new (anyObj[i]); + newObj[i] = element; + } + return newObj; + } + + # The function that maps to the `toArray` method of `java.util.List`. + # + # + arg0 - The `javalang:Object[]` value required to map with the Java method parameter. + # + return - The `javalang:Object[]` value returning from the Java mapping. + public function toArray3(javalang:Object[] arg0) returns javalang:Object[]|error { + handle externalObj = java_util_List_toArray3(self.jObj, check jarrays:toHandle(arg0, "java.lang.Object")); + javalang:Object[] newObj = []; + handle[] anyObj = check jarrays:fromHandle(externalObj, "handle"); + int count = anyObj.length(); + foreach int i in 0 ... count - 1 { + javalang:Object element = new (anyObj[i]); + newObj[i] = element; + } + return newObj; + } + +} + +# The function that maps to the `copyOf` method of `java.util.List`. +# +# + arg0 - The `Collection` value required to map with the Java method parameter. +# + return - The `List` value returning from the Java mapping. +public function List_copyOf(Collection arg0) returns List { + handle externalObj = java_util_List_copyOf(arg0.jObj); + List newObj = new (externalObj); + return newObj; +} + +# The function that maps to the `of` method of `java.util.List`. +# +# + return - The `List` value returning from the Java mapping. +public function List_of() returns List { + handle externalObj = java_util_List_of(); + List newObj = new (externalObj); + return newObj; } +# The function that maps to the `of` method of `java.util.List`. +# +# + arg0 - The `javalang:Object` value required to map with the Java method parameter. +# + arg1 - The `javalang:Object` value required to map with the Java method parameter. +# + arg2 - The `javalang:Object` value required to map with the Java method parameter. +# + arg3 - The `javalang:Object` value required to map with the Java method parameter. +# + arg4 - The `javalang:Object` value required to map with the Java method parameter. +# + arg5 - The `javalang:Object` value required to map with the Java method parameter. +# + arg6 - The `javalang:Object` value required to map with the Java method parameter. +# + arg7 - The `javalang:Object` value required to map with the Java method parameter. +# + return - The `List` value returning from the Java mapping. +public function List_of10(javalang:Object arg0, javalang:Object arg1, javalang:Object arg2, javalang:Object arg3, javalang:Object arg4, javalang:Object arg5, javalang:Object arg6, javalang:Object arg7) returns List { + handle externalObj = java_util_List_of10(arg0.jObj, arg1.jObj, arg2.jObj, arg3.jObj, arg4.jObj, arg5.jObj, arg6.jObj, arg7.jObj); + List newObj = new (externalObj); + return newObj; +} + +# The function that maps to the `of` method of `java.util.List`. +# +# + arg0 - The `javalang:Object` value required to map with the Java method parameter. +# + arg1 - The `javalang:Object` value required to map with the Java method parameter. +# + arg2 - The `javalang:Object` value required to map with the Java method parameter. +# + arg3 - The `javalang:Object` value required to map with the Java method parameter. +# + arg4 - The `javalang:Object` value required to map with the Java method parameter. +# + arg5 - The `javalang:Object` value required to map with the Java method parameter. +# + arg6 - The `javalang:Object` value required to map with the Java method parameter. +# + arg7 - The `javalang:Object` value required to map with the Java method parameter. +# + arg8 - The `javalang:Object` value required to map with the Java method parameter. +# + return - The `List` value returning from the Java mapping. +public function List_of11(javalang:Object arg0, javalang:Object arg1, javalang:Object arg2, javalang:Object arg3, javalang:Object arg4, javalang:Object arg5, javalang:Object arg6, javalang:Object arg7, javalang:Object arg8) returns List { + handle externalObj = java_util_List_of11(arg0.jObj, arg1.jObj, arg2.jObj, arg3.jObj, arg4.jObj, arg5.jObj, arg6.jObj, arg7.jObj, arg8.jObj); + List newObj = new (externalObj); + return newObj; +} + +# The function that maps to the `of` method of `java.util.List`. +# +# + arg0 - The `javalang:Object` value required to map with the Java method parameter. +# + arg1 - The `javalang:Object` value required to map with the Java method parameter. +# + arg2 - The `javalang:Object` value required to map with the Java method parameter. +# + arg3 - The `javalang:Object` value required to map with the Java method parameter. +# + arg4 - The `javalang:Object` value required to map with the Java method parameter. +# + arg5 - The `javalang:Object` value required to map with the Java method parameter. +# + arg6 - The `javalang:Object` value required to map with the Java method parameter. +# + arg7 - The `javalang:Object` value required to map with the Java method parameter. +# + arg8 - The `javalang:Object` value required to map with the Java method parameter. +# + arg9 - The `javalang:Object` value required to map with the Java method parameter. +# + return - The `List` value returning from the Java mapping. +public function List_of12(javalang:Object arg0, javalang:Object arg1, javalang:Object arg2, javalang:Object arg3, javalang:Object arg4, javalang:Object arg5, javalang:Object arg6, javalang:Object arg7, javalang:Object arg8, javalang:Object arg9) returns List { + handle externalObj = java_util_List_of12(arg0.jObj, arg1.jObj, arg2.jObj, arg3.jObj, arg4.jObj, arg5.jObj, arg6.jObj, arg7.jObj, arg8.jObj, arg9.jObj); + List newObj = new (externalObj); + return newObj; +} + +# The function that maps to the `of` method of `java.util.List`. +# +# + arg0 - The `javalang:Object` value required to map with the Java method parameter. +# + return - The `List` value returning from the Java mapping. +public function List_of2(javalang:Object arg0) returns List { + handle externalObj = java_util_List_of2(arg0.jObj); + List newObj = new (externalObj); + return newObj; +} + +# The function that maps to the `of` method of `java.util.List`. +# +# + arg0 - The `javalang:Object[]` value required to map with the Java method parameter. +# + return - The `List` value returning from the Java mapping. +public function List_of3(javalang:Object[] arg0) returns List|error { + handle externalObj = java_util_List_of3(check jarrays:toHandle(arg0, "java.lang.Object")); + List newObj = new (externalObj); + return newObj; +} + +# The function that maps to the `of` method of `java.util.List`. +# +# + arg0 - The `javalang:Object` value required to map with the Java method parameter. +# + arg1 - The `javalang:Object` value required to map with the Java method parameter. +# + return - The `List` value returning from the Java mapping. +public function List_of4(javalang:Object arg0, javalang:Object arg1) returns List { + handle externalObj = java_util_List_of4(arg0.jObj, arg1.jObj); + List newObj = new (externalObj); + return newObj; +} + +# The function that maps to the `of` method of `java.util.List`. +# +# + arg0 - The `javalang:Object` value required to map with the Java method parameter. +# + arg1 - The `javalang:Object` value required to map with the Java method parameter. +# + arg2 - The `javalang:Object` value required to map with the Java method parameter. +# + return - The `List` value returning from the Java mapping. +public function List_of5(javalang:Object arg0, javalang:Object arg1, javalang:Object arg2) returns List { + handle externalObj = java_util_List_of5(arg0.jObj, arg1.jObj, arg2.jObj); + List newObj = new (externalObj); + return newObj; +} + +# The function that maps to the `of` method of `java.util.List`. +# +# + arg0 - The `javalang:Object` value required to map with the Java method parameter. +# + arg1 - The `javalang:Object` value required to map with the Java method parameter. +# + arg2 - The `javalang:Object` value required to map with the Java method parameter. +# + arg3 - The `javalang:Object` value required to map with the Java method parameter. +# + return - The `List` value returning from the Java mapping. +public function List_of6(javalang:Object arg0, javalang:Object arg1, javalang:Object arg2, javalang:Object arg3) returns List { + handle externalObj = java_util_List_of6(arg0.jObj, arg1.jObj, arg2.jObj, arg3.jObj); + List newObj = new (externalObj); + return newObj; +} + +# The function that maps to the `of` method of `java.util.List`. +# +# + arg0 - The `javalang:Object` value required to map with the Java method parameter. +# + arg1 - The `javalang:Object` value required to map with the Java method parameter. +# + arg2 - The `javalang:Object` value required to map with the Java method parameter. +# + arg3 - The `javalang:Object` value required to map with the Java method parameter. +# + arg4 - The `javalang:Object` value required to map with the Java method parameter. +# + return - The `List` value returning from the Java mapping. +public function List_of7(javalang:Object arg0, javalang:Object arg1, javalang:Object arg2, javalang:Object arg3, javalang:Object arg4) returns List { + handle externalObj = java_util_List_of7(arg0.jObj, arg1.jObj, arg2.jObj, arg3.jObj, arg4.jObj); + List newObj = new (externalObj); + return newObj; +} + +# The function that maps to the `of` method of `java.util.List`. +# +# + arg0 - The `javalang:Object` value required to map with the Java method parameter. +# + arg1 - The `javalang:Object` value required to map with the Java method parameter. +# + arg2 - The `javalang:Object` value required to map with the Java method parameter. +# + arg3 - The `javalang:Object` value required to map with the Java method parameter. +# + arg4 - The `javalang:Object` value required to map with the Java method parameter. +# + arg5 - The `javalang:Object` value required to map with the Java method parameter. +# + return - The `List` value returning from the Java mapping. +public function List_of8(javalang:Object arg0, javalang:Object arg1, javalang:Object arg2, javalang:Object arg3, javalang:Object arg4, javalang:Object arg5) returns List { + handle externalObj = java_util_List_of8(arg0.jObj, arg1.jObj, arg2.jObj, arg3.jObj, arg4.jObj, arg5.jObj); + List newObj = new (externalObj); + return newObj; +} + +# The function that maps to the `of` method of `java.util.List`. +# +# + arg0 - The `javalang:Object` value required to map with the Java method parameter. +# + arg1 - The `javalang:Object` value required to map with the Java method parameter. +# + arg2 - The `javalang:Object` value required to map with the Java method parameter. +# + arg3 - The `javalang:Object` value required to map with the Java method parameter. +# + arg4 - The `javalang:Object` value required to map with the Java method parameter. +# + arg5 - The `javalang:Object` value required to map with the Java method parameter. +# + arg6 - The `javalang:Object` value required to map with the Java method parameter. +# + return - The `List` value returning from the Java mapping. +public function List_of9(javalang:Object arg0, javalang:Object arg1, javalang:Object arg2, javalang:Object arg3, javalang:Object arg4, javalang:Object arg5, javalang:Object arg6) returns List { + handle externalObj = java_util_List_of9(arg0.jObj, arg1.jObj, arg2.jObj, arg3.jObj, arg4.jObj, arg5.jObj, arg6.jObj); + List newObj = new (externalObj); + return newObj; +} + +function java_util_List_add(handle receiver, int arg0, handle arg1) = @java:Method { + name: "add", + 'class: "java.util.List", + paramTypes: ["int", "java.lang.Object"] +} external; + +function java_util_List_add2(handle receiver, handle arg0) returns boolean = @java:Method { + name: "add", + 'class: "java.util.List", + paramTypes: ["java.lang.Object"] +} external; + +function java_util_List_addAll(handle receiver, handle arg0) returns boolean = @java:Method { + name: "addAll", + 'class: "java.util.List", + paramTypes: ["java.util.Collection"] +} external; + +function java_util_List_addAll2(handle receiver, int arg0, handle arg1) returns boolean = @java:Method { + name: "addAll", + 'class: "java.util.List", + paramTypes: ["int", "java.util.Collection"] +} external; + +function java_util_List_clear(handle receiver) = @java:Method { + name: "clear", + 'class: "java.util.List", + paramTypes: [] +} external; + +function java_util_List_contains(handle receiver, handle arg0) returns boolean = @java:Method { + name: "contains", + 'class: "java.util.List", + paramTypes: ["java.lang.Object"] +} external; + +function java_util_List_containsAll(handle receiver, handle arg0) returns boolean = @java:Method { + name: "containsAll", + 'class: "java.util.List", + paramTypes: ["java.util.Collection"] +} external; + +function java_util_List_copyOf(handle arg0) returns handle = @java:Method { + name: "copyOf", + 'class: "java.util.List", + paramTypes: ["java.util.Collection"] +} external; + +function java_util_List_equals(handle receiver, handle arg0) returns boolean = @java:Method { + name: "equals", + 'class: "java.util.List", + paramTypes: ["java.lang.Object"] +} external; + +function java_util_List_forEach(handle receiver, handle arg0) = @java:Method { + name: "forEach", + 'class: "java.util.List", + paramTypes: ["java.util.function.Consumer"] +} external; + +function java_util_List_get(handle receiver, int arg0) returns handle = @java:Method { + name: "get", + 'class: "java.util.List", + paramTypes: ["int"] +} external; + +function java_util_List_hashCode(handle receiver) returns int = @java:Method { + name: "hashCode", + 'class: "java.util.List", + paramTypes: [] +} external; + +function java_util_List_indexOf(handle receiver, handle arg0) returns int = @java:Method { + name: "indexOf", + 'class: "java.util.List", + paramTypes: ["java.lang.Object"] +} external; + +function java_util_List_isEmpty(handle receiver) returns boolean = @java:Method { + name: "isEmpty", + 'class: "java.util.List", + paramTypes: [] +} external; + +function java_util_List_iterator(handle receiver) returns handle = @java:Method { + name: "iterator", + 'class: "java.util.List", + paramTypes: [] +} external; + +function java_util_List_lastIndexOf(handle receiver, handle arg0) returns int = @java:Method { + name: "lastIndexOf", + 'class: "java.util.List", + paramTypes: ["java.lang.Object"] +} external; + +function java_util_List_listIterator(handle receiver) returns handle = @java:Method { + name: "listIterator", + 'class: "java.util.List", + paramTypes: [] +} external; + +function java_util_List_listIterator2(handle receiver, int arg0) returns handle = @java:Method { + name: "listIterator", + 'class: "java.util.List", + paramTypes: ["int"] +} external; + +function java_util_List_of() returns handle = @java:Method { + name: "of", + 'class: "java.util.List", + paramTypes: [] +} external; + +function java_util_List_of10(handle arg0, handle arg1, handle arg2, handle arg3, handle arg4, handle arg5, handle arg6, handle arg7) returns handle = @java:Method { + name: "of", + 'class: "java.util.List", + paramTypes: ["java.lang.Object", "java.lang.Object", "java.lang.Object", "java.lang.Object", "java.lang.Object", "java.lang.Object", "java.lang.Object", "java.lang.Object"] +} external; + +function java_util_List_of11(handle arg0, handle arg1, handle arg2, handle arg3, handle arg4, handle arg5, handle arg6, handle arg7, handle arg8) returns handle = @java:Method { + name: "of", + 'class: "java.util.List", + paramTypes: ["java.lang.Object", "java.lang.Object", "java.lang.Object", "java.lang.Object", "java.lang.Object", "java.lang.Object", "java.lang.Object", "java.lang.Object", "java.lang.Object"] +} external; + +function java_util_List_of12(handle arg0, handle arg1, handle arg2, handle arg3, handle arg4, handle arg5, handle arg6, handle arg7, handle arg8, handle arg9) returns handle = @java:Method { + name: "of", + 'class: "java.util.List", + paramTypes: ["java.lang.Object", "java.lang.Object", "java.lang.Object", "java.lang.Object", "java.lang.Object", "java.lang.Object", "java.lang.Object", "java.lang.Object", "java.lang.Object", "java.lang.Object"] +} external; + +function java_util_List_of2(handle arg0) returns handle = @java:Method { + name: "of", + 'class: "java.util.List", + paramTypes: ["java.lang.Object"] +} external; + +function java_util_List_of3(handle arg0) returns handle = @java:Method { + name: "of", + 'class: "java.util.List", + paramTypes: ["[Ljava.lang.Object;"] +} external; + +function java_util_List_of4(handle arg0, handle arg1) returns handle = @java:Method { + name: "of", + 'class: "java.util.List", + paramTypes: ["java.lang.Object", "java.lang.Object"] +} external; + +function java_util_List_of5(handle arg0, handle arg1, handle arg2) returns handle = @java:Method { + name: "of", + 'class: "java.util.List", + paramTypes: ["java.lang.Object", "java.lang.Object", "java.lang.Object"] +} external; + +function java_util_List_of6(handle arg0, handle arg1, handle arg2, handle arg3) returns handle = @java:Method { + name: "of", + 'class: "java.util.List", + paramTypes: ["java.lang.Object", "java.lang.Object", "java.lang.Object", "java.lang.Object"] +} external; + +function java_util_List_of7(handle arg0, handle arg1, handle arg2, handle arg3, handle arg4) returns handle = @java:Method { + name: "of", + 'class: "java.util.List", + paramTypes: ["java.lang.Object", "java.lang.Object", "java.lang.Object", "java.lang.Object", "java.lang.Object"] +} external; + +function java_util_List_of8(handle arg0, handle arg1, handle arg2, handle arg3, handle arg4, handle arg5) returns handle = @java:Method { + name: "of", + 'class: "java.util.List", + paramTypes: ["java.lang.Object", "java.lang.Object", "java.lang.Object", "java.lang.Object", "java.lang.Object", "java.lang.Object"] +} external; + +function java_util_List_of9(handle arg0, handle arg1, handle arg2, handle arg3, handle arg4, handle arg5, handle arg6) returns handle = @java:Method { + name: "of", + 'class: "java.util.List", + paramTypes: ["java.lang.Object", "java.lang.Object", "java.lang.Object", "java.lang.Object", "java.lang.Object", "java.lang.Object", "java.lang.Object"] +} external; + +function java_util_List_parallelStream(handle receiver) returns handle = @java:Method { + name: "parallelStream", + 'class: "java.util.List", + paramTypes: [] +} external; + +function java_util_List_remove(handle receiver, int arg0) returns handle = @java:Method { + name: "remove", + 'class: "java.util.List", + paramTypes: ["int"] +} external; + +function java_util_List_remove2(handle receiver, handle arg0) returns boolean = @java:Method { + name: "remove", + 'class: "java.util.List", + paramTypes: ["java.lang.Object"] +} external; + +function java_util_List_removeAll(handle receiver, handle arg0) returns boolean = @java:Method { + name: "removeAll", + 'class: "java.util.List", + paramTypes: ["java.util.Collection"] +} external; + +function java_util_List_removeIf(handle receiver, handle arg0) returns boolean = @java:Method { + name: "removeIf", + 'class: "java.util.List", + paramTypes: ["java.util.function.Predicate"] +} external; + +function java_util_List_replaceAll(handle receiver, handle arg0) = @java:Method { + name: "replaceAll", + 'class: "java.util.List", + paramTypes: ["java.util.function.UnaryOperator"] +} external; + +function java_util_List_retainAll(handle receiver, handle arg0) returns boolean = @java:Method { + name: "retainAll", + 'class: "java.util.List", + paramTypes: ["java.util.Collection"] +} external; + +function java_util_List_set(handle receiver, int arg0, handle arg1) returns handle = @java:Method { + name: "set", + 'class: "java.util.List", + paramTypes: ["int", "java.lang.Object"] +} external; + +function java_util_List_size(handle receiver) returns int = @java:Method { + name: "size", + 'class: "java.util.List", + paramTypes: [] +} external; + +function java_util_List_sort(handle receiver, handle arg0) = @java:Method { + name: "sort", + 'class: "java.util.List", + paramTypes: ["java.util.Comparator"] +} external; + +function java_util_List_spliterator(handle receiver) returns handle = @java:Method { + name: "spliterator", + 'class: "java.util.List", + paramTypes: [] +} external; + +function java_util_List_stream(handle receiver) returns handle = @java:Method { + name: "stream", + 'class: "java.util.List", + paramTypes: [] +} external; + +function java_util_List_subList(handle receiver, int arg0, int arg1) returns handle = @java:Method { + name: "subList", + 'class: "java.util.List", + paramTypes: ["int", "int"] +} external; + +isolated function java_util_List_toArray(handle receiver) returns handle = @java:Method { + name: "toArray", + 'class: "java.util.List", + paramTypes: [] +} external; + +function java_util_List_toArray2(handle receiver, handle arg0) returns handle = @java:Method { + name: "toArray", + 'class: "java.util.List", + paramTypes: ["java.util.function.IntFunction"] +} external; + +function java_util_List_toArray3(handle receiver, handle arg0) returns handle = @java:Method { + name: "toArray", + 'class: "java.util.List", + paramTypes: ["[Ljava.lang.Object;"] +} external; + diff --git a/ballerina/modules/java.util/ListIterator.bal b/ballerina/modules/java.util/ListIterator.bal new file mode 100644 index 0000000..ef53a12 --- /dev/null +++ b/ballerina/modules/java.util/ListIterator.bal @@ -0,0 +1,39 @@ +// This is an empty Ballerina class autogenerated to represent the `java.util.ListIterator` Java interface. +// +// If you need the implementation of this class generated, please use the following command. +// +// $ bal bindgen [(-cp|--classpath) ...] +// [(-mvn|--maven) ::] +// [(-o|--output) ] +// [--public] +// (...) +// +// E.g. $ bal bindgen java.util.ListIterator + +import ballerina/jballerina.java; + +# Ballerina class mapping for the Java `java.util.ListIterator` interface. +@java:Binding {'class: "java.util.ListIterator"} +public distinct class ListIterator { + + *java:JObject; + + # The `handle` field that stores the reference to the `java.util.ListIterator` object. + public handle jObj; + + # The init function of the Ballerina class mapping the `java.util.ListIterator` Java interface. + # + # + obj - The `handle` value containing the Java reference of the object. + public function init(handle obj) { + self.jObj = obj; + } + + # The function to retrieve the string representation of the Ballerina class mapping the `java.util.ListIterator` Java interface. + # + # + return - The `string` form of the Java object instance. + public function toString() returns string { + return java:toString(self.jObj) ?: ""; + } + +} + diff --git a/ballerina/modules/java.util/Spliterator.bal b/ballerina/modules/java.util/Spliterator.bal new file mode 100644 index 0000000..1387c0f --- /dev/null +++ b/ballerina/modules/java.util/Spliterator.bal @@ -0,0 +1,39 @@ +// This is an empty Ballerina class autogenerated to represent the `java.util.Spliterator` Java interface. +// +// If you need the implementation of this class generated, please use the following command. +// +// $ bal bindgen [(-cp|--classpath) ...] +// [(-mvn|--maven) ::] +// [(-o|--output) ] +// [--public] +// (...) +// +// E.g. $ bal bindgen java.util.Spliterator + +import ballerina/jballerina.java; + +# Ballerina class mapping for the Java `java.util.Spliterator` interface. +@java:Binding {'class: "java.util.Spliterator"} +public distinct class Spliterator { + + *java:JObject; + + # The `handle` field that stores the reference to the `java.util.Spliterator` object. + public handle jObj; + + # The init function of the Ballerina class mapping the `java.util.Spliterator` Java interface. + # + # + obj - The `handle` value containing the Java reference of the object. + public function init(handle obj) { + self.jObj = obj; + } + + # The function to retrieve the string representation of the Ballerina class mapping the `java.util.Spliterator` Java interface. + # + # + return - The `string` form of the Java object instance. + public function toString() returns string { + return java:toString(self.jObj) ?: ""; + } + +} + diff --git a/ballerina/modules/org.openqa.selenium.chromium/ChromiumDriver.bal b/ballerina/modules/org.openqa.selenium.chromium/ChromiumDriver.bal index 8098dd7..4ce0e6e 100644 --- a/ballerina/modules/org.openqa.selenium.chromium/ChromiumDriver.bal +++ b/ballerina/modules/org.openqa.selenium.chromium/ChromiumDriver.bal @@ -168,6 +168,22 @@ public distinct class ChromiumDriver { return newObj; } + # The function that maps to the `findElements` method of `org.openqa.selenium.chrome.ChromeDriver`. + # + # + locator - The `orgopenqaselenium:By` value required to map with the Java method parameter. + # + return - The `orgopenqaselenium:WebElement[]` value returning from the Java mapping. + public isolated function findAllElements(orgopenqaselenium:By locator) returns orgopenqaselenium:WebElement[]|error { + handle externalObj = org_openqa_selenium_chromium_ChromiumDriver_findElements(self.jObj, locator.jObj); + javautil:List newObj = new (externalObj); + orgopenqaselenium:WebElement[] elements = []; + javalang:Object[] arr = check newObj.toArray(); + foreach var item in arr { + elements.push(check java:cast(item, orgopenqaselenium:WebElement)); + } + return elements; + } + + # The function that maps to the `findElements` method of `org.openqa.selenium.chromium.ChromiumDriver`. # # + context - The `orgopenqaselenium:SearchContext` value required to map with the Java method parameter. diff --git a/ballerina/modules/org.openqa.selenium.remote/RemoteWebDriver.bal b/ballerina/modules/org.openqa.selenium.remote/RemoteWebDriver.bal index da39b07..b1d5ffa 100644 --- a/ballerina/modules/org.openqa.selenium.remote/RemoteWebDriver.bal +++ b/ballerina/modules/org.openqa.selenium.remote/RemoteWebDriver.bal @@ -147,6 +147,21 @@ public distinct class RemoteWebDriver { return newObj; } + # The function that maps to the `findElements` method of `org.openqa.selenium.chrome.ChromeDriver`. + # + # + locator - The `orgopenqaselenium:By` value required to map with the Java method parameter. + # + return - The `orgopenqaselenium:WebElement[]` value returning from the Java mapping. + public isolated function findAllElements(orgopenqaselenium:By locator) returns orgopenqaselenium:WebElement[]|error { + handle externalObj = org_openqa_selenium_remote_RemoteWebDriver_findElements(self.jObj, locator.jObj); + javautil:List newObj = new (externalObj); + orgopenqaselenium:WebElement[] elements = []; + javalang:Object[] arr = check newObj.toArray(); + foreach var item in arr { + elements.push(check java:cast(item, orgopenqaselenium:WebElement)); + } + return elements; + } + # The function that maps to the `findElements` method of `org.openqa.selenium.remote.RemoteWebDriver`. # # + context - The `orgopenqaselenium:SearchContext` value required to map with the Java method parameter. diff --git a/ballerina/modules/safari/SafariDriver.bal b/ballerina/modules/safari/SafariDriver.bal index 66f090a..5f59dcb 100644 --- a/ballerina/modules/safari/SafariDriver.bal +++ b/ballerina/modules/safari/SafariDriver.bal @@ -154,6 +154,21 @@ public distinct class SafariDriver { return newObj; } + # The function that maps to the `findElements` method of `org.openqa.selenium.chrome.ChromeDriver`. + # + # + locator - The `orgopenqaselenium:By` value required to map with the Java method parameter. + # + return - The `orgopenqaselenium:WebElement[]` value returning from the Java mapping. + public isolated function findAllElements(orgopenqaselenium:By locator) returns orgopenqaselenium:WebElement[]|error { + handle externalObj = org_openqa_selenium_safari_SafariDriver_findElements(self.jObj, locator.jObj); + javautil:List newObj = new (externalObj); + orgopenqaselenium:WebElement[] elements = []; + javalang:Object[] arr = check newObj.toArray(); + foreach var item in arr { + elements.push(check java:cast(item, orgopenqaselenium:WebElement)); + } + return elements; + } + # The function that maps to the `findElements` method of `org.openqa.selenium.safari.SafariDriver`. # # + context - The `orgopenqaselenium:SearchContext` value required to map with the Java method parameter. diff --git a/ballerina/modules/web/WebElement.bal b/ballerina/modules/web/WebElement.bal index b34e155..14559de 100644 --- a/ballerina/modules/web/WebElement.bal +++ b/ballerina/modules/web/WebElement.bal @@ -73,6 +73,21 @@ public distinct class WebElement { return newObj; } + # The function that maps to the `findElements` method of `org.openqa.selenium.chrome.ChromeDriver`. + # + # + locator - The `orgopenqaselenium:By` value required to map with the Java method parameter. + # + return - The `orgopenqaselenium:WebElement[]` value returning from the Java mapping. + public isolated function findAllElements(By locator) returns WebElement[]|error { + handle externalObj = org_openqa_selenium_WebElement_findElements(self.jObj, locator.jObj); + javautil:List newObj = new (externalObj); + WebElement[] elements = []; + javalang:Object[] arr = check newObj.toArray(); + foreach var item in arr { + elements.push(check java:cast(item, WebElement)); + } + return elements; + } + # The function that maps to the `getAccessibleName` method of `org.openqa.selenium.WebElement`. # # + return - The `string` value returning from the Java mapping. From 0a4033373358d0717ae0c8d96c3609ac9133b41b Mon Sep 17 00:00:00 2001 From: dharshi Date: Fri, 13 Dec 2024 09:47:44 +0530 Subject: [PATCH 14/43] Add native code and client code --- .gitattributes | 2 + README.md | 175 ++- ballerina/Ballerina.toml | 224 +-- ballerina/Dependencies.toml | 86 +- ballerina/Module.md | 152 +- ballerina/Package.md | 152 +- ballerina/build.gradle | 4 +- ballerina/{client.bal => error.bal} | 5 +- .../InterruptedException.bal => init.bal} | 15 +- ballerina/modules/chrome/ChromeDriver.bal | 1274 ----------------- .../modules/chrome/ChromeDriverService.bal | 43 - ballerina/modules/chrome/ChromeOptions.bal | 43 - ballerina/modules/edge/EdgeDriver.bal | 1274 ----------------- ballerina/modules/edge/EdgeDriverService.bal | 43 - ballerina/modules/edge/EdgeOptions.bal | 43 - .../modules/firefox/FirefoxCommandContext.bal | 43 - ballerina/modules/firefox/FirefoxDriver.bal | 1080 -------------- .../modules/firefox/FirefoxDriverService.bal | 43 - ballerina/modules/firefox/FirefoxOptions.bal | 43 - ballerina/modules/java.lang/Boolean.bal | 43 - ballerina/modules/java.lang/CharSequence.bal | 43 - ballerina/modules/java.lang/Class.bal | 43 - ballerina/modules/java.lang/Object.bal | 175 --- ballerina/modules/java.net/URL.bal | 43 - ballerina/modules/java.nio.file/Path.bal | 43 - .../modules/java.util.function/BiFunction.bal | 43 - .../modules/java.util.function/Consumer.bal | 39 - .../java.util.function/IntFunction.bal | 39 - .../modules/java.util.function/Predicate.bal | 43 - .../modules/java.util.function/Supplier.bal | 43 - .../java.util.function/UnaryOperator.bal | 39 - ballerina/modules/java.util.logging/Level.bal | 43 - ballerina/modules/java.util.stream/Stream.bal | 39 - ballerina/modules/java.util/Collection.bal | 43 - ballerina/modules/java.util/Comparator.bal | 39 - ballerina/modules/java.util/Iterator.bal | 39 - ballerina/modules/java.util/List.bal | 778 ---------- ballerina/modules/java.util/ListIterator.bal | 39 - ballerina/modules/java.util/Map.bal | 43 - ballerina/modules/java.util/Optional.bal | 43 - ballerina/modules/java.util/Set.bal | 43 - ballerina/modules/java.util/Spliterator.bal | 39 - .../modules/org.openqa.selenium.bidi/BiDi.bal | 43 - .../ChromiumDriver.bal | 1195 ---------------- .../ChromiumNetworkConditions.bal | 43 - .../org.openqa.selenium.devtools/DevTools.bal | 43 - .../FederatedCredentialManagementDialog.bal | 43 - .../LocalStorage.bal | 43 - .../org.openqa.selenium.html5/Location.bal | 43 - .../SessionStorage.bal | 43 - .../org.openqa.selenium.logging/EventType.bal | 43 - .../ConnectionType.bal | 43 - .../PrintOptions.bal | 43 - .../ClientConfig.bal | 43 - .../DriverService.bal | 43 - .../CommandExecutor.bal | 43 - .../ErrorHandler.bal | 43 - .../FileDetector.bal | 43 - .../org.openqa.selenium.remote/Network.bal | 43 - .../RemoteWebDriver.bal | 903 ------------ .../RemoteWebDriverBuilder.bal | 43 - .../org.openqa.selenium.remote/Script.bal | 43 - .../org.openqa.selenium.remote/SessionId.bal | 43 - .../VirtualAuthenticator.bal | 43 - .../VirtualAuthenticatorOptions.bal | 43 - ballerina/modules/safari/SafariDriver.bal | 942 ------------ .../modules/safari/SafariDriverService.bal | 43 - ballerina/modules/safari/SafariOptions.bal | 43 - ballerina/modules/web/By.bal | 325 ----- ballerina/modules/web/Capabilities.bal | 43 - ballerina/modules/web/Dimension.bal | 206 --- ballerina/modules/web/Navigation.bal | 43 - ballerina/modules/web/Options.bal | 43 - ballerina/modules/web/OutputType.bal | 43 - ballerina/modules/web/Pdf.bal | 43 - ballerina/modules/web/Point.bal | 43 - ballerina/modules/web/Rectangle.bal | 43 - ballerina/modules/web/ScriptKey.bal | 43 - ballerina/modules/web/SearchContext.bal | 43 - ballerina/modules/web/TargetLocator.bal | 43 - ballerina/modules/web/WebDriver.bal | 224 --- ballerina/modules/web/WebElement.bal | 364 ----- ballerina/tests/web_driver_test.bal | 501 +++++++ ballerina/web_driver.bal | 334 +++++ ballerina/web_element.bal | 206 +++ build-config/checkstyle/build.gradle | 49 + build-config/resources/Ballerina.toml | 261 +++- build.gradle | 19 + .../.devcontainer.json | 8 - .../.gitignore | 11 - .../Ballerina.toml | 6 + .../Dependencies.toml | 27 +- .../student_application_form_filling/main.bal | 136 +- .../utils.bal | 2 +- examples/web_scrapping/Ballerina.toml | 14 + examples/web_scrapping/Dependencies.toml | 91 ++ examples/web_scrapping/README.md | 11 + examples/web_scrapping/main.bal | 60 + gradle.properties | 9 +- native/build.gradle | 74 + .../io/xlibb/selenium/SeleniumWebDriver.java | 432 ++++++ .../io/xlibb/selenium/SeleniumWebElement.java | 305 ++++ .../io/xlibb/selenium/utils/ModuleUtils.java | 36 + .../java/io/xlibb/selenium/utils/Utils.java | 79 + .../src/main/java/module-info.java | 16 +- settings.gradle | 9 + 106 files changed, 3063 insertions(+), 11779 deletions(-) rename ballerina/{client.bal => error.bal} (80%) rename ballerina/{modules/java.lang/InterruptedException.bal => init.bal} (69%) delete mode 100644 ballerina/modules/chrome/ChromeDriver.bal delete mode 100644 ballerina/modules/chrome/ChromeDriverService.bal delete mode 100644 ballerina/modules/chrome/ChromeOptions.bal delete mode 100644 ballerina/modules/edge/EdgeDriver.bal delete mode 100644 ballerina/modules/edge/EdgeDriverService.bal delete mode 100644 ballerina/modules/edge/EdgeOptions.bal delete mode 100644 ballerina/modules/firefox/FirefoxCommandContext.bal delete mode 100644 ballerina/modules/firefox/FirefoxDriver.bal delete mode 100644 ballerina/modules/firefox/FirefoxDriverService.bal delete mode 100644 ballerina/modules/firefox/FirefoxOptions.bal delete mode 100644 ballerina/modules/java.lang/Boolean.bal delete mode 100644 ballerina/modules/java.lang/CharSequence.bal delete mode 100644 ballerina/modules/java.lang/Class.bal delete mode 100644 ballerina/modules/java.lang/Object.bal delete mode 100644 ballerina/modules/java.net/URL.bal delete mode 100644 ballerina/modules/java.nio.file/Path.bal delete mode 100644 ballerina/modules/java.util.function/BiFunction.bal delete mode 100644 ballerina/modules/java.util.function/Consumer.bal delete mode 100644 ballerina/modules/java.util.function/IntFunction.bal delete mode 100644 ballerina/modules/java.util.function/Predicate.bal delete mode 100644 ballerina/modules/java.util.function/Supplier.bal delete mode 100644 ballerina/modules/java.util.function/UnaryOperator.bal delete mode 100644 ballerina/modules/java.util.logging/Level.bal delete mode 100644 ballerina/modules/java.util.stream/Stream.bal delete mode 100644 ballerina/modules/java.util/Collection.bal delete mode 100644 ballerina/modules/java.util/Comparator.bal delete mode 100644 ballerina/modules/java.util/Iterator.bal delete mode 100644 ballerina/modules/java.util/List.bal delete mode 100644 ballerina/modules/java.util/ListIterator.bal delete mode 100644 ballerina/modules/java.util/Map.bal delete mode 100644 ballerina/modules/java.util/Optional.bal delete mode 100644 ballerina/modules/java.util/Set.bal delete mode 100644 ballerina/modules/java.util/Spliterator.bal delete mode 100644 ballerina/modules/org.openqa.selenium.bidi/BiDi.bal delete mode 100644 ballerina/modules/org.openqa.selenium.chromium/ChromiumDriver.bal delete mode 100644 ballerina/modules/org.openqa.selenium.chromium/ChromiumNetworkConditions.bal delete mode 100644 ballerina/modules/org.openqa.selenium.devtools/DevTools.bal delete mode 100644 ballerina/modules/org.openqa.selenium.federatedcredentialmanagement/FederatedCredentialManagementDialog.bal delete mode 100644 ballerina/modules/org.openqa.selenium.html5/LocalStorage.bal delete mode 100644 ballerina/modules/org.openqa.selenium.html5/Location.bal delete mode 100644 ballerina/modules/org.openqa.selenium.html5/SessionStorage.bal delete mode 100644 ballerina/modules/org.openqa.selenium.logging/EventType.bal delete mode 100644 ballerina/modules/org.openqa.selenium.mobile/ConnectionType.bal delete mode 100644 ballerina/modules/org.openqa.selenium.print/PrintOptions.bal delete mode 100644 ballerina/modules/org.openqa.selenium.remote.http/ClientConfig.bal delete mode 100644 ballerina/modules/org.openqa.selenium.remote.service/DriverService.bal delete mode 100644 ballerina/modules/org.openqa.selenium.remote/CommandExecutor.bal delete mode 100644 ballerina/modules/org.openqa.selenium.remote/ErrorHandler.bal delete mode 100644 ballerina/modules/org.openqa.selenium.remote/FileDetector.bal delete mode 100644 ballerina/modules/org.openqa.selenium.remote/Network.bal delete mode 100644 ballerina/modules/org.openqa.selenium.remote/RemoteWebDriver.bal delete mode 100644 ballerina/modules/org.openqa.selenium.remote/RemoteWebDriverBuilder.bal delete mode 100644 ballerina/modules/org.openqa.selenium.remote/Script.bal delete mode 100644 ballerina/modules/org.openqa.selenium.remote/SessionId.bal delete mode 100644 ballerina/modules/org.openqa.selenium.virtualauthenticator/VirtualAuthenticator.bal delete mode 100644 ballerina/modules/org.openqa.selenium.virtualauthenticator/VirtualAuthenticatorOptions.bal delete mode 100644 ballerina/modules/safari/SafariDriver.bal delete mode 100644 ballerina/modules/safari/SafariDriverService.bal delete mode 100644 ballerina/modules/safari/SafariOptions.bal delete mode 100644 ballerina/modules/web/By.bal delete mode 100644 ballerina/modules/web/Capabilities.bal delete mode 100644 ballerina/modules/web/Dimension.bal delete mode 100644 ballerina/modules/web/Navigation.bal delete mode 100644 ballerina/modules/web/Options.bal delete mode 100644 ballerina/modules/web/OutputType.bal delete mode 100644 ballerina/modules/web/Pdf.bal delete mode 100644 ballerina/modules/web/Point.bal delete mode 100644 ballerina/modules/web/Rectangle.bal delete mode 100644 ballerina/modules/web/ScriptKey.bal delete mode 100644 ballerina/modules/web/SearchContext.bal delete mode 100644 ballerina/modules/web/TargetLocator.bal delete mode 100644 ballerina/modules/web/WebDriver.bal delete mode 100644 ballerina/modules/web/WebElement.bal create mode 100644 ballerina/tests/web_driver_test.bal create mode 100644 ballerina/web_driver.bal create mode 100644 ballerina/web_element.bal create mode 100644 build-config/checkstyle/build.gradle delete mode 100644 examples/student_application_form_filling/.devcontainer.json delete mode 100644 examples/student_application_form_filling/.gitignore create mode 100644 examples/web_scrapping/Ballerina.toml create mode 100644 examples/web_scrapping/Dependencies.toml create mode 100644 examples/web_scrapping/README.md create mode 100644 examples/web_scrapping/main.bal create mode 100644 native/build.gradle create mode 100644 native/src/main/java/io/xlibb/selenium/SeleniumWebDriver.java create mode 100644 native/src/main/java/io/xlibb/selenium/SeleniumWebElement.java create mode 100644 native/src/main/java/io/xlibb/selenium/utils/ModuleUtils.java create mode 100644 native/src/main/java/io/xlibb/selenium/utils/Utils.java rename ballerina/modules/java.io/IOException.bal => native/src/main/java/module-info.java (71%) diff --git a/.gitattributes b/.gitattributes index f91f646..b5d8f35 100644 --- a/.gitattributes +++ b/.gitattributes @@ -10,3 +10,5 @@ # Binary files should be left untouched *.jar binary +# Ensure all Java files use LF. +*.java eol=lf diff --git a/README.md b/README.md index d3f8027..4d82b6e 100644 --- a/README.md +++ b/README.md @@ -13,49 +13,28 @@ This module automates web applications across various browsers. Selenium interac ## Quickstart -#### Web driver +### Web driver -The core component of Selenium is the WebDriver. It is an interface for controlling a web browser instance and communicates with the browser through its native API. You can create a web driver based on the browser you want to automate. +The core component of Selenium is the WebDriver. It is an interface for controlling a web browser instance and communicates with the browser through its native API. ```ballerina -import xlibb/selenium.chrome; -import xlibb/selenium.safari; -import xlibb/selenium.edge; -import xlibb/selenium.firefox; +import xlibb/selenium; public function main() { - chrome:ChromeDriver driver1 = chrome:newChromeDriver1(); // Web driver for Chrome browsers - firefox:FirefoxDriver driver2 = firefox:newFirefoxDriver1(); // Web driver for Firefox browsers - edge:EdgeDriver driver3 = edge:newEdgeDriver1(); // Webdriver for edge browsers - safari:SafariDriver driver4 = safari:newSafariDriver1(); // Web driver for Safari browsers + selenium:WebDriver driver = new (); + // Opens a new Chrome browser instance and navigates to the specified URL. + driver.openChrome("https://central.ballerina.io/"); } ``` -#### Launching website. - -```ballerina -import xlibb/selenium.chrome; - -public function main() { - - chrome:ChromeDriver driver = chrome:newChromeDriver1(); - - // Navigate to the desired website. - driver.get("https://central.ballerina.io/"); - -} -``` - -#### Locating elements +### Locating elements A locator is a way to identify elements on a page. Selenium provides support for several location strategies in WebDriver, such as class name, ID, CSS selector, name, tag name, and XPath. `WebElement` class: Represents an element in the DOM; allows interaction (e.g., click, send keys). -`By` class: Locator strategies for finding elements (e.g., By_id, By_name, By_xpath). - ```html
@@ -65,105 +44,167 @@ A locator is a way to identify elements on a page. Selenium provides support for ``` ```ballerina -import xlibb/selenium.chrome; -import xlibb/selenium.web; +import xlibb/selenium; import ballerina/io; public function main() { - chrome:ChromeDriver driver = chrome:newChromeDriver1(); - web:WebElement form = driver.findElement(web:By_id("form")); // By ID - web:WebElement searchboxByName = driver.findElement(web:By_name("q")); // By Name - web:WebElement searchboxbyCss = driver.findElement(web:By_cssSelector("#form .search-box")); // By CSS Selector - web:WebElement searchboxbyXpath = driver.findElement(web:By_xpath("//input[@id='search']")); // By XPath - web:WebElement searchboxbyClassName = driver.findElement(web:By_className("search-box")); // By Class Name - web:WebElement searchboxbyTagName = driver.findElement(web:By_tagName("input")); // By Tag Name - web:WebElement nestedElement = form.findElement(web:By_name("q")); // Locating a WebElement inside another WebElement + // By ID + selenium:WebElement form = check driver.findById("form"); + + // By Name + selenium:WebElement searchboxByName = check driver.findByName("q"); + + // By CSS Selector + selenium:WebElement searchboxByCss = check driver.findByCssSelector("#form .search-box"); + + // By XPath + selenium:WebElement searchboxByXpath = check driver.findByXpath("//input[@id='search']"); + + // By Class Name + selenium:WebElement searchboxByClassName = check driver.findByClassName("search-box"); + + // By Tag Name + selenium:WebElement searchboxByTagName = check driver.findByTagName("input"); + + // Locating a WebElement inside another WebElement + selenium:WebElement nestedElement = check form.findByName("q"); + + // Locating all elements with same locator + selenium:WebElement[] inputElements = check driver.findAllByTagName("input"); } ``` -#### Fetching data over any web element +### Fetching data over any web element To fetch data from a web element in Selenium, you can interact with it using various methods depending on the type of data you need. 1. Text of an element (e.g., a paragraph or label): ```ballerina -string labelText = driver.findElement(web:By_className("input-label")).getText(); +selenium:WebElement label = check driver.findByClassName("input-label"); +string labelText = label.getText(); io:println(labelText); ``` 2. Attribute value (e.g., value of an input field or the href attribute of a link): ```ballerina -string value = driver.findElement(web:By_id("elementId")).getAttribute("value"); // For input fields -string href = driver.findElement(web:By_tagName("a")).getAttribute("href"); // For links +string value = (check driver.findElementById("elementId")).getDomAttribute("value"); // For input fields +string href = (check driver.findElementByTagName("a")).getDomAttribute("href"); // For links ``` 3. Checking if an element is displayed/enabled/selected: ```ballerina -selenium:WebElement element = driver.findElement(web:By_id("elementId")); +selenium:WebElement element = check driver.findById("elementId"); boolean isDisplayed = element.isDisplayed(); boolean isEnabled = element.isEnabled(); boolean isSelected = element.isSelected(); ``` -#### Sending user inputs to web element +### Sending user inputs to web element -To send user inputs to web elements, you can use the sendKeys() method, which simulates typing into text-based input fields (like textboxes, textareas, etc.). +To send user inputs to web elements, you can use the `sendKeys()` method, which simulates typing into text-based input fields (like textboxes, textareas, etc.). ```ballerina -check driver.findElement(web:By_className("search-box")).sendKeys(["ballerina"]); +(check driver.findByClassName("search-box")).sendKeys("ballerina"); ``` -#### Performing Click event +### Performing Click event -To perform a click event on a web element, you can use the click() method on the WebElement object. This is commonly used to simulate clicking on buttons, links, checkboxes, radio buttons, or any other clickable elements. +To perform a click event on a web element, you can use the `click()` method on the WebElement object. This is commonly used to simulate clicking on buttons, links, checkboxes, radio buttons, or any other clickable elements. ```ballerina -driver.findElement(web:By_className("submit-btn")).click(); +(check driver.findByClassName("submit-btn")).click(); ``` -#### Closing the browser +### Closing the browser ```ballerina driver.quit(); ``` -#### Complete example +### Working with windows and tabs -The below code will do the following, -1. Opens Chrome browser. -2. Navigates to ballerina central page. -3. Search for 'http' module. +**Window handles** are unique identifiers for each browser window or tab. These can be used to programmatically manage multiple windows. ```ballerina -import xlibb/selenium.chrome; -import xlibb/selenium.web; -import ballerina/lang.runtime; +// Initialize a new WebDriver instance +selenium:WebDriver driver = new (); -public function main() returns error? { - chrome:ChromeDriver driver = chrome:newChromeDriver1(); - driver.get("https://central.ballerina.io/"); +// Open the specified URL in Chrome. +driver.openChrome("https://the-internet.herokuapp.com/windows"); - // Wait for some time, till the page completely loads. - runtime:sleep(2); +// Print the title of the current window. +io:println(driver.getTitle()); // Prints "The Internet" + +// Store the current window handle. +string firstWindow = driver.getCurrentWindowHandle(); + +// Click on the link that opens a new window. +(check driver.findByPartialLinkText("Click")).click(); + +// Get handles for all open windows. +string[] allWindows = driver.getAllWindowHandles(); + +// Switch to the second window. Now the driver is pointing to the new window. +check driver.switchToWindowHandle(allWindows[1]); + +// Print the title of the currrent window. +io:println(driver.getTitle()); // Prints "New Window" + +// Close the second (current) window. +driver.closeCurrentWindowHandle(); + +// Switch back to the first window. Now the driver is pointing to the first window. +check driver.switchToWindowHandle(firstWindow); + +// Print the title of the current window +io:println(driver.getTitle()); // Prints "The Internet" + +// Quit the driver and close all windows +driver.quit(); - check driver.findElement(web:By_id("downshift-search-bar-input")).sendKeys(["http"]); - driver.findElement(web:By_className("Search_searchButton__iLPLB")).click(); -} ``` +### Selenium IDE for Finding Locators + +Selenium IDE is a handy tool for finding locators for web elements. Here's how to use it effectively: + +1. Install Selenium IDE: Download and install the Selenium IDE extension for your browser (Chrome or Firefox) [here](https://www.selenium.dev/selenium-ide/). +2. Launch Selenium IDE: Open the Selenium IDE extension from your browser's toolbar. + +3. Start a New Project: Click on Create a New Project and name your project. + +new project - side + +4. Start Recording: + - Click on the Record a New Test in a New Project option. + - Enter the URL of the web application you want to test. + - Selenium IDE will open the URL in a new tab and start recording your actions. + +start recording - side + +5. Perform Actions on the Webpage: Interact with the web elements (e.g., click buttons, fill out forms) on the page. Selenium IDE will record these actions as steps in your test case. +6. View Recorded Steps: Once done, stop the recording. The recorded steps will appear in the Selenium IDE window. Each step will include information about the action and the locator used. +7. Inspect Locators: + - In the list of recorded steps, click on a step to view details. + - The Target field shows the locator for the web element (e.g., XPath, ID, Name, CSS selector, etc.). + - You can switch between different locator strategies by clicking the dropdown next to the locator. Selenium IDE will display alternatives if available. + +find locators + ## Examples The `Selenium` connector provides practical examples illustrating usage in various scenarios. Explore these [examples](https://github.com/xlibb/module-selenium/tree/main/examples/), covering the following use cases: -1. [Automating the Filling of Student Application Forms for a Web Application.](https://github.com/xlibb/module-selenium/tree/main/examples/student_application_form_filling). +1. [Web Scrapping.](https://github.com/xlibb/module-selenium/tree/main/examples/web_scrapping). +2. [Automating the Filling of Student Application Forms for a Web Application.](https://github.com/xlibb/module-selenium/tree/main/examples/student_application_form_filling). ## Build from the source diff --git a/ballerina/Ballerina.toml b/ballerina/Ballerina.toml index 5815562..158d6bc 100644 --- a/ballerina/Ballerina.toml +++ b/ballerina/Ballerina.toml @@ -6,9 +6,8 @@ version = "0.1.0" license = ["Apache-2.0"] authors = ["Ballerina"] keywords = ["selenium", "web-automation"] -icon = "icon.png" +icon = "icon.png" repository = "https://github.com/xlibb/module-selenium" -export = ["selenium", "selenium.web", "selenium.chrome", "selenium.edge", "selenium.firefox", "selenium.safari"] [build-options] observabilityIncluded = true @@ -16,89 +15,11 @@ observabilityIncluded = true [platform.java17] graalvmCompatible = true -# transitive dependency of org.seleniumhq.selenium:selenium-api:4.25.0 [[platform.java17.dependency]] -groupId = "org.jspecify" -artifactId = "jspecify" -version = "1.0.0" - -# transitive dependency of org.seleniumhq.selenium:selenium-chrome-driver:4.25.0 -[[platform.java17.dependency]] -groupId = "com.google.auto.service" -artifactId = "auto-service-annotations" -version = "1.1.1" - -# transitive dependency of org.seleniumhq.selenium:selenium-java:4.25.0 -[[platform.java17.dependency]] -groupId = "org.seleniumhq.selenium" -artifactId = "selenium-devtools-v127" -version = "4.25.0" - -# transitive dependency of org.seleniumhq.selenium:selenium-java:4.25.0 -[[platform.java17.dependency]] -groupId = "org.seleniumhq.selenium" -artifactId = "selenium-devtools-v128" -version = "4.25.0" - -# transitive dependency of org.seleniumhq.selenium:selenium-firefox-driver:4.25.0 -[[platform.java17.dependency]] -groupId = "dev.failsafe" -artifactId = "failsafe" -version = "3.3.2" - -# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.25.0 -[[platform.java17.dependency]] -groupId = "com.google.guava" -artifactId = "guava" -version = "33.3.0-jre" - -# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.25.0 -[[platform.java17.dependency]] -groupId = "com.google.guava" -artifactId = "failureaccess" -version = "1.0.2" - -# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.25.0 -[[platform.java17.dependency]] -groupId = "com.google.guava" -artifactId = "listenablefuture" -version = "9999.0-empty-to-avoid-conflict-with-guava" - -# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.25.0 -[[platform.java17.dependency]] -groupId = "com.google.code.findbugs" -artifactId = "jsr305" -version = "3.0.2" - -# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.25.0 -[[platform.java17.dependency]] -groupId = "org.checkerframework" -artifactId = "checker-qual" -version = "3.43.0" - -# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.25.0 -[[platform.java17.dependency]] -groupId = "com.google.errorprone" -artifactId = "error_prone_annotations" -version = "2.28.0" - -# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.25.0 -[[platform.java17.dependency]] -groupId = "com.google.j2objc" -artifactId = "j2objc-annotations" -version = "3.0.0" - -# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.25.0 -[[platform.java17.dependency]] -groupId = "net.bytebuddy" -artifactId = "byte-buddy" -version = "1.15.1" - -# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.25.0 -[[platform.java17.dependency]] -groupId = "org.apache.commons" -artifactId = "commons-exec" -version = "1.4.0" +groupId = "io.xlibb.selenium" +artifactId = "selenium-native" +version = "0.1.0" +path = "../native/build/libs/selenium-native-0.1.0-SNAPSHOT.jar" [[platform.java17.dependency]] groupId = "org.seleniumhq.selenium" @@ -111,12 +32,24 @@ groupId = "org.seleniumhq.selenium" artifactId = "selenium-api" version = "4.27.0" +# transitive dependency of org.seleniumhq.selenium:selenium-api:4.27.0 +[[platform.java17.dependency]] +groupId = "org.jspecify" +artifactId = "jspecify" +version = "1.0.0" + # transitive dependency of org.seleniumhq.selenium:selenium-java:4.27.0 [[platform.java17.dependency]] groupId = "org.seleniumhq.selenium" artifactId = "selenium-chrome-driver" version = "4.27.0" +# transitive dependency of org.seleniumhq.selenium:selenium-chrome-driver:4.27.0 +[[platform.java17.dependency]] +groupId = "com.google.auto.service" +artifactId = "auto-service-annotations" +version = "1.1.1" + # transitive dependency of org.seleniumhq.selenium:selenium-chrome-driver:4.27.0 [[platform.java17.dependency]] groupId = "org.seleniumhq.selenium" @@ -177,6 +110,12 @@ groupId = "org.seleniumhq.selenium" artifactId = "selenium-http" version = "4.27.0" +# transitive dependency of org.seleniumhq.selenium:selenium-firefox-driver:4.27.0 +[[platform.java17.dependency]] +groupId = "dev.failsafe" +artifactId = "failsafe" +version = "3.3.2" + # transitive dependency of org.seleniumhq.selenium:selenium-java:4.27.0 [[platform.java17.dependency]] groupId = "org.seleniumhq.selenium" @@ -195,6 +134,114 @@ groupId = "com.google.guava" artifactId = "guava" version = "33.3.1-jre" +# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.27.0 +[[platform.java17.dependency]] +groupId = "com.google.guava" +artifactId = "failureaccess" +version = "1.0.2" + +# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.27.0 +[[platform.java17.dependency]] +groupId = "com.google.guava" +artifactId = "listenablefuture" +version = "9999.0-empty-to-avoid-conflict-with-guava" + +# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.27.0 +[[platform.java17.dependency]] +groupId = "com.google.code.findbugs" +artifactId = "jsr305" +version = "3.0.2" + +# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.27.0 +[[platform.java17.dependency]] +groupId = "org.checkerframework" +artifactId = "checker-qual" +version = "3.43.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.27.0 +[[platform.java17.dependency]] +groupId = "com.google.errorprone" +artifactId = "error_prone_annotations" +version = "2.28.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.27.0 +[[platform.java17.dependency]] +groupId = "com.google.j2objc" +artifactId = "j2objc-annotations" +version = "3.0.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.27.0 +[[platform.java17.dependency]] +groupId = "io.opentelemetry.semconv" +artifactId = "opentelemetry-semconv" +version = "1.25.0-alpha" + +# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.27.0 +[[platform.java17.dependency]] +groupId = "io.opentelemetry" +artifactId = "opentelemetry-api" +version = "1.44.1" + +# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.27.0 +[[platform.java17.dependency]] +groupId = "io.opentelemetry" +artifactId = "opentelemetry-context" +version = "1.44.1" + +# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.27.0 +[[platform.java17.dependency]] +groupId = "io.opentelemetry" +artifactId = "opentelemetry-exporter-logging" +version = "1.44.1" + +# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.27.0 +[[platform.java17.dependency]] +groupId = "io.opentelemetry" +artifactId = "opentelemetry-sdk-common" +version = "1.44.1" + +# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.27.0 +[[platform.java17.dependency]] +groupId = "io.opentelemetry" +artifactId = "opentelemetry-sdk-extension-autoconfigure-spi" +version = "1.44.1" + +# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.27.0 +[[platform.java17.dependency]] +groupId = "io.opentelemetry" +artifactId = "opentelemetry-sdk-extension-autoconfigure" +version = "1.44.1" + +# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.27.0 +[[platform.java17.dependency]] +groupId = "io.opentelemetry" +artifactId = "opentelemetry-api-incubator" +version = "1.44.1-alpha" + +# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.27.0 +[[platform.java17.dependency]] +groupId = "io.opentelemetry" +artifactId = "opentelemetry-sdk-trace" +version = "1.44.1" + +# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.27.0 +[[platform.java17.dependency]] +groupId = "io.opentelemetry" +artifactId = "opentelemetry-sdk" +version = "1.44.1" + +# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.27.0 +[[platform.java17.dependency]] +groupId = "io.opentelemetry" +artifactId = "opentelemetry-sdk-metrics" +version = "1.44.1" + +# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.27.0 +[[platform.java17.dependency]] +groupId = "io.opentelemetry" +artifactId = "opentelemetry-sdk-logs" +version = "1.44.1" + # transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.27.0 [[platform.java17.dependency]] groupId = "net.bytebuddy" @@ -207,6 +254,12 @@ groupId = "org.seleniumhq.selenium" artifactId = "selenium-os" version = "4.27.0" +# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.27.0 +[[platform.java17.dependency]] +groupId = "org.apache.commons" +artifactId = "commons-exec" +version = "1.4.0" + # transitive dependency of org.seleniumhq.selenium:selenium-java:4.27.0 [[platform.java17.dependency]] groupId = "org.seleniumhq.selenium" @@ -217,5 +270,4 @@ version = "4.27.0" [[platform.java17.dependency]] groupId = "org.seleniumhq.selenium" artifactId = "selenium-support" -version = "4.27.0" - +version = "4.27.0" \ No newline at end of file diff --git a/ballerina/Dependencies.toml b/ballerina/Dependencies.toml index 20e09f2..539cf25 100644 --- a/ballerina/Dependencies.toml +++ b/ballerina/Dependencies.toml @@ -17,13 +17,49 @@ modules = [ [[package]] org = "ballerina" -name = "jballerina.java.arrays" -version = "1.4.0" +name = "lang.__internal" +version = "0.0.0" +scope = "testOnly" +dependencies = [ + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "lang.object"} +] + +[[package]] +org = "ballerina" +name = "lang.array" +version = "0.0.0" +scope = "testOnly" +dependencies = [ + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "lang.__internal"} +] + +[[package]] +org = "ballerina" +name = "lang.error" +version = "0.0.0" +scope = "testOnly" +dependencies = [ + {org = "ballerina", name = "jballerina.java"} +] + +[[package]] +org = "ballerina" +name = "lang.object" +version = "0.0.0" +scope = "testOnly" + +[[package]] +org = "ballerina" +name = "lang.runtime" +version = "0.0.0" +scope = "testOnly" dependencies = [ {org = "ballerina", name = "jballerina.java"} ] modules = [ - {org = "ballerina", packageName = "jballerina.java.arrays", moduleName = "jballerina.java.arrays"} + {org = "ballerina", packageName = "lang.runtime", moduleName = "lang.runtime"} ] [[package]] @@ -34,6 +70,20 @@ dependencies = [ {org = "ballerina", name = "jballerina.java"} ] +[[package]] +org = "ballerina" +name = "test" +version = "0.0.0" +scope = "testOnly" +dependencies = [ + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "lang.array"}, + {org = "ballerina", name = "lang.error"} +] +modules = [ + {org = "ballerina", packageName = "test", moduleName = "test"} +] + [[package]] org = "ballerinai" name = "observe" @@ -52,35 +102,11 @@ name = "selenium" version = "0.1.0" dependencies = [ {org = "ballerina", name = "jballerina.java"}, - {org = "ballerina", name = "jballerina.java.arrays"}, + {org = "ballerina", name = "lang.runtime"}, + {org = "ballerina", name = "test"}, {org = "ballerinai", name = "observe"} ] modules = [ - {org = "xlibb", packageName = "selenium", moduleName = "selenium"}, - {org = "xlibb", packageName = "selenium", moduleName = "selenium.chrome"}, - {org = "xlibb", packageName = "selenium", moduleName = "selenium.edge"}, - {org = "xlibb", packageName = "selenium", moduleName = "selenium.firefox"}, - {org = "xlibb", packageName = "selenium", moduleName = "selenium.java.io"}, - {org = "xlibb", packageName = "selenium", moduleName = "selenium.java.lang"}, - {org = "xlibb", packageName = "selenium", moduleName = "selenium.java.net"}, - {org = "xlibb", packageName = "selenium", moduleName = "selenium.java.nio.file"}, - {org = "xlibb", packageName = "selenium", moduleName = "selenium.java.util"}, - {org = "xlibb", packageName = "selenium", moduleName = "selenium.java.util.function"}, - {org = "xlibb", packageName = "selenium", moduleName = "selenium.java.util.logging"}, - {org = "xlibb", packageName = "selenium", moduleName = "selenium.java.util.stream"}, - {org = "xlibb", packageName = "selenium", moduleName = "selenium.org.openqa.selenium.bidi"}, - {org = "xlibb", packageName = "selenium", moduleName = "selenium.org.openqa.selenium.chromium"}, - {org = "xlibb", packageName = "selenium", moduleName = "selenium.org.openqa.selenium.devtools"}, - {org = "xlibb", packageName = "selenium", moduleName = "selenium.org.openqa.selenium.federatedcredentialmanagement"}, - {org = "xlibb", packageName = "selenium", moduleName = "selenium.org.openqa.selenium.html5"}, - {org = "xlibb", packageName = "selenium", moduleName = "selenium.org.openqa.selenium.logging"}, - {org = "xlibb", packageName = "selenium", moduleName = "selenium.org.openqa.selenium.mobile"}, - {org = "xlibb", packageName = "selenium", moduleName = "selenium.org.openqa.selenium.print"}, - {org = "xlibb", packageName = "selenium", moduleName = "selenium.org.openqa.selenium.remote"}, - {org = "xlibb", packageName = "selenium", moduleName = "selenium.org.openqa.selenium.remote.http"}, - {org = "xlibb", packageName = "selenium", moduleName = "selenium.org.openqa.selenium.remote.service"}, - {org = "xlibb", packageName = "selenium", moduleName = "selenium.org.openqa.selenium.virtualauthenticator"}, - {org = "xlibb", packageName = "selenium", moduleName = "selenium.safari"}, - {org = "xlibb", packageName = "selenium", moduleName = "selenium.web"} + {org = "xlibb", packageName = "selenium", moduleName = "selenium"} ] diff --git a/ballerina/Module.md b/ballerina/Module.md index 18d5f9a..07d0723 100644 --- a/ballerina/Module.md +++ b/ballerina/Module.md @@ -4,49 +4,28 @@ This module automates web applications across various browsers. Selenium interac ## Quickstart -#### Web driver +### Web driver -The core component of Selenium is the WebDriver. It is an interface for controlling a web browser instance and communicates with the browser through its native API. You can create a web driver based on the browser you want to automate. +The core component of Selenium is the WebDriver. It is an interface for controlling a web browser instance and communicates with the browser through its native API. ```ballerina -import xlibb/selenium.chrome; -import xlibb/selenium.safari; -import xlibb/selenium.edge; -import xlibb/selenium.firefox; +import xlibb/selenium; public function main() { - chrome:ChromeDriver driver1 = chrome:newChromeDriver1(); // Web driver for Chrome browsers - firefox:FirefoxDriver driver2 = firefox:newFirefoxDriver1(); // Web driver for Firefox browsers - edge:EdgeDriver driver3 = edge:newEdgeDriver1(); // Webdriver for edge browsers - safari:SafariDriver driver4 = safari:newSafariDriver1(); // Web driver for Safari browsers + selenium:WebDriver driver = new (); + // Opens a new Chrome browser instance and navigates to the specified URL. + driver.openChrome("https://central.ballerina.io/"); } ``` -#### Launching website. - -```ballerina -import xlibb/selenium.chrome; - -public function main() { - - chrome:ChromeDriver driver = chrome:newChromeDriver1(); - - // Navigate to the desired website. - driver.get("https://central.ballerina.io/"); - -} -``` - -#### Locating elements +### Locating elements A locator is a way to identify elements on a page. Selenium provides support for several location strategies in WebDriver, such as class name, ID, CSS selector, name, tag name, and XPath. `WebElement` class: Represents an element in the DOM; allows interaction (e.g., click, send keys). -`By` class: Locator strategies for finding elements (e.g., By_id, By_name, By_xpath). - ```html @@ -56,101 +35,134 @@ A locator is a way to identify elements on a page. Selenium provides support for ``` ```ballerina -import xlibb/selenium.chrome; -import xlibb/selenium.web; +import xlibb/selenium; import ballerina/io; public function main() { - chrome:ChromeDriver driver = chrome:newChromeDriver1(); - web:WebElement form = driver.findElement(web:By_id("form")); // By ID - web:WebElement searchboxByName = driver.findElement(web:By_name("q")); // By Name - web:WebElement searchboxbyCss = driver.findElement(web:By_cssSelector("#form .search-box")); // By CSS Selector - web:WebElement searchboxbyXpath = driver.findElement(web:By_xpath("//input[@id='search']")); // By XPath - web:WebElement searchboxbyClassName = driver.findElement(web:By_className("search-box")); // By Class Name - web:WebElement searchboxbyTagName = driver.findElement(web:By_tagName("input")); // By Tag Name - web:WebElement nestedElement = form.findElement(web:By_name("q")); // Locating a WebElement inside another WebElement - web:WebElement[] inputElements = check driver.findAllElements(web:By_tagName("input")); // Locating all elements with same locator + // By ID + selenium:WebElement form = check driver.findById("form"); + + // By Name + selenium:WebElement searchboxByName = check driver.findByName("q"); + + // By CSS Selector + selenium:WebElement searchboxByCss = check driver.findByCssSelector("#form .search-box"); + + // By XPath + selenium:WebElement searchboxByXpath = check driver.findByXpath("//input[@id='search']"); + + // By Class Name + selenium:WebElement searchboxByClassName = check driver.findByClassName("search-box"); + + // By Tag Name + selenium:WebElement searchboxByTagName = check driver.findByTagName("input"); + + // Locating a WebElement inside another WebElement + selenium:WebElement nestedElement = check form.findByName("q"); + + // Locating all elements with same locator + selenium:WebElement[] inputElements = check driver.findAllByTagName("input"); } ``` -#### Fetching data over any web element +### Fetching data over any web element To fetch data from a web element in Selenium, you can interact with it using various methods depending on the type of data you need. 1. Text of an element (e.g., a paragraph or label): ```ballerina -string labelText = driver.findElement(web:By_className("input-label")).getText(); +selenium:WebElement label = check driver.findByClassName("input-label"); +string labelText = label.getText(); io:println(labelText); ``` 2. Attribute value (e.g., value of an input field or the href attribute of a link): ```ballerina -string value = driver.findElement(web:By_id("elementId")).getAttribute("value"); // For input fields -string href = driver.findElement(web:By_tagName("a")).getAttribute("href"); // For links +string value = (check driver.findElementById("elementId")).getDomAttribute("value"); // For input fields +string href = (check driver.findElementByTagName("a")).getDomAttribute("href"); // For links ``` 3. Checking if an element is displayed/enabled/selected: ```ballerina -web:WebElement element = driver.findElement(web:By_id("elementId")); +selenium:WebElement element = check driver.findById("elementId"); boolean isDisplayed = element.isDisplayed(); boolean isEnabled = element.isEnabled(); boolean isSelected = element.isSelected(); ``` -#### Sending user inputs to web element +### Sending user inputs to web element -To send user inputs to web elements, you can use the sendKeys() method, which simulates typing into text-based input fields (like textboxes, textareas, etc.). +To send user inputs to web elements, you can use the `sendKeys()` method, which simulates typing into text-based input fields (like textboxes, textareas, etc.). ```ballerina -check driver.findElement(web:By_className("search-box")).sendKeys(["ballerina"]); +(check driver.findByClassName("search-box")).sendKeys("ballerina"); ``` -#### Performing Click event +### Performing Click event -To perform a click event on a web element, you can use the click() method on the WebElement object. This is commonly used to simulate clicking on buttons, links, checkboxes, radio buttons, or any other clickable elements. +To perform a click event on a web element, you can use the `click()` method on the WebElement object. This is commonly used to simulate clicking on buttons, links, checkboxes, radio buttons, or any other clickable elements. ```ballerina -driver.findElement(web:By_className("submit-btn")).click(); +(check driver.findByClassName("submit-btn")).click(); ``` -#### Closing the browser +### Closing the browser ```ballerina driver.quit(); ``` -#### Complete example +### Working with windows and tabs -The below code will do the following, -1. Opens Chrome browser. -2. Navigates to ballerina central page. -3. Search for 'http' module. +**Window handles** are unique identifiers for each browser window or tab. These can be used to programmatically manage multiple windows. ```ballerina -import xlibb/selenium.chrome; -import xlibb/selenium.web; -import ballerina/lang.runtime; +// Initialize a new WebDriver instance +selenium:WebDriver driver = new (); -public function main() returns error? { - chrome:ChromeDriver driver = chrome:newChromeDriver1(); - driver.get("https://central.ballerina.io/"); +// Open the specified URL in Chrome. +driver.openChrome("https://the-internet.herokuapp.com/windows"); - // Wait for some time, till the page completely loads. - runtime:sleep(2); +// Print the title of the current window. +io:println(driver.getTitle()); // Prints "The Internet" + +// Store the current window handle. +string firstWindow = driver.getCurrentWindowHandle(); + +// Click on the link that opens a new window. +(check driver.findByPartialLinkText("Click")).click(); + +// Get handles for all open windows. +string[] allWindows = driver.getAllWindowHandles(); + +// Switch to the second window. Now the driver is pointing to the new window. +check driver.switchToWindowHandle(allWindows[1]); + +// Print the title of the currrent window. +io:println(driver.getTitle()); // Prints "New Window" + +// Close the second (current) window. +driver.closeCurrentWindowHandle(); + +// Switch back to the first window. Now the driver is pointing to the first window. +check driver.switchToWindowHandle(firstWindow); + +// Print the title of the current window +io:println(driver.getTitle()); // Prints "The Internet" + +// Quit the driver and close all windows +driver.quit(); - check driver.findElement(web:By_id("downshift-search-bar-input")).sendKeys(["http"]); - driver.findElement(web:By_className("Search_searchButton__iLPLB")).click(); -} ``` -#### Selenium IDE for Finding Locators +### Selenium IDE for Finding Locators Selenium IDE is a handy tool for finding locators for web elements. Here's how to use it effectively: @@ -181,4 +193,6 @@ Selenium IDE is a handy tool for finding locators for web elements. Here's how t The `Selenium` connector provides practical examples illustrating usage in various scenarios. Explore these [examples](https://github.com/xlibb/module-selenium/tree/main/examples/), covering the following use cases: -1. [Automating the Filling of Student Application Forms for a Web Application.](https://github.com/xlibb/module-selenium/tree/main/examples/student_application_form_filling). +1. [Web Scrapping.](https://github.com/xlibb/module-selenium/tree/main/examples/web_scrapping). + +2. [Automating the Filling of Student Application Forms for a Web Application.](https://github.com/xlibb/module-selenium/tree/main/examples/student_application_form_filling). diff --git a/ballerina/Package.md b/ballerina/Package.md index 18d5f9a..07d0723 100644 --- a/ballerina/Package.md +++ b/ballerina/Package.md @@ -4,49 +4,28 @@ This module automates web applications across various browsers. Selenium interac ## Quickstart -#### Web driver +### Web driver -The core component of Selenium is the WebDriver. It is an interface for controlling a web browser instance and communicates with the browser through its native API. You can create a web driver based on the browser you want to automate. +The core component of Selenium is the WebDriver. It is an interface for controlling a web browser instance and communicates with the browser through its native API. ```ballerina -import xlibb/selenium.chrome; -import xlibb/selenium.safari; -import xlibb/selenium.edge; -import xlibb/selenium.firefox; +import xlibb/selenium; public function main() { - chrome:ChromeDriver driver1 = chrome:newChromeDriver1(); // Web driver for Chrome browsers - firefox:FirefoxDriver driver2 = firefox:newFirefoxDriver1(); // Web driver for Firefox browsers - edge:EdgeDriver driver3 = edge:newEdgeDriver1(); // Webdriver for edge browsers - safari:SafariDriver driver4 = safari:newSafariDriver1(); // Web driver for Safari browsers + selenium:WebDriver driver = new (); + // Opens a new Chrome browser instance and navigates to the specified URL. + driver.openChrome("https://central.ballerina.io/"); } ``` -#### Launching website. - -```ballerina -import xlibb/selenium.chrome; - -public function main() { - - chrome:ChromeDriver driver = chrome:newChromeDriver1(); - - // Navigate to the desired website. - driver.get("https://central.ballerina.io/"); - -} -``` - -#### Locating elements +### Locating elements A locator is a way to identify elements on a page. Selenium provides support for several location strategies in WebDriver, such as class name, ID, CSS selector, name, tag name, and XPath. `WebElement` class: Represents an element in the DOM; allows interaction (e.g., click, send keys). -`By` class: Locator strategies for finding elements (e.g., By_id, By_name, By_xpath). - ```html @@ -56,101 +35,134 @@ A locator is a way to identify elements on a page. Selenium provides support for ``` ```ballerina -import xlibb/selenium.chrome; -import xlibb/selenium.web; +import xlibb/selenium; import ballerina/io; public function main() { - chrome:ChromeDriver driver = chrome:newChromeDriver1(); - web:WebElement form = driver.findElement(web:By_id("form")); // By ID - web:WebElement searchboxByName = driver.findElement(web:By_name("q")); // By Name - web:WebElement searchboxbyCss = driver.findElement(web:By_cssSelector("#form .search-box")); // By CSS Selector - web:WebElement searchboxbyXpath = driver.findElement(web:By_xpath("//input[@id='search']")); // By XPath - web:WebElement searchboxbyClassName = driver.findElement(web:By_className("search-box")); // By Class Name - web:WebElement searchboxbyTagName = driver.findElement(web:By_tagName("input")); // By Tag Name - web:WebElement nestedElement = form.findElement(web:By_name("q")); // Locating a WebElement inside another WebElement - web:WebElement[] inputElements = check driver.findAllElements(web:By_tagName("input")); // Locating all elements with same locator + // By ID + selenium:WebElement form = check driver.findById("form"); + + // By Name + selenium:WebElement searchboxByName = check driver.findByName("q"); + + // By CSS Selector + selenium:WebElement searchboxByCss = check driver.findByCssSelector("#form .search-box"); + + // By XPath + selenium:WebElement searchboxByXpath = check driver.findByXpath("//input[@id='search']"); + + // By Class Name + selenium:WebElement searchboxByClassName = check driver.findByClassName("search-box"); + + // By Tag Name + selenium:WebElement searchboxByTagName = check driver.findByTagName("input"); + + // Locating a WebElement inside another WebElement + selenium:WebElement nestedElement = check form.findByName("q"); + + // Locating all elements with same locator + selenium:WebElement[] inputElements = check driver.findAllByTagName("input"); } ``` -#### Fetching data over any web element +### Fetching data over any web element To fetch data from a web element in Selenium, you can interact with it using various methods depending on the type of data you need. 1. Text of an element (e.g., a paragraph or label): ```ballerina -string labelText = driver.findElement(web:By_className("input-label")).getText(); +selenium:WebElement label = check driver.findByClassName("input-label"); +string labelText = label.getText(); io:println(labelText); ``` 2. Attribute value (e.g., value of an input field or the href attribute of a link): ```ballerina -string value = driver.findElement(web:By_id("elementId")).getAttribute("value"); // For input fields -string href = driver.findElement(web:By_tagName("a")).getAttribute("href"); // For links +string value = (check driver.findElementById("elementId")).getDomAttribute("value"); // For input fields +string href = (check driver.findElementByTagName("a")).getDomAttribute("href"); // For links ``` 3. Checking if an element is displayed/enabled/selected: ```ballerina -web:WebElement element = driver.findElement(web:By_id("elementId")); +selenium:WebElement element = check driver.findById("elementId"); boolean isDisplayed = element.isDisplayed(); boolean isEnabled = element.isEnabled(); boolean isSelected = element.isSelected(); ``` -#### Sending user inputs to web element +### Sending user inputs to web element -To send user inputs to web elements, you can use the sendKeys() method, which simulates typing into text-based input fields (like textboxes, textareas, etc.). +To send user inputs to web elements, you can use the `sendKeys()` method, which simulates typing into text-based input fields (like textboxes, textareas, etc.). ```ballerina -check driver.findElement(web:By_className("search-box")).sendKeys(["ballerina"]); +(check driver.findByClassName("search-box")).sendKeys("ballerina"); ``` -#### Performing Click event +### Performing Click event -To perform a click event on a web element, you can use the click() method on the WebElement object. This is commonly used to simulate clicking on buttons, links, checkboxes, radio buttons, or any other clickable elements. +To perform a click event on a web element, you can use the `click()` method on the WebElement object. This is commonly used to simulate clicking on buttons, links, checkboxes, radio buttons, or any other clickable elements. ```ballerina -driver.findElement(web:By_className("submit-btn")).click(); +(check driver.findByClassName("submit-btn")).click(); ``` -#### Closing the browser +### Closing the browser ```ballerina driver.quit(); ``` -#### Complete example +### Working with windows and tabs -The below code will do the following, -1. Opens Chrome browser. -2. Navigates to ballerina central page. -3. Search for 'http' module. +**Window handles** are unique identifiers for each browser window or tab. These can be used to programmatically manage multiple windows. ```ballerina -import xlibb/selenium.chrome; -import xlibb/selenium.web; -import ballerina/lang.runtime; +// Initialize a new WebDriver instance +selenium:WebDriver driver = new (); -public function main() returns error? { - chrome:ChromeDriver driver = chrome:newChromeDriver1(); - driver.get("https://central.ballerina.io/"); +// Open the specified URL in Chrome. +driver.openChrome("https://the-internet.herokuapp.com/windows"); - // Wait for some time, till the page completely loads. - runtime:sleep(2); +// Print the title of the current window. +io:println(driver.getTitle()); // Prints "The Internet" + +// Store the current window handle. +string firstWindow = driver.getCurrentWindowHandle(); + +// Click on the link that opens a new window. +(check driver.findByPartialLinkText("Click")).click(); + +// Get handles for all open windows. +string[] allWindows = driver.getAllWindowHandles(); + +// Switch to the second window. Now the driver is pointing to the new window. +check driver.switchToWindowHandle(allWindows[1]); + +// Print the title of the currrent window. +io:println(driver.getTitle()); // Prints "New Window" + +// Close the second (current) window. +driver.closeCurrentWindowHandle(); + +// Switch back to the first window. Now the driver is pointing to the first window. +check driver.switchToWindowHandle(firstWindow); + +// Print the title of the current window +io:println(driver.getTitle()); // Prints "The Internet" + +// Quit the driver and close all windows +driver.quit(); - check driver.findElement(web:By_id("downshift-search-bar-input")).sendKeys(["http"]); - driver.findElement(web:By_className("Search_searchButton__iLPLB")).click(); -} ``` -#### Selenium IDE for Finding Locators +### Selenium IDE for Finding Locators Selenium IDE is a handy tool for finding locators for web elements. Here's how to use it effectively: @@ -181,4 +193,6 @@ Selenium IDE is a handy tool for finding locators for web elements. Here's how t The `Selenium` connector provides practical examples illustrating usage in various scenarios. Explore these [examples](https://github.com/xlibb/module-selenium/tree/main/examples/), covering the following use cases: -1. [Automating the Filling of Student Application Forms for a Web Application.](https://github.com/xlibb/module-selenium/tree/main/examples/student_application_form_filling). +1. [Web Scrapping.](https://github.com/xlibb/module-selenium/tree/main/examples/web_scrapping). + +2. [Automating the Filling of Student Application Forms for a Web Application.](https://github.com/xlibb/module-selenium/tree/main/examples/student_application_form_filling). diff --git a/ballerina/build.gradle b/ballerina/build.gradle index 5a8e176..56c766b 100644 --- a/ballerina/build.gradle +++ b/ballerina/build.gradle @@ -49,7 +49,7 @@ ballerina { module = packageName testCoverageParam = "--code-coverage --coverage-format=xml" isConnector = true - platform = "any" + platform = "java17" } task updateTomlFiles { @@ -95,6 +95,8 @@ clean { delete 'build' } +test.dependsOn ":${packageName}-native:build" +build.dependsOn ":${packageName}-native:build" build.dependsOn "generatePomFileForMavenPublication" publishToMavenLocal.dependsOn build publish.dependsOn build diff --git a/ballerina/client.bal b/ballerina/error.bal similarity index 80% rename from ballerina/client.bal rename to ballerina/error.bal index 66cdc3f..cb26cc2 100644 --- a/ballerina/client.bal +++ b/ballerina/error.bal @@ -1,4 +1,4 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com. // // WSO2 LLC. licenses this file to you under the Apache License, // Version 2.0 (the "License"); you may not use this file except @@ -13,3 +13,6 @@ // KIND, either express or implied. See the License for the // specific language governing permissions and limitations // under the License. + +# Represents any error related to the Selenium module. +public type Error distinct error; diff --git a/ballerina/modules/java.lang/InterruptedException.bal b/ballerina/init.bal similarity index 69% rename from ballerina/modules/java.lang/InterruptedException.bal rename to ballerina/init.bal index 30957fa..0c60ed0 100644 --- a/ballerina/modules/java.lang/InterruptedException.bal +++ b/ballerina/init.bal @@ -1,4 +1,4 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com. // // WSO2 LLC. licenses this file to you under the Apache License, // Version 2.0 (the "License"); you may not use this file except @@ -14,11 +14,12 @@ // specific language governing permissions and limitations // under the License. -public const INTERRUPTEDEXCEPTION = "InterruptedException"; +import ballerina/jballerina.java; -type InterruptedExceptionData record { - string message; -}; - -public type InterruptedException distinct error; +isolated function init() { + setModule(); +} +isolated function setModule() = @java:Method { + 'class: "io.xlibb.selenium.utils.ModuleUtils" +} external; diff --git a/ballerina/modules/chrome/ChromeDriver.bal b/ballerina/modules/chrome/ChromeDriver.bal deleted file mode 100644 index 051f871..0000000 --- a/ballerina/modules/chrome/ChromeDriver.bal +++ /dev/null @@ -1,1274 +0,0 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). -// -// WSO2 LLC. licenses this file to you under the Apache License, -// Version 2.0 (the "License"); you may not use this file except -// in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -import selenium.java.io as javaio; -import selenium.java.lang as javalang; -import selenium.java.nio.file as javaniofile; -import selenium.java.util as javautil; -import selenium.java.util.'function as javautilfunction; -import selenium.java.util.logging as javautillogging; -import selenium.web as orgopenqaselenium; -import selenium.org.openqa.selenium.'remote as orgopenqaseleniumremote; -import selenium.org.openqa.selenium.'remote.http as orgopenqaseleniumremotehttp; -import selenium.org.openqa.selenium.bidi as orgopenqaseleniumbidi; -import selenium.org.openqa.selenium.chromium as orgopenqaseleniumchromium; -import selenium.org.openqa.selenium.devtools as orgopenqaseleniumdevtools; -import selenium.org.openqa.selenium.federatedcredentialmanagement as orgopenqaseleniumfederatedcredentialmanagement; -import selenium.org.openqa.selenium.html5 as orgopenqaseleniumhtml5; -import selenium.org.openqa.selenium.logging as orgopenqaseleniumlogging; -import selenium.org.openqa.selenium.mobile as orgopenqaseleniummobile; -import selenium.org.openqa.selenium.print as orgopenqaseleniumprint; -import selenium.org.openqa.selenium.virtualauthenticator as orgopenqaseleniumvirtualauthenticator; - -import ballerina/jballerina.java; -import ballerina/jballerina.java.arrays as jarrays; - -# Ballerina class mapping for the Java `org.openqa.selenium.chrome.ChromeDriver` class. -@java:Binding {'class: "org.openqa.selenium.chrome.ChromeDriver"} -public distinct class ChromeDriver { - - *java:JObject; - *orgopenqaseleniumchromium:ChromiumDriver; - - # The `handle` field that stores the reference to the `org.openqa.selenium.chrome.ChromeDriver` object. - public handle jObj; - - # The init function of the Ballerina class mapping the `org.openqa.selenium.chrome.ChromeDriver` Java class. - # - # + obj - The `handle` value containing the Java reference of the object. - public isolated function init(handle obj) { - self.jObj = obj; - } - - # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.chrome.ChromeDriver` Java class. - # - # + return - The `string` form of the Java object instance. - public isolated function toString() returns string { - return java:toString(self.jObj) ?: ""; - } - - # The function that maps to the `addVirtualAuthenticator` method of `org.openqa.selenium.chrome.ChromeDriver`. - # - # + options - The `orgopenqaseleniumvirtualauthenticator:VirtualAuthenticatorOptions` value required to map with the Java method parameter. - # + return - The `orgopenqaseleniumvirtualauthenticator:VirtualAuthenticator` value returning from the Java mapping. - public isolated function addVirtualAuthenticator(orgopenqaseleniumvirtualauthenticator:VirtualAuthenticatorOptions options) returns orgopenqaseleniumvirtualauthenticator:VirtualAuthenticator { - handle externalObj = org_openqa_selenium_chrome_ChromeDriver_addVirtualAuthenticator(self.jObj, options.jObj); - orgopenqaseleniumvirtualauthenticator:VirtualAuthenticator newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `close` method of `org.openqa.selenium.chrome.ChromeDriver`. - public isolated function close() { - org_openqa_selenium_chrome_ChromeDriver_close(self.jObj); - } - - # The function that maps to the `deleteDownloadableFiles` method of `org.openqa.selenium.chrome.ChromeDriver`. - public isolated function deleteDownloadableFiles() { - org_openqa_selenium_chrome_ChromeDriver_deleteDownloadableFiles(self.jObj); - } - - # The function that maps to the `deleteNetworkConditions` method of `org.openqa.selenium.chrome.ChromeDriver`. - public isolated function deleteNetworkConditions() { - org_openqa_selenium_chrome_ChromeDriver_deleteNetworkConditions(self.jObj); - } - - # The function that maps to the `downloadFile` method of `org.openqa.selenium.chrome.ChromeDriver`. - # - # + fileName - The `string` value required to map with the Java method parameter. - # + targetLocation - The `javaniofile:Path` value required to map with the Java method parameter. - # + return - The `javaio:IOException` value returning from the Java mapping. - public isolated function downloadFile(string fileName, javaniofile:Path targetLocation) returns javaio:IOException? { - error|() externalObj = org_openqa_selenium_chrome_ChromeDriver_downloadFile(self.jObj, java:fromString(fileName), targetLocation.jObj); - if (externalObj is error) { - javaio:IOException e = error javaio:IOException(javaio:IOEXCEPTION, externalObj, message = externalObj.message()); - return e; - } - } - - # The function that maps to the `equals` method of `org.openqa.selenium.chrome.ChromeDriver`. - # - # + arg0 - The `javalang:Object` value required to map with the Java method parameter. - # + return - The `boolean` value returning from the Java mapping. - public isolated function 'equals(javalang:Object arg0) returns boolean { - return org_openqa_selenium_chrome_ChromeDriver_equals(self.jObj, arg0.jObj); - } - - # The function that maps to the `executeAsyncScript` method of `org.openqa.selenium.chrome.ChromeDriver`. - # - # + script - The `string` value required to map with the Java method parameter. - # + args - The `javalang:Object[]` value required to map with the Java method parameter. - # + return - The `javalang:Object` value returning from the Java mapping. - public isolated function executeAsyncScript(string script, javalang:Object[] args) returns javalang:Object|error { - handle externalObj = org_openqa_selenium_chrome_ChromeDriver_executeAsyncScript(self.jObj, java:fromString(script), check jarrays:toHandle(args, "java.lang.Object")); - javalang:Object newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `executeCdpCommand` method of `org.openqa.selenium.chrome.ChromeDriver`. - # - # + commandName - The `string` value required to map with the Java method parameter. - # + parameters - The `javautil:Map` value required to map with the Java method parameter. - # + return - The `javautil:Map` value returning from the Java mapping. - public isolated function executeCdpCommand(string commandName, javautil:Map parameters) returns javautil:Map { - handle externalObj = org_openqa_selenium_chrome_ChromeDriver_executeCdpCommand(self.jObj, java:fromString(commandName), parameters.jObj); - javautil:Map newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `executeScript` method of `org.openqa.selenium.chrome.ChromeDriver`. - # - # + 'key - The `orgopenqaselenium:ScriptKey` value required to map with the Java method parameter. - # + args - The `javalang:Object[]` value required to map with the Java method parameter. - # + return - The `javalang:Object` value returning from the Java mapping. - public isolated function executeScript(orgopenqaselenium:ScriptKey 'key, javalang:Object[] args) returns javalang:Object|error { - handle externalObj = org_openqa_selenium_chrome_ChromeDriver_executeScript(self.jObj, 'key.jObj, check jarrays:toHandle(args, "java.lang.Object")); - javalang:Object newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `executeScript` method of `org.openqa.selenium.chrome.ChromeDriver`. - # - # + script - The `string` value required to map with the Java method parameter. - # + args - The `javalang:Object[]` value required to map with the Java method parameter. - # + return - The `javalang:Object` value returning from the Java mapping. - public isolated function executeScript2(string script, javalang:Object[] args) returns javalang:Object|error { - handle externalObj = org_openqa_selenium_chrome_ChromeDriver_executeScript2(self.jObj, java:fromString(script), check jarrays:toHandle(args, "java.lang.Object")); - javalang:Object newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `findElement` method of `org.openqa.selenium.chrome.ChromeDriver`. - # - # + locator - The `orgopenqaselenium:By` value required to map with the Java method parameter. - # + return - The `orgopenqaselenium:WebElement` value returning from the Java mapping. - public isolated function findElement(orgopenqaselenium:By locator) returns orgopenqaselenium:WebElement { - handle externalObj = org_openqa_selenium_chrome_ChromeDriver_findElement(self.jObj, locator.jObj); - orgopenqaselenium:WebElement newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `findElements` method of `org.openqa.selenium.chrome.ChromeDriver`. - # - # + locator - The `orgopenqaselenium:By` value required to map with the Java method parameter. - # + return - The `orgopenqaselenium:WebElement[]` value returning from the Java mapping. - public isolated function findAllElements(orgopenqaselenium:By locator) returns orgopenqaselenium:WebElement[]|error { - handle externalObj = org_openqa_selenium_chrome_ChromeDriver_findElements(self.jObj, locator.jObj); - javautil:List newObj = new (externalObj); - orgopenqaselenium:WebElement[] elements = []; - javalang:Object[] arr = check newObj.toArray(); - foreach var item in arr { - elements.push(check java:cast(item, orgopenqaselenium:WebElement)); - } - return elements; - } - - - # The function that maps to the `findElements` method of `org.openqa.selenium.chrome.ChromeDriver`. - # - # + locator - The `orgopenqaselenium:By` value required to map with the Java method parameter. - # + return - The `javautil:List` value returning from the Java mapping. - public isolated function findElements(orgopenqaselenium:By locator) returns javautil:List { - handle externalObj = org_openqa_selenium_chrome_ChromeDriver_findElements(self.jObj, locator.jObj); - javautil:List newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `findElements` method of `org.openqa.selenium.chrome.ChromeDriver`. - # - # + context - The `orgopenqaselenium:SearchContext` value required to map with the Java method parameter. - # + findCommand - The `javautilfunction:BiFunction` value required to map with the Java method parameter. - # + locator - The `orgopenqaselenium:By` value required to map with the Java method parameter. - # + return - The `javautil:List` value returning from the Java mapping. - public isolated function findElements2(orgopenqaselenium:SearchContext context, javautilfunction:BiFunction findCommand, orgopenqaselenium:By locator) returns javautil:List { - handle externalObj = org_openqa_selenium_chrome_ChromeDriver_findElements2(self.jObj, context.jObj, findCommand.jObj, locator.jObj); - javautil:List newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `get` method of `org.openqa.selenium.chrome.ChromeDriver`. - # - # + url - The `string` value required to map with the Java method parameter. - public isolated function get(string url) { - org_openqa_selenium_chrome_ChromeDriver_get(self.jObj, java:fromString(url)); - } - - # The function that maps to the `getBiDi` method of `org.openqa.selenium.chrome.ChromeDriver`. - # - # + return - The `orgopenqaseleniumbidi:BiDi` value returning from the Java mapping. - public isolated function getBiDi() returns orgopenqaseleniumbidi:BiDi { - handle externalObj = org_openqa_selenium_chrome_ChromeDriver_getBiDi(self.jObj); - orgopenqaseleniumbidi:BiDi newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getCapabilities` method of `org.openqa.selenium.chrome.ChromeDriver`. - # - # + return - The `orgopenqaselenium:Capabilities` value returning from the Java mapping. - public isolated function getCapabilities() returns orgopenqaselenium:Capabilities { - handle externalObj = org_openqa_selenium_chrome_ChromeDriver_getCapabilities(self.jObj); - orgopenqaselenium:Capabilities newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getCastIssueMessage` method of `org.openqa.selenium.chrome.ChromeDriver`. - # - # + return - The `string` value returning from the Java mapping. - public isolated function getCastIssueMessage() returns string { - return java:toString(org_openqa_selenium_chrome_ChromeDriver_getCastIssueMessage(self.jObj)) ?: ""; - } - - # The function that maps to the `getCastSinks` method of `org.openqa.selenium.chrome.ChromeDriver`. - # - # + return - The `javautil:List` value returning from the Java mapping. - public isolated function getCastSinks() returns javautil:List { - handle externalObj = org_openqa_selenium_chrome_ChromeDriver_getCastSinks(self.jObj); - javautil:List newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getClass` method of `org.openqa.selenium.chrome.ChromeDriver`. - # - # + return - The `javalang:Class` value returning from the Java mapping. - public isolated function getClass() returns javalang:Class { - handle externalObj = org_openqa_selenium_chrome_ChromeDriver_getClass(self.jObj); - javalang:Class newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getCommandExecutor` method of `org.openqa.selenium.chrome.ChromeDriver`. - # - # + return - The `orgopenqaseleniumremote:CommandExecutor` value returning from the Java mapping. - public isolated function getCommandExecutor() returns orgopenqaseleniumremote:CommandExecutor { - handle externalObj = org_openqa_selenium_chrome_ChromeDriver_getCommandExecutor(self.jObj); - orgopenqaseleniumremote:CommandExecutor newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getCurrentUrl` method of `org.openqa.selenium.chrome.ChromeDriver`. - # - # + return - The `string` value returning from the Java mapping. - public isolated function getCurrentUrl() returns string { - return java:toString(org_openqa_selenium_chrome_ChromeDriver_getCurrentUrl(self.jObj)) ?: ""; - } - - # The function that maps to the `getDevTools` method of `org.openqa.selenium.chrome.ChromeDriver`. - # - # + return - The `orgopenqaseleniumdevtools:DevTools` value returning from the Java mapping. - public isolated function getDevTools() returns orgopenqaseleniumdevtools:DevTools { - handle externalObj = org_openqa_selenium_chrome_ChromeDriver_getDevTools(self.jObj); - orgopenqaseleniumdevtools:DevTools newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getDownloadableFiles` method of `org.openqa.selenium.chrome.ChromeDriver`. - # - # + return - The `javautil:List` value returning from the Java mapping. - public isolated function getDownloadableFiles() returns javautil:List { - handle externalObj = org_openqa_selenium_chrome_ChromeDriver_getDownloadableFiles(self.jObj); - javautil:List newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getErrorHandler` method of `org.openqa.selenium.chrome.ChromeDriver`. - # - # + return - The `orgopenqaseleniumremote:ErrorHandler` value returning from the Java mapping. - public isolated function getErrorHandler() returns orgopenqaseleniumremote:ErrorHandler { - handle externalObj = org_openqa_selenium_chrome_ChromeDriver_getErrorHandler(self.jObj); - orgopenqaseleniumremote:ErrorHandler newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getFederatedCredentialManagementDialog` method of `org.openqa.selenium.chrome.ChromeDriver`. - # - # + return - The `orgopenqaseleniumfederatedcredentialmanagement:FederatedCredentialManagementDialog` value returning from the Java mapping. - public isolated function getFederatedCredentialManagementDialog() returns orgopenqaseleniumfederatedcredentialmanagement:FederatedCredentialManagementDialog { - handle externalObj = org_openqa_selenium_chrome_ChromeDriver_getFederatedCredentialManagementDialog(self.jObj); - orgopenqaseleniumfederatedcredentialmanagement:FederatedCredentialManagementDialog newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getFileDetector` method of `org.openqa.selenium.chrome.ChromeDriver`. - # - # + return - The `orgopenqaseleniumremote:FileDetector` value returning from the Java mapping. - public isolated function getFileDetector() returns orgopenqaseleniumremote:FileDetector { - handle externalObj = org_openqa_selenium_chrome_ChromeDriver_getFileDetector(self.jObj); - orgopenqaseleniumremote:FileDetector newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getLocalStorage` method of `org.openqa.selenium.chrome.ChromeDriver`. - # - # + return - The `orgopenqaseleniumhtml5:LocalStorage` value returning from the Java mapping. - public isolated function getLocalStorage() returns orgopenqaseleniumhtml5:LocalStorage { - handle externalObj = org_openqa_selenium_chrome_ChromeDriver_getLocalStorage(self.jObj); - orgopenqaseleniumhtml5:LocalStorage newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getNetworkConditions` method of `org.openqa.selenium.chrome.ChromeDriver`. - # - # + return - The `orgopenqaseleniumchromium:ChromiumNetworkConditions` value returning from the Java mapping. - public isolated function getNetworkConditions() returns orgopenqaseleniumchromium:ChromiumNetworkConditions { - handle externalObj = org_openqa_selenium_chrome_ChromeDriver_getNetworkConditions(self.jObj); - orgopenqaseleniumchromium:ChromiumNetworkConditions newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getNetworkConnection` method of `org.openqa.selenium.chrome.ChromeDriver`. - # - # + return - The `orgopenqaseleniummobile:ConnectionType` value returning from the Java mapping. - public isolated function getNetworkConnection() returns orgopenqaseleniummobile:ConnectionType { - handle externalObj = org_openqa_selenium_chrome_ChromeDriver_getNetworkConnection(self.jObj); - orgopenqaseleniummobile:ConnectionType newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getPageSource` method of `org.openqa.selenium.chrome.ChromeDriver`. - # - # + return - The `string` value returning from the Java mapping. - public isolated function getPageSource() returns string { - return java:toString(org_openqa_selenium_chrome_ChromeDriver_getPageSource(self.jObj)) ?: ""; - } - - # The function that maps to the `getPinnedScripts` method of `org.openqa.selenium.chrome.ChromeDriver`. - # - # + return - The `javautil:Set` value returning from the Java mapping. - public isolated function getPinnedScripts() returns javautil:Set { - handle externalObj = org_openqa_selenium_chrome_ChromeDriver_getPinnedScripts(self.jObj); - javautil:Set newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getScreenshotAs` method of `org.openqa.selenium.chrome.ChromeDriver`. - # - # + outputType - The `orgopenqaselenium:OutputType` value required to map with the Java method parameter. - # + return - The `javalang:Object` value returning from the Java mapping. - public isolated function getScreenshotAs(orgopenqaselenium:OutputType outputType) returns javalang:Object { - handle externalObj = org_openqa_selenium_chrome_ChromeDriver_getScreenshotAs(self.jObj, outputType.jObj); - javalang:Object newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getSessionId` method of `org.openqa.selenium.chrome.ChromeDriver`. - # - # + return - The `orgopenqaseleniumremote:SessionId` value returning from the Java mapping. - public isolated function getSessionId() returns orgopenqaseleniumremote:SessionId { - handle externalObj = org_openqa_selenium_chrome_ChromeDriver_getSessionId(self.jObj); - orgopenqaseleniumremote:SessionId newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getSessionStorage` method of `org.openqa.selenium.chrome.ChromeDriver`. - # - # + return - The `orgopenqaseleniumhtml5:SessionStorage` value returning from the Java mapping. - public isolated function getSessionStorage() returns orgopenqaseleniumhtml5:SessionStorage { - handle externalObj = org_openqa_selenium_chrome_ChromeDriver_getSessionStorage(self.jObj); - orgopenqaseleniumhtml5:SessionStorage newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getTitle` method of `org.openqa.selenium.chrome.ChromeDriver`. - # - # + return - The `string` value returning from the Java mapping. - public isolated function getTitle() returns string { - return java:toString(org_openqa_selenium_chrome_ChromeDriver_getTitle(self.jObj)) ?: ""; - } - - # The function that maps to the `getWindowHandle` method of `org.openqa.selenium.chrome.ChromeDriver`. - # - # + return - The `string` value returning from the Java mapping. - public isolated function getWindowHandle() returns string { - return java:toString(org_openqa_selenium_chrome_ChromeDriver_getWindowHandle(self.jObj)) ?: ""; - } - - # The function that maps to the `getWindowHandles` method of `org.openqa.selenium.chrome.ChromeDriver`. - # - # + return - The `javautil:Set` value returning from the Java mapping. - public isolated function getWindowHandles() returns javautil:Set { - handle externalObj = org_openqa_selenium_chrome_ChromeDriver_getWindowHandles(self.jObj); - javautil:Set newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `hashCode` method of `org.openqa.selenium.chrome.ChromeDriver`. - # - # + return - The `int` value returning from the Java mapping. - public isolated function hashCode() returns int { - return org_openqa_selenium_chrome_ChromeDriver_hashCode(self.jObj); - } - - # The function that maps to the `launchApp` method of `org.openqa.selenium.chrome.ChromeDriver`. - # - # + id - The `string` value required to map with the Java method parameter. - public isolated function launchApp(string id) { - org_openqa_selenium_chrome_ChromeDriver_launchApp(self.jObj, java:fromString(id)); - } - - # The function that maps to the `location` method of `org.openqa.selenium.chrome.ChromeDriver`. - # - # + return - The `orgopenqaseleniumhtml5:Location` value returning from the Java mapping. - public isolated function location() returns orgopenqaseleniumhtml5:Location { - handle externalObj = org_openqa_selenium_chrome_ChromeDriver_location(self.jObj); - orgopenqaseleniumhtml5:Location newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `manage` method of `org.openqa.selenium.chrome.ChromeDriver`. - # - # + return - The `orgopenqaselenium:Options` value returning from the Java mapping. - public isolated function manage() returns orgopenqaselenium:Options { - handle externalObj = org_openqa_selenium_chrome_ChromeDriver_manage(self.jObj); - orgopenqaselenium:Options newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `maybeGetBiDi` method of `org.openqa.selenium.chrome.ChromeDriver`. - # - # + return - The `javautil:Optional` value returning from the Java mapping. - public isolated function maybeGetBiDi() returns javautil:Optional { - handle externalObj = org_openqa_selenium_chrome_ChromeDriver_maybeGetBiDi(self.jObj); - javautil:Optional newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `maybeGetDevTools` method of `org.openqa.selenium.chrome.ChromeDriver`. - # - # + return - The `javautil:Optional` value returning from the Java mapping. - public isolated function maybeGetDevTools() returns javautil:Optional { - handle externalObj = org_openqa_selenium_chrome_ChromeDriver_maybeGetDevTools(self.jObj); - javautil:Optional newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `navigate` method of `org.openqa.selenium.chrome.ChromeDriver`. - # - # + return - The `orgopenqaselenium:Navigation` value returning from the Java mapping. - public isolated function navigate() returns orgopenqaselenium:Navigation { - handle externalObj = org_openqa_selenium_chrome_ChromeDriver_navigate(self.jObj); - orgopenqaselenium:Navigation newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `network` method of `org.openqa.selenium.chrome.ChromeDriver`. - # - # + return - The `orgopenqaseleniumremote:Network` value returning from the Java mapping. - public isolated function network() returns orgopenqaseleniumremote:Network { - handle externalObj = org_openqa_selenium_chrome_ChromeDriver_network(self.jObj); - orgopenqaseleniumremote:Network newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `notify` method of `org.openqa.selenium.chrome.ChromeDriver`. - public isolated function notify() { - org_openqa_selenium_chrome_ChromeDriver_notify(self.jObj); - } - - # The function that maps to the `notifyAll` method of `org.openqa.selenium.chrome.ChromeDriver`. - public isolated function notifyAll() { - org_openqa_selenium_chrome_ChromeDriver_notifyAll(self.jObj); - } - - # The function that maps to the `onLogEvent` method of `org.openqa.selenium.chrome.ChromeDriver`. - # - # + kind - The `orgopenqaseleniumlogging:EventType` value required to map with the Java method parameter. - public isolated function onLogEvent(orgopenqaseleniumlogging:EventType kind) { - org_openqa_selenium_chrome_ChromeDriver_onLogEvent(self.jObj, kind.jObj); - } - - # The function that maps to the `perform` method of `org.openqa.selenium.chrome.ChromeDriver`. - # - # + actions - The `javautil:Collection` value required to map with the Java method parameter. - public isolated function perform(javautil:Collection actions) { - org_openqa_selenium_chrome_ChromeDriver_perform(self.jObj, actions.jObj); - } - - # The function that maps to the `pin` method of `org.openqa.selenium.chrome.ChromeDriver`. - # - # + script - The `string` value required to map with the Java method parameter. - # + return - The `orgopenqaselenium:ScriptKey` value returning from the Java mapping. - public isolated function pin(string script) returns orgopenqaselenium:ScriptKey { - handle externalObj = org_openqa_selenium_chrome_ChromeDriver_pin(self.jObj, java:fromString(script)); - orgopenqaselenium:ScriptKey newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `print` method of `org.openqa.selenium.chrome.ChromeDriver`. - # - # + printOptions - The `orgopenqaseleniumprint:PrintOptions` value required to map with the Java method parameter. - # + return - The `orgopenqaselenium:Pdf` value returning from the Java mapping. - public isolated function print(orgopenqaseleniumprint:PrintOptions printOptions) returns orgopenqaselenium:Pdf { - handle externalObj = org_openqa_selenium_chrome_ChromeDriver_print(self.jObj, printOptions.jObj); - orgopenqaselenium:Pdf newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `quit` method of `org.openqa.selenium.chrome.ChromeDriver`. - public isolated function quit() { - org_openqa_selenium_chrome_ChromeDriver_quit(self.jObj); - } - - # The function that maps to the `register` method of `org.openqa.selenium.chrome.ChromeDriver`. - # - # + whenThisMatches - The `javautilfunction:Predicate` value required to map with the Java method parameter. - # + useTheseCredentials - The `javautilfunction:Supplier` value required to map with the Java method parameter. - public isolated function register(javautilfunction:Predicate whenThisMatches, javautilfunction:Supplier useTheseCredentials) { - org_openqa_selenium_chrome_ChromeDriver_register(self.jObj, whenThisMatches.jObj, useTheseCredentials.jObj); - } - - # The function that maps to the `register` method of `org.openqa.selenium.chrome.ChromeDriver`. - # - # + alwaysUseTheseCredentials - The `javautilfunction:Supplier` value required to map with the Java method parameter. - public isolated function register2(javautilfunction:Supplier alwaysUseTheseCredentials) { - org_openqa_selenium_chrome_ChromeDriver_register2(self.jObj, alwaysUseTheseCredentials.jObj); - } - - # The function that maps to the `removeVirtualAuthenticator` method of `org.openqa.selenium.chrome.ChromeDriver`. - # - # + authenticator - The `orgopenqaseleniumvirtualauthenticator:VirtualAuthenticator` value required to map with the Java method parameter. - public isolated function removeVirtualAuthenticator(orgopenqaseleniumvirtualauthenticator:VirtualAuthenticator authenticator) { - org_openqa_selenium_chrome_ChromeDriver_removeVirtualAuthenticator(self.jObj, authenticator.jObj); - } - - # The function that maps to the `requireDownloadsEnabled` method of `org.openqa.selenium.chrome.ChromeDriver`. - # - # + capabilities - The `orgopenqaselenium:Capabilities` value required to map with the Java method parameter. - public isolated function requireDownloadsEnabled(orgopenqaselenium:Capabilities capabilities) { - org_openqa_selenium_chrome_ChromeDriver_requireDownloadsEnabled(self.jObj, capabilities.jObj); - } - - # The function that maps to the `resetCooldown` method of `org.openqa.selenium.chrome.ChromeDriver`. - public isolated function resetCooldown() { - org_openqa_selenium_chrome_ChromeDriver_resetCooldown(self.jObj); - } - - # The function that maps to the `resetInputState` method of `org.openqa.selenium.chrome.ChromeDriver`. - public isolated function resetInputState() { - org_openqa_selenium_chrome_ChromeDriver_resetInputState(self.jObj); - } - - # The function that maps to the `script` method of `org.openqa.selenium.chrome.ChromeDriver`. - # - # + return - The `orgopenqaseleniumremote:Script` value returning from the Java mapping. - public isolated function script() returns orgopenqaseleniumremote:Script { - handle externalObj = org_openqa_selenium_chrome_ChromeDriver_script(self.jObj); - orgopenqaseleniumremote:Script newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `selectCastSink` method of `org.openqa.selenium.chrome.ChromeDriver`. - # - # + deviceName - The `string` value required to map with the Java method parameter. - public isolated function selectCastSink(string deviceName) { - org_openqa_selenium_chrome_ChromeDriver_selectCastSink(self.jObj, java:fromString(deviceName)); - } - - # The function that maps to the `setDelayEnabled` method of `org.openqa.selenium.chrome.ChromeDriver`. - # - # + enabled - The `boolean` value required to map with the Java method parameter. - public isolated function setDelayEnabled(boolean enabled) { - org_openqa_selenium_chrome_ChromeDriver_setDelayEnabled(self.jObj, enabled); - } - - # The function that maps to the `setErrorHandler` method of `org.openqa.selenium.chrome.ChromeDriver`. - # - # + handler - The `orgopenqaseleniumremote:ErrorHandler` value required to map with the Java method parameter. - public isolated function setErrorHandler(orgopenqaseleniumremote:ErrorHandler handler) { - org_openqa_selenium_chrome_ChromeDriver_setErrorHandler(self.jObj, handler.jObj); - } - - # The function that maps to the `setFileDetector` method of `org.openqa.selenium.chrome.ChromeDriver`. - # - # + detector - The `orgopenqaseleniumremote:FileDetector` value required to map with the Java method parameter. - public isolated function setFileDetector(orgopenqaseleniumremote:FileDetector detector) { - org_openqa_selenium_chrome_ChromeDriver_setFileDetector(self.jObj, detector.jObj); - } - - # The function that maps to the `setLocation` method of `org.openqa.selenium.chrome.ChromeDriver`. - # - # + location - The `orgopenqaseleniumhtml5:Location` value required to map with the Java method parameter. - public isolated function setLocation(orgopenqaseleniumhtml5:Location location) { - org_openqa_selenium_chrome_ChromeDriver_setLocation(self.jObj, location.jObj); - } - - # The function that maps to the `setLogLevel` method of `org.openqa.selenium.chrome.ChromeDriver`. - # - # + level - The `javautillogging:Level` value required to map with the Java method parameter. - public isolated function setLogLevel(javautillogging:Level level) { - org_openqa_selenium_chrome_ChromeDriver_setLogLevel(self.jObj, level.jObj); - } - - # The function that maps to the `setNetworkConditions` method of `org.openqa.selenium.chrome.ChromeDriver`. - # - # + networkConditions - The `orgopenqaseleniumchromium:ChromiumNetworkConditions` value required to map with the Java method parameter. - public isolated function setNetworkConditions(orgopenqaseleniumchromium:ChromiumNetworkConditions networkConditions) { - org_openqa_selenium_chrome_ChromeDriver_setNetworkConditions(self.jObj, networkConditions.jObj); - } - - # The function that maps to the `setNetworkConnection` method of `org.openqa.selenium.chrome.ChromeDriver`. - # - # + 'type - The `orgopenqaseleniummobile:ConnectionType` value required to map with the Java method parameter. - # + return - The `orgopenqaseleniummobile:ConnectionType` value returning from the Java mapping. - public isolated function setNetworkConnection(orgopenqaseleniummobile:ConnectionType 'type) returns orgopenqaseleniummobile:ConnectionType { - handle externalObj = org_openqa_selenium_chrome_ChromeDriver_setNetworkConnection(self.jObj, 'type.jObj); - orgopenqaseleniummobile:ConnectionType newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `setPermission` method of `org.openqa.selenium.chrome.ChromeDriver`. - # - # + name - The `string` value required to map with the Java method parameter. - # + value - The `string` value required to map with the Java method parameter. - public isolated function setPermission(string name, string value) { - org_openqa_selenium_chrome_ChromeDriver_setPermission(self.jObj, java:fromString(name), java:fromString(value)); - } - - # The function that maps to the `startDesktopMirroring` method of `org.openqa.selenium.chrome.ChromeDriver`. - # - # + deviceName - The `string` value required to map with the Java method parameter. - public isolated function startDesktopMirroring(string deviceName) { - org_openqa_selenium_chrome_ChromeDriver_startDesktopMirroring(self.jObj, java:fromString(deviceName)); - } - - # The function that maps to the `startTabMirroring` method of `org.openqa.selenium.chrome.ChromeDriver`. - # - # + deviceName - The `string` value required to map with the Java method parameter. - public isolated function startTabMirroring(string deviceName) { - org_openqa_selenium_chrome_ChromeDriver_startTabMirroring(self.jObj, java:fromString(deviceName)); - } - - # The function that maps to the `stopCasting` method of `org.openqa.selenium.chrome.ChromeDriver`. - # - # + deviceName - The `string` value required to map with the Java method parameter. - public isolated function stopCasting(string deviceName) { - org_openqa_selenium_chrome_ChromeDriver_stopCasting(self.jObj, java:fromString(deviceName)); - } - - # The function that maps to the `switchTo` method of `org.openqa.selenium.chrome.ChromeDriver`. - # - # + return - The `orgopenqaselenium:TargetLocator` value returning from the Java mapping. - public isolated function switchTo() returns orgopenqaselenium:TargetLocator { - handle externalObj = org_openqa_selenium_chrome_ChromeDriver_switchTo(self.jObj); - orgopenqaselenium:TargetLocator newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `unpin` method of `org.openqa.selenium.chrome.ChromeDriver`. - # - # + 'key - The `orgopenqaselenium:ScriptKey` value required to map with the Java method parameter. - public isolated function unpin(orgopenqaselenium:ScriptKey 'key) { - org_openqa_selenium_chrome_ChromeDriver_unpin(self.jObj, 'key.jObj); - } - - # The function that maps to the `wait` method of `org.openqa.selenium.chrome.ChromeDriver`. - # - # + return - The `javalang:InterruptedException` value returning from the Java mapping. - public isolated function 'wait() returns javalang:InterruptedException? { - error|() externalObj = org_openqa_selenium_chrome_ChromeDriver_wait(self.jObj); - if (externalObj is error) { - javalang:InterruptedException e = error javalang:InterruptedException(javalang:INTERRUPTEDEXCEPTION, externalObj, message = externalObj.message()); - return e; - } - } - - # The function that maps to the `wait` method of `org.openqa.selenium.chrome.ChromeDriver`. - # - # + arg0 - The `int` value required to map with the Java method parameter. - # + return - The `javalang:InterruptedException` value returning from the Java mapping. - public isolated function wait2(int arg0) returns javalang:InterruptedException? { - error|() externalObj = org_openqa_selenium_chrome_ChromeDriver_wait2(self.jObj, arg0); - if (externalObj is error) { - javalang:InterruptedException e = error javalang:InterruptedException(javalang:INTERRUPTEDEXCEPTION, externalObj, message = externalObj.message()); - return e; - } - } - - # The function that maps to the `wait` method of `org.openqa.selenium.chrome.ChromeDriver`. - # - # + arg0 - The `int` value required to map with the Java method parameter. - # + arg1 - The `int` value required to map with the Java method parameter. - # + return - The `javalang:InterruptedException` value returning from the Java mapping. - public isolated function wait3(int arg0, int arg1) returns javalang:InterruptedException? { - error|() externalObj = org_openqa_selenium_chrome_ChromeDriver_wait3(self.jObj, arg0, arg1); - if (externalObj is error) { - javalang:InterruptedException e = error javalang:InterruptedException(javalang:INTERRUPTEDEXCEPTION, externalObj, message = externalObj.message()); - return e; - } - } - -} - -# The constructor function to generate an object of `org.openqa.selenium.chrome.ChromeDriver`. -# -# + return - The new `ChromeDriver` class generated. -public isolated function newChromeDriver1() returns ChromeDriver { - handle externalObj = org_openqa_selenium_chrome_ChromeDriver_newChromeDriver1(); - ChromeDriver newObj = new (externalObj); - return newObj; -} - -# The constructor function to generate an object of `org.openqa.selenium.chrome.ChromeDriver`. -# -# + 'service - The `ChromeDriverService` value required to map with the Java constructor parameter. -# + return - The new `ChromeDriver` class generated. -public isolated function newChromeDriver2(ChromeDriverService 'service) returns ChromeDriver { - handle externalObj = org_openqa_selenium_chrome_ChromeDriver_newChromeDriver2('service.jObj); - ChromeDriver newObj = new (externalObj); - return newObj; -} - -# The constructor function to generate an object of `org.openqa.selenium.chrome.ChromeDriver`. -# -# + 'service - The `ChromeDriverService` value required to map with the Java constructor parameter. -# + options - The `ChromeOptions` value required to map with the Java constructor parameter. -# + return - The new `ChromeDriver` class generated. -public isolated function newChromeDriver3(ChromeDriverService 'service, ChromeOptions options) returns ChromeDriver { - handle externalObj = org_openqa_selenium_chrome_ChromeDriver_newChromeDriver3('service.jObj, options.jObj); - ChromeDriver newObj = new (externalObj); - return newObj; -} - -# The constructor function to generate an object of `org.openqa.selenium.chrome.ChromeDriver`. -# -# + 'service - The `ChromeDriverService` value required to map with the Java constructor parameter. -# + options - The `ChromeOptions` value required to map with the Java constructor parameter. -# + clientConfig - The `orgopenqaseleniumremotehttp:ClientConfig` value required to map with the Java constructor parameter. -# + return - The new `ChromeDriver` class generated. -public isolated function newChromeDriver4(ChromeDriverService 'service, ChromeOptions options, orgopenqaseleniumremotehttp:ClientConfig clientConfig) returns ChromeDriver { - handle externalObj = org_openqa_selenium_chrome_ChromeDriver_newChromeDriver4('service.jObj, options.jObj, clientConfig.jObj); - ChromeDriver newObj = new (externalObj); - return newObj; -} - -# The constructor function to generate an object of `org.openqa.selenium.chrome.ChromeDriver`. -# -# + options - The `ChromeOptions` value required to map with the Java constructor parameter. -# + return - The new `ChromeDriver` class generated. -public isolated function newChromeDriver5(ChromeOptions options) returns ChromeDriver { - handle externalObj = org_openqa_selenium_chrome_ChromeDriver_newChromeDriver5(options.jObj); - ChromeDriver newObj = new (externalObj); - return newObj; -} - -# The function that maps to the `builder` method of `org.openqa.selenium.chrome.ChromeDriver`. -# -# + return - The `orgopenqaseleniumremote:RemoteWebDriverBuilder` value returning from the Java mapping. -public isolated function ChromeDriver_builder() returns orgopenqaseleniumremote:RemoteWebDriverBuilder { - handle externalObj = org_openqa_selenium_chrome_ChromeDriver_builder(); - orgopenqaseleniumremote:RemoteWebDriverBuilder newObj = new (externalObj); - return newObj; -} - -# The function that retrieves the value of the public field `IS_CHROMIUM_BROWSER`. -# -# + return - The `Predicate` value of the field. -public isolated function ChromeDriver_getIS_CHROMIUM_BROWSER() returns javautilfunction:Predicate { - handle externalObj = org_openqa_selenium_chrome_ChromeDriver_getIS_CHROMIUM_BROWSER(); - javautilfunction:Predicate newObj = new (externalObj); - return newObj; -} - -isolated function org_openqa_selenium_chrome_ChromeDriver_addVirtualAuthenticator(handle receiver, handle options) returns handle = @java:Method { - name: "addVirtualAuthenticator", - 'class: "org.openqa.selenium.chrome.ChromeDriver", - paramTypes: ["org.openqa.selenium.virtualauthenticator.VirtualAuthenticatorOptions"] -} external; - -isolated function org_openqa_selenium_chrome_ChromeDriver_builder() returns handle = @java:Method { - name: "builder", - 'class: "org.openqa.selenium.chrome.ChromeDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_chrome_ChromeDriver_close(handle receiver) = @java:Method { - name: "close", - 'class: "org.openqa.selenium.chrome.ChromeDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_chrome_ChromeDriver_deleteDownloadableFiles(handle receiver) = @java:Method { - name: "deleteDownloadableFiles", - 'class: "org.openqa.selenium.chrome.ChromeDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_chrome_ChromeDriver_deleteNetworkConditions(handle receiver) = @java:Method { - name: "deleteNetworkConditions", - 'class: "org.openqa.selenium.chrome.ChromeDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_chrome_ChromeDriver_downloadFile(handle receiver, handle fileName, handle targetLocation) returns error? = @java:Method { - name: "downloadFile", - 'class: "org.openqa.selenium.chrome.ChromeDriver", - paramTypes: ["java.lang.String", "java.nio.file.Path"] -} external; - -isolated function org_openqa_selenium_chrome_ChromeDriver_equals(handle receiver, handle arg0) returns boolean = @java:Method { - name: "equals", - 'class: "org.openqa.selenium.chrome.ChromeDriver", - paramTypes: ["java.lang.Object"] -} external; - -isolated function org_openqa_selenium_chrome_ChromeDriver_executeAsyncScript(handle receiver, handle script, handle args) returns handle = @java:Method { - name: "executeAsyncScript", - 'class: "org.openqa.selenium.chrome.ChromeDriver", - paramTypes: ["java.lang.String", "[Ljava.lang.Object;"] -} external; - -isolated function org_openqa_selenium_chrome_ChromeDriver_executeCdpCommand(handle receiver, handle commandName, handle parameters) returns handle = @java:Method { - name: "executeCdpCommand", - 'class: "org.openqa.selenium.chrome.ChromeDriver", - paramTypes: ["java.lang.String", "java.util.Map"] -} external; - -isolated function org_openqa_selenium_chrome_ChromeDriver_executeScript(handle receiver, handle 'key, handle args) returns handle = @java:Method { - name: "executeScript", - 'class: "org.openqa.selenium.chrome.ChromeDriver", - paramTypes: ["org.openqa.selenium.ScriptKey", "[Ljava.lang.Object;"] -} external; - -isolated function org_openqa_selenium_chrome_ChromeDriver_executeScript2(handle receiver, handle script, handle args) returns handle = @java:Method { - name: "executeScript", - 'class: "org.openqa.selenium.chrome.ChromeDriver", - paramTypes: ["java.lang.String", "[Ljava.lang.Object;"] -} external; - -isolated function org_openqa_selenium_chrome_ChromeDriver_findElement(handle receiver, handle locator) returns handle = @java:Method { - name: "findElement", - 'class: "org.openqa.selenium.chrome.ChromeDriver", - paramTypes: ["org.openqa.selenium.By"] -} external; - -isolated function org_openqa_selenium_chrome_ChromeDriver_findElements(handle receiver, handle locator) returns handle = @java:Method { - name: "findElements", - 'class: "org.openqa.selenium.chrome.ChromeDriver", - paramTypes: ["org.openqa.selenium.By"] -} external; - -isolated function org_openqa_selenium_chrome_ChromeDriver_findElements2(handle receiver, handle context, handle findCommand, handle locator) returns handle = @java:Method { - name: "findElements", - 'class: "org.openqa.selenium.chrome.ChromeDriver", - paramTypes: ["org.openqa.selenium.SearchContext", "java.util.function.BiFunction", "org.openqa.selenium.By"] -} external; - -isolated function org_openqa_selenium_chrome_ChromeDriver_get(handle receiver, handle url) = @java:Method { - name: "get", - 'class: "org.openqa.selenium.chrome.ChromeDriver", - paramTypes: ["java.lang.String"] -} external; - -isolated function org_openqa_selenium_chrome_ChromeDriver_getBiDi(handle receiver) returns handle = @java:Method { - name: "getBiDi", - 'class: "org.openqa.selenium.chrome.ChromeDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_chrome_ChromeDriver_getCapabilities(handle receiver) returns handle = @java:Method { - name: "getCapabilities", - 'class: "org.openqa.selenium.chrome.ChromeDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_chrome_ChromeDriver_getCastIssueMessage(handle receiver) returns handle = @java:Method { - name: "getCastIssueMessage", - 'class: "org.openqa.selenium.chrome.ChromeDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_chrome_ChromeDriver_getCastSinks(handle receiver) returns handle = @java:Method { - name: "getCastSinks", - 'class: "org.openqa.selenium.chrome.ChromeDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_chrome_ChromeDriver_getClass(handle receiver) returns handle = @java:Method { - name: "getClass", - 'class: "org.openqa.selenium.chrome.ChromeDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_chrome_ChromeDriver_getCommandExecutor(handle receiver) returns handle = @java:Method { - name: "getCommandExecutor", - 'class: "org.openqa.selenium.chrome.ChromeDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_chrome_ChromeDriver_getCurrentUrl(handle receiver) returns handle = @java:Method { - name: "getCurrentUrl", - 'class: "org.openqa.selenium.chrome.ChromeDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_chrome_ChromeDriver_getDevTools(handle receiver) returns handle = @java:Method { - name: "getDevTools", - 'class: "org.openqa.selenium.chrome.ChromeDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_chrome_ChromeDriver_getDownloadableFiles(handle receiver) returns handle = @java:Method { - name: "getDownloadableFiles", - 'class: "org.openqa.selenium.chrome.ChromeDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_chrome_ChromeDriver_getErrorHandler(handle receiver) returns handle = @java:Method { - name: "getErrorHandler", - 'class: "org.openqa.selenium.chrome.ChromeDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_chrome_ChromeDriver_getFederatedCredentialManagementDialog(handle receiver) returns handle = @java:Method { - name: "getFederatedCredentialManagementDialog", - 'class: "org.openqa.selenium.chrome.ChromeDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_chrome_ChromeDriver_getFileDetector(handle receiver) returns handle = @java:Method { - name: "getFileDetector", - 'class: "org.openqa.selenium.chrome.ChromeDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_chrome_ChromeDriver_getLocalStorage(handle receiver) returns handle = @java:Method { - name: "getLocalStorage", - 'class: "org.openqa.selenium.chrome.ChromeDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_chrome_ChromeDriver_getNetworkConditions(handle receiver) returns handle = @java:Method { - name: "getNetworkConditions", - 'class: "org.openqa.selenium.chrome.ChromeDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_chrome_ChromeDriver_getNetworkConnection(handle receiver) returns handle = @java:Method { - name: "getNetworkConnection", - 'class: "org.openqa.selenium.chrome.ChromeDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_chrome_ChromeDriver_getPageSource(handle receiver) returns handle = @java:Method { - name: "getPageSource", - 'class: "org.openqa.selenium.chrome.ChromeDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_chrome_ChromeDriver_getPinnedScripts(handle receiver) returns handle = @java:Method { - name: "getPinnedScripts", - 'class: "org.openqa.selenium.chrome.ChromeDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_chrome_ChromeDriver_getScreenshotAs(handle receiver, handle outputType) returns handle = @java:Method { - name: "getScreenshotAs", - 'class: "org.openqa.selenium.chrome.ChromeDriver", - paramTypes: ["org.openqa.selenium.OutputType"] -} external; - -isolated function org_openqa_selenium_chrome_ChromeDriver_getSessionId(handle receiver) returns handle = @java:Method { - name: "getSessionId", - 'class: "org.openqa.selenium.chrome.ChromeDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_chrome_ChromeDriver_getSessionStorage(handle receiver) returns handle = @java:Method { - name: "getSessionStorage", - 'class: "org.openqa.selenium.chrome.ChromeDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_chrome_ChromeDriver_getTitle(handle receiver) returns handle = @java:Method { - name: "getTitle", - 'class: "org.openqa.selenium.chrome.ChromeDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_chrome_ChromeDriver_getWindowHandle(handle receiver) returns handle = @java:Method { - name: "getWindowHandle", - 'class: "org.openqa.selenium.chrome.ChromeDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_chrome_ChromeDriver_getWindowHandles(handle receiver) returns handle = @java:Method { - name: "getWindowHandles", - 'class: "org.openqa.selenium.chrome.ChromeDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_chrome_ChromeDriver_hashCode(handle receiver) returns int = @java:Method { - name: "hashCode", - 'class: "org.openqa.selenium.chrome.ChromeDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_chrome_ChromeDriver_launchApp(handle receiver, handle id) = @java:Method { - name: "launchApp", - 'class: "org.openqa.selenium.chrome.ChromeDriver", - paramTypes: ["java.lang.String"] -} external; - -isolated function org_openqa_selenium_chrome_ChromeDriver_location(handle receiver) returns handle = @java:Method { - name: "location", - 'class: "org.openqa.selenium.chrome.ChromeDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_chrome_ChromeDriver_manage(handle receiver) returns handle = @java:Method { - name: "manage", - 'class: "org.openqa.selenium.chrome.ChromeDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_chrome_ChromeDriver_maybeGetBiDi(handle receiver) returns handle = @java:Method { - name: "maybeGetBiDi", - 'class: "org.openqa.selenium.chrome.ChromeDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_chrome_ChromeDriver_maybeGetDevTools(handle receiver) returns handle = @java:Method { - name: "maybeGetDevTools", - 'class: "org.openqa.selenium.chrome.ChromeDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_chrome_ChromeDriver_navigate(handle receiver) returns handle = @java:Method { - name: "navigate", - 'class: "org.openqa.selenium.chrome.ChromeDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_chrome_ChromeDriver_network(handle receiver) returns handle = @java:Method { - name: "network", - 'class: "org.openqa.selenium.chrome.ChromeDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_chrome_ChromeDriver_notify(handle receiver) = @java:Method { - name: "notify", - 'class: "org.openqa.selenium.chrome.ChromeDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_chrome_ChromeDriver_notifyAll(handle receiver) = @java:Method { - name: "notifyAll", - 'class: "org.openqa.selenium.chrome.ChromeDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_chrome_ChromeDriver_onLogEvent(handle receiver, handle kind) = @java:Method { - name: "onLogEvent", - 'class: "org.openqa.selenium.chrome.ChromeDriver", - paramTypes: ["org.openqa.selenium.logging.EventType"] -} external; - -isolated function org_openqa_selenium_chrome_ChromeDriver_perform(handle receiver, handle actions) = @java:Method { - name: "perform", - 'class: "org.openqa.selenium.chrome.ChromeDriver", - paramTypes: ["java.util.Collection"] -} external; - -isolated function org_openqa_selenium_chrome_ChromeDriver_pin(handle receiver, handle script) returns handle = @java:Method { - name: "pin", - 'class: "org.openqa.selenium.chrome.ChromeDriver", - paramTypes: ["java.lang.String"] -} external; - -isolated function org_openqa_selenium_chrome_ChromeDriver_print(handle receiver, handle printOptions) returns handle = @java:Method { - name: "print", - 'class: "org.openqa.selenium.chrome.ChromeDriver", - paramTypes: ["org.openqa.selenium.print.PrintOptions"] -} external; - -isolated function org_openqa_selenium_chrome_ChromeDriver_quit(handle receiver) = @java:Method { - name: "quit", - 'class: "org.openqa.selenium.chrome.ChromeDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_chrome_ChromeDriver_register(handle receiver, handle whenThisMatches, handle useTheseCredentials) = @java:Method { - name: "register", - 'class: "org.openqa.selenium.chrome.ChromeDriver", - paramTypes: ["java.util.function.Predicate", "java.util.function.Supplier"] -} external; - -isolated function org_openqa_selenium_chrome_ChromeDriver_register2(handle receiver, handle alwaysUseTheseCredentials) = @java:Method { - name: "register", - 'class: "org.openqa.selenium.chrome.ChromeDriver", - paramTypes: ["java.util.function.Supplier"] -} external; - -isolated function org_openqa_selenium_chrome_ChromeDriver_removeVirtualAuthenticator(handle receiver, handle authenticator) = @java:Method { - name: "removeVirtualAuthenticator", - 'class: "org.openqa.selenium.chrome.ChromeDriver", - paramTypes: ["org.openqa.selenium.virtualauthenticator.VirtualAuthenticator"] -} external; - -isolated function org_openqa_selenium_chrome_ChromeDriver_requireDownloadsEnabled(handle receiver, handle capabilities) = @java:Method { - name: "requireDownloadsEnabled", - 'class: "org.openqa.selenium.chrome.ChromeDriver", - paramTypes: ["org.openqa.selenium.Capabilities"] -} external; - -isolated function org_openqa_selenium_chrome_ChromeDriver_resetCooldown(handle receiver) = @java:Method { - name: "resetCooldown", - 'class: "org.openqa.selenium.chrome.ChromeDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_chrome_ChromeDriver_resetInputState(handle receiver) = @java:Method { - name: "resetInputState", - 'class: "org.openqa.selenium.chrome.ChromeDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_chrome_ChromeDriver_script(handle receiver) returns handle = @java:Method { - name: "script", - 'class: "org.openqa.selenium.chrome.ChromeDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_chrome_ChromeDriver_selectCastSink(handle receiver, handle deviceName) = @java:Method { - name: "selectCastSink", - 'class: "org.openqa.selenium.chrome.ChromeDriver", - paramTypes: ["java.lang.String"] -} external; - -isolated function org_openqa_selenium_chrome_ChromeDriver_setDelayEnabled(handle receiver, boolean enabled) = @java:Method { - name: "setDelayEnabled", - 'class: "org.openqa.selenium.chrome.ChromeDriver", - paramTypes: ["boolean"] -} external; - -isolated function org_openqa_selenium_chrome_ChromeDriver_setErrorHandler(handle receiver, handle handler) = @java:Method { - name: "setErrorHandler", - 'class: "org.openqa.selenium.chrome.ChromeDriver", - paramTypes: ["org.openqa.selenium.remote.ErrorHandler"] -} external; - -isolated function org_openqa_selenium_chrome_ChromeDriver_setFileDetector(handle receiver, handle detector) = @java:Method { - name: "setFileDetector", - 'class: "org.openqa.selenium.chrome.ChromeDriver", - paramTypes: ["org.openqa.selenium.remote.FileDetector"] -} external; - -isolated function org_openqa_selenium_chrome_ChromeDriver_setLocation(handle receiver, handle location) = @java:Method { - name: "setLocation", - 'class: "org.openqa.selenium.chrome.ChromeDriver", - paramTypes: ["org.openqa.selenium.html5.Location"] -} external; - -isolated function org_openqa_selenium_chrome_ChromeDriver_setLogLevel(handle receiver, handle level) = @java:Method { - name: "setLogLevel", - 'class: "org.openqa.selenium.chrome.ChromeDriver", - paramTypes: ["java.util.logging.Level"] -} external; - -isolated function org_openqa_selenium_chrome_ChromeDriver_setNetworkConditions(handle receiver, handle networkConditions) = @java:Method { - name: "setNetworkConditions", - 'class: "org.openqa.selenium.chrome.ChromeDriver", - paramTypes: ["org.openqa.selenium.chromium.ChromiumNetworkConditions"] -} external; - -isolated function org_openqa_selenium_chrome_ChromeDriver_setNetworkConnection(handle receiver, handle 'type) returns handle = @java:Method { - name: "setNetworkConnection", - 'class: "org.openqa.selenium.chrome.ChromeDriver", - paramTypes: ["org.openqa.selenium.mobile.NetworkConnection$ConnectionType"] -} external; - -isolated function org_openqa_selenium_chrome_ChromeDriver_setPermission(handle receiver, handle name, handle value) = @java:Method { - name: "setPermission", - 'class: "org.openqa.selenium.chrome.ChromeDriver", - paramTypes: ["java.lang.String", "java.lang.String"] -} external; - -isolated function org_openqa_selenium_chrome_ChromeDriver_startDesktopMirroring(handle receiver, handle deviceName) = @java:Method { - name: "startDesktopMirroring", - 'class: "org.openqa.selenium.chrome.ChromeDriver", - paramTypes: ["java.lang.String"] -} external; - -isolated function org_openqa_selenium_chrome_ChromeDriver_startTabMirroring(handle receiver, handle deviceName) = @java:Method { - name: "startTabMirroring", - 'class: "org.openqa.selenium.chrome.ChromeDriver", - paramTypes: ["java.lang.String"] -} external; - -isolated function org_openqa_selenium_chrome_ChromeDriver_stopCasting(handle receiver, handle deviceName) = @java:Method { - name: "stopCasting", - 'class: "org.openqa.selenium.chrome.ChromeDriver", - paramTypes: ["java.lang.String"] -} external; - -isolated function org_openqa_selenium_chrome_ChromeDriver_switchTo(handle receiver) returns handle = @java:Method { - name: "switchTo", - 'class: "org.openqa.selenium.chrome.ChromeDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_chrome_ChromeDriver_unpin(handle receiver, handle 'key) = @java:Method { - name: "unpin", - 'class: "org.openqa.selenium.chrome.ChromeDriver", - paramTypes: ["org.openqa.selenium.ScriptKey"] -} external; - -isolated function org_openqa_selenium_chrome_ChromeDriver_wait(handle receiver) returns error? = @java:Method { - name: "wait", - 'class: "org.openqa.selenium.chrome.ChromeDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_chrome_ChromeDriver_wait2(handle receiver, int arg0) returns error? = @java:Method { - name: "wait", - 'class: "org.openqa.selenium.chrome.ChromeDriver", - paramTypes: ["long"] -} external; - -isolated function org_openqa_selenium_chrome_ChromeDriver_wait3(handle receiver, int arg0, int arg1) returns error? = @java:Method { - name: "wait", - 'class: "org.openqa.selenium.chrome.ChromeDriver", - paramTypes: ["long", "int"] -} external; - -isolated function org_openqa_selenium_chrome_ChromeDriver_getIS_CHROMIUM_BROWSER() returns handle = @java:FieldGet { - name: "IS_CHROMIUM_BROWSER", - 'class: "org.openqa.selenium.chrome.ChromeDriver" -} external; - -isolated function org_openqa_selenium_chrome_ChromeDriver_newChromeDriver1() returns handle = @java:Constructor { - 'class: "org.openqa.selenium.chrome.ChromeDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_chrome_ChromeDriver_newChromeDriver2(handle 'service) returns handle = @java:Constructor { - 'class: "org.openqa.selenium.chrome.ChromeDriver", - paramTypes: ["org.openqa.selenium.chrome.ChromeDriverService"] -} external; - -isolated function org_openqa_selenium_chrome_ChromeDriver_newChromeDriver3(handle 'service, handle options) returns handle = @java:Constructor { - 'class: "org.openqa.selenium.chrome.ChromeDriver", - paramTypes: ["org.openqa.selenium.chrome.ChromeDriverService", "org.openqa.selenium.chrome.ChromeOptions"] -} external; - -isolated function org_openqa_selenium_chrome_ChromeDriver_newChromeDriver4(handle 'service, handle options, handle clientConfig) returns handle = @java:Constructor { - 'class: "org.openqa.selenium.chrome.ChromeDriver", - paramTypes: ["org.openqa.selenium.chrome.ChromeDriverService", "org.openqa.selenium.chrome.ChromeOptions", "org.openqa.selenium.remote.http.ClientConfig"] -} external; - -isolated function org_openqa_selenium_chrome_ChromeDriver_newChromeDriver5(handle options) returns handle = @java:Constructor { - 'class: "org.openqa.selenium.chrome.ChromeDriver", - paramTypes: ["org.openqa.selenium.chrome.ChromeOptions"] -} external; - diff --git a/ballerina/modules/chrome/ChromeDriverService.bal b/ballerina/modules/chrome/ChromeDriverService.bal deleted file mode 100644 index 6fb908a..0000000 --- a/ballerina/modules/chrome/ChromeDriverService.bal +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). -// -// WSO2 LLC. licenses this file to you under the Apache License, -// Version 2.0 (the "License"); you may not use this file except -// in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -import ballerina/jballerina.java; - -# Ballerina class mapping for the Java `org.openqa.selenium.chrome.ChromeDriverService` class. -@java:Binding {'class: "org.openqa.selenium.chrome.ChromeDriverService"} -public distinct class ChromeDriverService { - - *java:JObject; - - # The `handle` field that stores the reference to the `org.openqa.selenium.chrome.ChromeDriverService` object. - public handle jObj; - - # The init function of the Ballerina class mapping the `org.openqa.selenium.chrome.ChromeDriverService` Java class. - # - # + obj - The `handle` value containing the Java reference of the object. - public isolated function init(handle obj) { - self.jObj = obj; - } - - # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.chrome.ChromeDriverService` Java class. - # - # + return - The `string` form of the Java object instance. - public isolated function toString() returns string { - return java:toString(self.jObj) ?: ""; - } - -} - diff --git a/ballerina/modules/chrome/ChromeOptions.bal b/ballerina/modules/chrome/ChromeOptions.bal deleted file mode 100644 index fa2814f..0000000 --- a/ballerina/modules/chrome/ChromeOptions.bal +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). -// -// WSO2 LLC. licenses this file to you under the Apache License, -// Version 2.0 (the "License"); you may not use this file except -// in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -import ballerina/jballerina.java; - -# Ballerina class mapping for the Java `org.openqa.selenium.chrome.ChromeOptions` class. -@java:Binding {'class: "org.openqa.selenium.chrome.ChromeOptions"} -public distinct class ChromeOptions { - - *java:JObject; - - # The `handle` field that stores the reference to the `org.openqa.selenium.chrome.ChromeOptions` object. - public handle jObj; - - # The init function of the Ballerina class mapping the `org.openqa.selenium.chrome.ChromeOptions` Java class. - # - # + obj - The `handle` value containing the Java reference of the object. - public isolated function init(handle obj) { - self.jObj = obj; - } - - # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.chrome.ChromeOptions` Java class. - # - # + return - The `string` form of the Java object instance. - public isolated function toString() returns string { - return java:toString(self.jObj) ?: ""; - } - -} - diff --git a/ballerina/modules/edge/EdgeDriver.bal b/ballerina/modules/edge/EdgeDriver.bal deleted file mode 100644 index 9818dc2..0000000 --- a/ballerina/modules/edge/EdgeDriver.bal +++ /dev/null @@ -1,1274 +0,0 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). -// -// WSO2 LLC. licenses this file to you under the Apache License, -// Version 2.0 (the "License"); you may not use this file except -// in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -import selenium.java.io as javaio; -import selenium.java.lang as javalang; -import selenium.java.nio.file as javaniofile; -import selenium.java.util as javautil; -import selenium.java.util.'function as javautilfunction; -import selenium.java.util.logging as javautillogging; -import selenium.web as orgopenqaselenium; -import selenium.org.openqa.selenium.'remote as orgopenqaseleniumremote; -import selenium.org.openqa.selenium.'remote.http as orgopenqaseleniumremotehttp; -import selenium.org.openqa.selenium.bidi as orgopenqaseleniumbidi; -import selenium.org.openqa.selenium.chromium as orgopenqaseleniumchromium; -import selenium.org.openqa.selenium.devtools as orgopenqaseleniumdevtools; -import selenium.org.openqa.selenium.federatedcredentialmanagement as orgopenqaseleniumfederatedcredentialmanagement; -import selenium.org.openqa.selenium.html5 as orgopenqaseleniumhtml5; -import selenium.org.openqa.selenium.logging as orgopenqaseleniumlogging; -import selenium.org.openqa.selenium.mobile as orgopenqaseleniummobile; -import selenium.org.openqa.selenium.print as orgopenqaseleniumprint; -import selenium.org.openqa.selenium.virtualauthenticator as orgopenqaseleniumvirtualauthenticator; - -import ballerina/jballerina.java; -import ballerina/jballerina.java.arrays as jarrays; - -# Ballerina class mapping for the Java `org.openqa.selenium.edge.EdgeDriver` class. -@java:Binding {'class: "org.openqa.selenium.edge.EdgeDriver"} -public distinct class EdgeDriver { - - *java:JObject; - *orgopenqaseleniumchromium:ChromiumDriver; - - # The `handle` field that stores the reference to the `org.openqa.selenium.edge.EdgeDriver` object. - public handle jObj; - - # The init function of the Ballerina class mapping the `org.openqa.selenium.edge.EdgeDriver` Java class. - # - # + obj - The `handle` value containing the Java reference of the object. - public isolated function init(handle obj) { - self.jObj = obj; - } - - # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.edge.EdgeDriver` Java class. - # - # + return - The `string` form of the Java object instance. - public isolated function toString() returns string { - return java:toString(self.jObj) ?: ""; - } - - # The function that maps to the `addVirtualAuthenticator` method of `org.openqa.selenium.edge.EdgeDriver`. - # - # + options - The `orgopenqaseleniumvirtualauthenticator:VirtualAuthenticatorOptions` value required to map with the Java method parameter. - # + return - The `orgopenqaseleniumvirtualauthenticator:VirtualAuthenticator` value returning from the Java mapping. - public isolated function addVirtualAuthenticator(orgopenqaseleniumvirtualauthenticator:VirtualAuthenticatorOptions options) returns orgopenqaseleniumvirtualauthenticator:VirtualAuthenticator { - handle externalObj = org_openqa_selenium_edge_EdgeDriver_addVirtualAuthenticator(self.jObj, options.jObj); - orgopenqaseleniumvirtualauthenticator:VirtualAuthenticator newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `close` method of `org.openqa.selenium.edge.EdgeDriver`. - public isolated function close() { - org_openqa_selenium_edge_EdgeDriver_close(self.jObj); - } - - # The function that maps to the `deleteDownloadableFiles` method of `org.openqa.selenium.edge.EdgeDriver`. - public isolated function deleteDownloadableFiles() { - org_openqa_selenium_edge_EdgeDriver_deleteDownloadableFiles(self.jObj); - } - - # The function that maps to the `deleteNetworkConditions` method of `org.openqa.selenium.edge.EdgeDriver`. - public isolated function deleteNetworkConditions() { - org_openqa_selenium_edge_EdgeDriver_deleteNetworkConditions(self.jObj); - } - - # The function that maps to the `downloadFile` method of `org.openqa.selenium.edge.EdgeDriver`. - # - # + fileName - The `string` value required to map with the Java method parameter. - # + targetLocation - The `javaniofile:Path` value required to map with the Java method parameter. - # + return - The `javaio:IOException` value returning from the Java mapping. - public isolated function downloadFile(string fileName, javaniofile:Path targetLocation) returns javaio:IOException? { - error|() externalObj = org_openqa_selenium_edge_EdgeDriver_downloadFile(self.jObj, java:fromString(fileName), targetLocation.jObj); - if (externalObj is error) { - javaio:IOException e = error javaio:IOException(javaio:IOEXCEPTION, externalObj, message = externalObj.message()); - return e; - } - } - - # The function that maps to the `equals` method of `org.openqa.selenium.edge.EdgeDriver`. - # - # + arg0 - The `javalang:Object` value required to map with the Java method parameter. - # + return - The `boolean` value returning from the Java mapping. - public isolated function 'equals(javalang:Object arg0) returns boolean { - return org_openqa_selenium_edge_EdgeDriver_equals(self.jObj, arg0.jObj); - } - - # The function that maps to the `executeAsyncScript` method of `org.openqa.selenium.edge.EdgeDriver`. - # - # + script - The `string` value required to map with the Java method parameter. - # + args - The `javalang:Object[]` value required to map with the Java method parameter. - # + return - The `javalang:Object` value returning from the Java mapping. - public isolated function executeAsyncScript(string script, javalang:Object[] args) returns javalang:Object|error { - handle externalObj = org_openqa_selenium_edge_EdgeDriver_executeAsyncScript(self.jObj, java:fromString(script), check jarrays:toHandle(args, "java.lang.Object")); - javalang:Object newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `executeCdpCommand` method of `org.openqa.selenium.edge.EdgeDriver`. - # - # + commandName - The `string` value required to map with the Java method parameter. - # + parameters - The `javautil:Map` value required to map with the Java method parameter. - # + return - The `javautil:Map` value returning from the Java mapping. - public isolated function executeCdpCommand(string commandName, javautil:Map parameters) returns javautil:Map { - handle externalObj = org_openqa_selenium_edge_EdgeDriver_executeCdpCommand(self.jObj, java:fromString(commandName), parameters.jObj); - javautil:Map newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `executeScript` method of `org.openqa.selenium.edge.EdgeDriver`. - # - # + 'key - The `orgopenqaselenium:ScriptKey` value required to map with the Java method parameter. - # + args - The `javalang:Object[]` value required to map with the Java method parameter. - # + return - The `javalang:Object` value returning from the Java mapping. - public isolated function executeScript(orgopenqaselenium:ScriptKey 'key, javalang:Object[] args) returns javalang:Object|error { - handle externalObj = org_openqa_selenium_edge_EdgeDriver_executeScript(self.jObj, 'key.jObj, check jarrays:toHandle(args, "java.lang.Object")); - javalang:Object newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `executeScript` method of `org.openqa.selenium.edge.EdgeDriver`. - # - # + script - The `string` value required to map with the Java method parameter. - # + args - The `javalang:Object[]` value required to map with the Java method parameter. - # + return - The `javalang:Object` value returning from the Java mapping. - public isolated function executeScript2(string script, javalang:Object[] args) returns javalang:Object|error { - handle externalObj = org_openqa_selenium_edge_EdgeDriver_executeScript2(self.jObj, java:fromString(script), check jarrays:toHandle(args, "java.lang.Object")); - javalang:Object newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `findElement` method of `org.openqa.selenium.edge.EdgeDriver`. - # - # + locator - The `orgopenqaselenium:By` value required to map with the Java method parameter. - # + return - The `orgopenqaselenium:WebElement` value returning from the Java mapping. - public isolated function findElement(orgopenqaselenium:By locator) returns orgopenqaselenium:WebElement { - handle externalObj = org_openqa_selenium_edge_EdgeDriver_findElement(self.jObj, locator.jObj); - orgopenqaselenium:WebElement newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `findElements` method of `org.openqa.selenium.edge.EdgeDriver`. - # - # + locator - The `orgopenqaselenium:By` value required to map with the Java method parameter. - # + return - The `javautil:List` value returning from the Java mapping. - public isolated function findElements(orgopenqaselenium:By locator) returns javautil:List { - handle externalObj = org_openqa_selenium_edge_EdgeDriver_findElements(self.jObj, locator.jObj); - javautil:List newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `findElements` method of `org.openqa.selenium.chrome.ChromeDriver`. - # - # + locator - The `orgopenqaselenium:By` value required to map with the Java method parameter. - # + return - The `orgopenqaselenium:WebElement[]` value returning from the Java mapping. - public isolated function findAllElements(orgopenqaselenium:By locator) returns orgopenqaselenium:WebElement[]|error { - handle externalObj = org_openqa_selenium_edge_EdgeDriver_findElements(self.jObj, locator.jObj); - javautil:List newObj = new (externalObj); - orgopenqaselenium:WebElement[] elements = []; - javalang:Object[] arr = check newObj.toArray(); - foreach var item in arr { - elements.push(check java:cast(item, orgopenqaselenium:WebElement)); - } - return elements; - } - - - # The function that maps to the `findElements` method of `org.openqa.selenium.edge.EdgeDriver`. - # - # + context - The `orgopenqaselenium:SearchContext` value required to map with the Java method parameter. - # + findCommand - The `javautilfunction:BiFunction` value required to map with the Java method parameter. - # + locator - The `orgopenqaselenium:By` value required to map with the Java method parameter. - # + return - The `javautil:List` value returning from the Java mapping. - public isolated function findElements2(orgopenqaselenium:SearchContext context, javautilfunction:BiFunction findCommand, orgopenqaselenium:By locator) returns javautil:List { - handle externalObj = org_openqa_selenium_edge_EdgeDriver_findElements2(self.jObj, context.jObj, findCommand.jObj, locator.jObj); - javautil:List newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `get` method of `org.openqa.selenium.edge.EdgeDriver`. - # - # + url - The `string` value required to map with the Java method parameter. - public isolated function get(string url) { - org_openqa_selenium_edge_EdgeDriver_get(self.jObj, java:fromString(url)); - } - - # The function that maps to the `getBiDi` method of `org.openqa.selenium.edge.EdgeDriver`. - # - # + return - The `orgopenqaseleniumbidi:BiDi` value returning from the Java mapping. - public isolated function getBiDi() returns orgopenqaseleniumbidi:BiDi { - handle externalObj = org_openqa_selenium_edge_EdgeDriver_getBiDi(self.jObj); - orgopenqaseleniumbidi:BiDi newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getCapabilities` method of `org.openqa.selenium.edge.EdgeDriver`. - # - # + return - The `orgopenqaselenium:Capabilities` value returning from the Java mapping. - public isolated function getCapabilities() returns orgopenqaselenium:Capabilities { - handle externalObj = org_openqa_selenium_edge_EdgeDriver_getCapabilities(self.jObj); - orgopenqaselenium:Capabilities newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getCastIssueMessage` method of `org.openqa.selenium.edge.EdgeDriver`. - # - # + return - The `string` value returning from the Java mapping. - public isolated function getCastIssueMessage() returns string { - return java:toString(org_openqa_selenium_edge_EdgeDriver_getCastIssueMessage(self.jObj)) ?: ""; - } - - # The function that maps to the `getCastSinks` method of `org.openqa.selenium.edge.EdgeDriver`. - # - # + return - The `javautil:List` value returning from the Java mapping. - public isolated function getCastSinks() returns javautil:List { - handle externalObj = org_openqa_selenium_edge_EdgeDriver_getCastSinks(self.jObj); - javautil:List newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getClass` method of `org.openqa.selenium.edge.EdgeDriver`. - # - # + return - The `javalang:Class` value returning from the Java mapping. - public isolated function getClass() returns javalang:Class { - handle externalObj = org_openqa_selenium_edge_EdgeDriver_getClass(self.jObj); - javalang:Class newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getCommandExecutor` method of `org.openqa.selenium.edge.EdgeDriver`. - # - # + return - The `orgopenqaseleniumremote:CommandExecutor` value returning from the Java mapping. - public isolated function getCommandExecutor() returns orgopenqaseleniumremote:CommandExecutor { - handle externalObj = org_openqa_selenium_edge_EdgeDriver_getCommandExecutor(self.jObj); - orgopenqaseleniumremote:CommandExecutor newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getCurrentUrl` method of `org.openqa.selenium.edge.EdgeDriver`. - # - # + return - The `string` value returning from the Java mapping. - public isolated function getCurrentUrl() returns string { - return java:toString(org_openqa_selenium_edge_EdgeDriver_getCurrentUrl(self.jObj)) ?: ""; - } - - # The function that maps to the `getDevTools` method of `org.openqa.selenium.edge.EdgeDriver`. - # - # + return - The `orgopenqaseleniumdevtools:DevTools` value returning from the Java mapping. - public isolated function getDevTools() returns orgopenqaseleniumdevtools:DevTools { - handle externalObj = org_openqa_selenium_edge_EdgeDriver_getDevTools(self.jObj); - orgopenqaseleniumdevtools:DevTools newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getDownloadableFiles` method of `org.openqa.selenium.edge.EdgeDriver`. - # - # + return - The `javautil:List` value returning from the Java mapping. - public isolated function getDownloadableFiles() returns javautil:List { - handle externalObj = org_openqa_selenium_edge_EdgeDriver_getDownloadableFiles(self.jObj); - javautil:List newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getErrorHandler` method of `org.openqa.selenium.edge.EdgeDriver`. - # - # + return - The `orgopenqaseleniumremote:ErrorHandler` value returning from the Java mapping. - public isolated function getErrorHandler() returns orgopenqaseleniumremote:ErrorHandler { - handle externalObj = org_openqa_selenium_edge_EdgeDriver_getErrorHandler(self.jObj); - orgopenqaseleniumremote:ErrorHandler newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getFederatedCredentialManagementDialog` method of `org.openqa.selenium.edge.EdgeDriver`. - # - # + return - The `orgopenqaseleniumfederatedcredentialmanagement:FederatedCredentialManagementDialog` value returning from the Java mapping. - public isolated function getFederatedCredentialManagementDialog() returns orgopenqaseleniumfederatedcredentialmanagement:FederatedCredentialManagementDialog { - handle externalObj = org_openqa_selenium_edge_EdgeDriver_getFederatedCredentialManagementDialog(self.jObj); - orgopenqaseleniumfederatedcredentialmanagement:FederatedCredentialManagementDialog newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getFileDetector` method of `org.openqa.selenium.edge.EdgeDriver`. - # - # + return - The `orgopenqaseleniumremote:FileDetector` value returning from the Java mapping. - public isolated function getFileDetector() returns orgopenqaseleniumremote:FileDetector { - handle externalObj = org_openqa_selenium_edge_EdgeDriver_getFileDetector(self.jObj); - orgopenqaseleniumremote:FileDetector newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getLocalStorage` method of `org.openqa.selenium.edge.EdgeDriver`. - # - # + return - The `orgopenqaseleniumhtml5:LocalStorage` value returning from the Java mapping. - public isolated function getLocalStorage() returns orgopenqaseleniumhtml5:LocalStorage { - handle externalObj = org_openqa_selenium_edge_EdgeDriver_getLocalStorage(self.jObj); - orgopenqaseleniumhtml5:LocalStorage newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getNetworkConditions` method of `org.openqa.selenium.edge.EdgeDriver`. - # - # + return - The `orgopenqaseleniumchromium:ChromiumNetworkConditions` value returning from the Java mapping. - public isolated function getNetworkConditions() returns orgopenqaseleniumchromium:ChromiumNetworkConditions { - handle externalObj = org_openqa_selenium_edge_EdgeDriver_getNetworkConditions(self.jObj); - orgopenqaseleniumchromium:ChromiumNetworkConditions newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getNetworkConnection` method of `org.openqa.selenium.edge.EdgeDriver`. - # - # + return - The `orgopenqaseleniummobile:ConnectionType` value returning from the Java mapping. - public isolated function getNetworkConnection() returns orgopenqaseleniummobile:ConnectionType { - handle externalObj = org_openqa_selenium_edge_EdgeDriver_getNetworkConnection(self.jObj); - orgopenqaseleniummobile:ConnectionType newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getPageSource` method of `org.openqa.selenium.edge.EdgeDriver`. - # - # + return - The `string` value returning from the Java mapping. - public isolated function getPageSource() returns string { - return java:toString(org_openqa_selenium_edge_EdgeDriver_getPageSource(self.jObj)) ?: ""; - } - - # The function that maps to the `getPinnedScripts` method of `org.openqa.selenium.edge.EdgeDriver`. - # - # + return - The `javautil:Set` value returning from the Java mapping. - public isolated function getPinnedScripts() returns javautil:Set { - handle externalObj = org_openqa_selenium_edge_EdgeDriver_getPinnedScripts(self.jObj); - javautil:Set newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getScreenshotAs` method of `org.openqa.selenium.edge.EdgeDriver`. - # - # + outputType - The `orgopenqaselenium:OutputType` value required to map with the Java method parameter. - # + return - The `javalang:Object` value returning from the Java mapping. - public isolated function getScreenshotAs(orgopenqaselenium:OutputType outputType) returns javalang:Object { - handle externalObj = org_openqa_selenium_edge_EdgeDriver_getScreenshotAs(self.jObj, outputType.jObj); - javalang:Object newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getSessionId` method of `org.openqa.selenium.edge.EdgeDriver`. - # - # + return - The `orgopenqaseleniumremote:SessionId` value returning from the Java mapping. - public isolated function getSessionId() returns orgopenqaseleniumremote:SessionId { - handle externalObj = org_openqa_selenium_edge_EdgeDriver_getSessionId(self.jObj); - orgopenqaseleniumremote:SessionId newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getSessionStorage` method of `org.openqa.selenium.edge.EdgeDriver`. - # - # + return - The `orgopenqaseleniumhtml5:SessionStorage` value returning from the Java mapping. - public isolated function getSessionStorage() returns orgopenqaseleniumhtml5:SessionStorage { - handle externalObj = org_openqa_selenium_edge_EdgeDriver_getSessionStorage(self.jObj); - orgopenqaseleniumhtml5:SessionStorage newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getTitle` method of `org.openqa.selenium.edge.EdgeDriver`. - # - # + return - The `string` value returning from the Java mapping. - public isolated function getTitle() returns string { - return java:toString(org_openqa_selenium_edge_EdgeDriver_getTitle(self.jObj)) ?: ""; - } - - # The function that maps to the `getWindowHandle` method of `org.openqa.selenium.edge.EdgeDriver`. - # - # + return - The `string` value returning from the Java mapping. - public isolated function getWindowHandle() returns string { - return java:toString(org_openqa_selenium_edge_EdgeDriver_getWindowHandle(self.jObj)) ?: ""; - } - - # The function that maps to the `getWindowHandles` method of `org.openqa.selenium.edge.EdgeDriver`. - # - # + return - The `javautil:Set` value returning from the Java mapping. - public isolated function getWindowHandles() returns javautil:Set { - handle externalObj = org_openqa_selenium_edge_EdgeDriver_getWindowHandles(self.jObj); - javautil:Set newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `hashCode` method of `org.openqa.selenium.edge.EdgeDriver`. - # - # + return - The `int` value returning from the Java mapping. - public isolated function hashCode() returns int { - return org_openqa_selenium_edge_EdgeDriver_hashCode(self.jObj); - } - - # The function that maps to the `launchApp` method of `org.openqa.selenium.edge.EdgeDriver`. - # - # + id - The `string` value required to map with the Java method parameter. - public isolated function launchApp(string id) { - org_openqa_selenium_edge_EdgeDriver_launchApp(self.jObj, java:fromString(id)); - } - - # The function that maps to the `location` method of `org.openqa.selenium.edge.EdgeDriver`. - # - # + return - The `orgopenqaseleniumhtml5:Location` value returning from the Java mapping. - public isolated function location() returns orgopenqaseleniumhtml5:Location { - handle externalObj = org_openqa_selenium_edge_EdgeDriver_location(self.jObj); - orgopenqaseleniumhtml5:Location newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `manage` method of `org.openqa.selenium.edge.EdgeDriver`. - # - # + return - The `orgopenqaselenium:Options` value returning from the Java mapping. - public isolated function manage() returns orgopenqaselenium:Options { - handle externalObj = org_openqa_selenium_edge_EdgeDriver_manage(self.jObj); - orgopenqaselenium:Options newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `maybeGetBiDi` method of `org.openqa.selenium.edge.EdgeDriver`. - # - # + return - The `javautil:Optional` value returning from the Java mapping. - public isolated function maybeGetBiDi() returns javautil:Optional { - handle externalObj = org_openqa_selenium_edge_EdgeDriver_maybeGetBiDi(self.jObj); - javautil:Optional newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `maybeGetDevTools` method of `org.openqa.selenium.edge.EdgeDriver`. - # - # + return - The `javautil:Optional` value returning from the Java mapping. - public isolated function maybeGetDevTools() returns javautil:Optional { - handle externalObj = org_openqa_selenium_edge_EdgeDriver_maybeGetDevTools(self.jObj); - javautil:Optional newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `navigate` method of `org.openqa.selenium.edge.EdgeDriver`. - # - # + return - The `orgopenqaselenium:Navigation` value returning from the Java mapping. - public isolated function navigate() returns orgopenqaselenium:Navigation { - handle externalObj = org_openqa_selenium_edge_EdgeDriver_navigate(self.jObj); - orgopenqaselenium:Navigation newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `network` method of `org.openqa.selenium.edge.EdgeDriver`. - # - # + return - The `orgopenqaseleniumremote:Network` value returning from the Java mapping. - public isolated function network() returns orgopenqaseleniumremote:Network { - handle externalObj = org_openqa_selenium_edge_EdgeDriver_network(self.jObj); - orgopenqaseleniumremote:Network newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `notify` method of `org.openqa.selenium.edge.EdgeDriver`. - public isolated function notify() { - org_openqa_selenium_edge_EdgeDriver_notify(self.jObj); - } - - # The function that maps to the `notifyAll` method of `org.openqa.selenium.edge.EdgeDriver`. - public isolated function notifyAll() { - org_openqa_selenium_edge_EdgeDriver_notifyAll(self.jObj); - } - - # The function that maps to the `onLogEvent` method of `org.openqa.selenium.edge.EdgeDriver`. - # - # + kind - The `orgopenqaseleniumlogging:EventType` value required to map with the Java method parameter. - public isolated function onLogEvent(orgopenqaseleniumlogging:EventType kind) { - org_openqa_selenium_edge_EdgeDriver_onLogEvent(self.jObj, kind.jObj); - } - - # The function that maps to the `perform` method of `org.openqa.selenium.edge.EdgeDriver`. - # - # + actions - The `javautil:Collection` value required to map with the Java method parameter. - public isolated function perform(javautil:Collection actions) { - org_openqa_selenium_edge_EdgeDriver_perform(self.jObj, actions.jObj); - } - - # The function that maps to the `pin` method of `org.openqa.selenium.edge.EdgeDriver`. - # - # + script - The `string` value required to map with the Java method parameter. - # + return - The `orgopenqaselenium:ScriptKey` value returning from the Java mapping. - public isolated function pin(string script) returns orgopenqaselenium:ScriptKey { - handle externalObj = org_openqa_selenium_edge_EdgeDriver_pin(self.jObj, java:fromString(script)); - orgopenqaselenium:ScriptKey newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `print` method of `org.openqa.selenium.edge.EdgeDriver`. - # - # + printOptions - The `orgopenqaseleniumprint:PrintOptions` value required to map with the Java method parameter. - # + return - The `orgopenqaselenium:Pdf` value returning from the Java mapping. - public isolated function print(orgopenqaseleniumprint:PrintOptions printOptions) returns orgopenqaselenium:Pdf { - handle externalObj = org_openqa_selenium_edge_EdgeDriver_print(self.jObj, printOptions.jObj); - orgopenqaselenium:Pdf newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `quit` method of `org.openqa.selenium.edge.EdgeDriver`. - public isolated function quit() { - org_openqa_selenium_edge_EdgeDriver_quit(self.jObj); - } - - # The function that maps to the `register` method of `org.openqa.selenium.edge.EdgeDriver`. - # - # + whenThisMatches - The `javautilfunction:Predicate` value required to map with the Java method parameter. - # + useTheseCredentials - The `javautilfunction:Supplier` value required to map with the Java method parameter. - public isolated function register(javautilfunction:Predicate whenThisMatches, javautilfunction:Supplier useTheseCredentials) { - org_openqa_selenium_edge_EdgeDriver_register(self.jObj, whenThisMatches.jObj, useTheseCredentials.jObj); - } - - # The function that maps to the `register` method of `org.openqa.selenium.edge.EdgeDriver`. - # - # + alwaysUseTheseCredentials - The `javautilfunction:Supplier` value required to map with the Java method parameter. - public isolated function register2(javautilfunction:Supplier alwaysUseTheseCredentials) { - org_openqa_selenium_edge_EdgeDriver_register2(self.jObj, alwaysUseTheseCredentials.jObj); - } - - # The function that maps to the `removeVirtualAuthenticator` method of `org.openqa.selenium.edge.EdgeDriver`. - # - # + authenticator - The `orgopenqaseleniumvirtualauthenticator:VirtualAuthenticator` value required to map with the Java method parameter. - public isolated function removeVirtualAuthenticator(orgopenqaseleniumvirtualauthenticator:VirtualAuthenticator authenticator) { - org_openqa_selenium_edge_EdgeDriver_removeVirtualAuthenticator(self.jObj, authenticator.jObj); - } - - # The function that maps to the `requireDownloadsEnabled` method of `org.openqa.selenium.edge.EdgeDriver`. - # - # + capabilities - The `orgopenqaselenium:Capabilities` value required to map with the Java method parameter. - public isolated function requireDownloadsEnabled(orgopenqaselenium:Capabilities capabilities) { - org_openqa_selenium_edge_EdgeDriver_requireDownloadsEnabled(self.jObj, capabilities.jObj); - } - - # The function that maps to the `resetCooldown` method of `org.openqa.selenium.edge.EdgeDriver`. - public isolated function resetCooldown() { - org_openqa_selenium_edge_EdgeDriver_resetCooldown(self.jObj); - } - - # The function that maps to the `resetInputState` method of `org.openqa.selenium.edge.EdgeDriver`. - public isolated function resetInputState() { - org_openqa_selenium_edge_EdgeDriver_resetInputState(self.jObj); - } - - # The function that maps to the `script` method of `org.openqa.selenium.edge.EdgeDriver`. - # - # + return - The `orgopenqaseleniumremote:Script` value returning from the Java mapping. - public isolated function script() returns orgopenqaseleniumremote:Script { - handle externalObj = org_openqa_selenium_edge_EdgeDriver_script(self.jObj); - orgopenqaseleniumremote:Script newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `selectCastSink` method of `org.openqa.selenium.edge.EdgeDriver`. - # - # + deviceName - The `string` value required to map with the Java method parameter. - public isolated function selectCastSink(string deviceName) { - org_openqa_selenium_edge_EdgeDriver_selectCastSink(self.jObj, java:fromString(deviceName)); - } - - # The function that maps to the `setDelayEnabled` method of `org.openqa.selenium.edge.EdgeDriver`. - # - # + enabled - The `boolean` value required to map with the Java method parameter. - public isolated function setDelayEnabled(boolean enabled) { - org_openqa_selenium_edge_EdgeDriver_setDelayEnabled(self.jObj, enabled); - } - - # The function that maps to the `setErrorHandler` method of `org.openqa.selenium.edge.EdgeDriver`. - # - # + handler - The `orgopenqaseleniumremote:ErrorHandler` value required to map with the Java method parameter. - public isolated function setErrorHandler(orgopenqaseleniumremote:ErrorHandler handler) { - org_openqa_selenium_edge_EdgeDriver_setErrorHandler(self.jObj, handler.jObj); - } - - # The function that maps to the `setFileDetector` method of `org.openqa.selenium.edge.EdgeDriver`. - # - # + detector - The `orgopenqaseleniumremote:FileDetector` value required to map with the Java method parameter. - public isolated function setFileDetector(orgopenqaseleniumremote:FileDetector detector) { - org_openqa_selenium_edge_EdgeDriver_setFileDetector(self.jObj, detector.jObj); - } - - # The function that maps to the `setLocation` method of `org.openqa.selenium.edge.EdgeDriver`. - # - # + location - The `orgopenqaseleniumhtml5:Location` value required to map with the Java method parameter. - public isolated function setLocation(orgopenqaseleniumhtml5:Location location) { - org_openqa_selenium_edge_EdgeDriver_setLocation(self.jObj, location.jObj); - } - - # The function that maps to the `setLogLevel` method of `org.openqa.selenium.edge.EdgeDriver`. - # - # + level - The `javautillogging:Level` value required to map with the Java method parameter. - public isolated function setLogLevel(javautillogging:Level level) { - org_openqa_selenium_edge_EdgeDriver_setLogLevel(self.jObj, level.jObj); - } - - # The function that maps to the `setNetworkConditions` method of `org.openqa.selenium.edge.EdgeDriver`. - # - # + networkConditions - The `orgopenqaseleniumchromium:ChromiumNetworkConditions` value required to map with the Java method parameter. - public isolated function setNetworkConditions(orgopenqaseleniumchromium:ChromiumNetworkConditions networkConditions) { - org_openqa_selenium_edge_EdgeDriver_setNetworkConditions(self.jObj, networkConditions.jObj); - } - - # The function that maps to the `setNetworkConnection` method of `org.openqa.selenium.edge.EdgeDriver`. - # - # + 'type - The `orgopenqaseleniummobile:ConnectionType` value required to map with the Java method parameter. - # + return - The `orgopenqaseleniummobile:ConnectionType` value returning from the Java mapping. - public isolated function setNetworkConnection(orgopenqaseleniummobile:ConnectionType 'type) returns orgopenqaseleniummobile:ConnectionType { - handle externalObj = org_openqa_selenium_edge_EdgeDriver_setNetworkConnection(self.jObj, 'type.jObj); - orgopenqaseleniummobile:ConnectionType newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `setPermission` method of `org.openqa.selenium.edge.EdgeDriver`. - # - # + name - The `string` value required to map with the Java method parameter. - # + value - The `string` value required to map with the Java method parameter. - public isolated function setPermission(string name, string value) { - org_openqa_selenium_edge_EdgeDriver_setPermission(self.jObj, java:fromString(name), java:fromString(value)); - } - - # The function that maps to the `startDesktopMirroring` method of `org.openqa.selenium.edge.EdgeDriver`. - # - # + deviceName - The `string` value required to map with the Java method parameter. - public isolated function startDesktopMirroring(string deviceName) { - org_openqa_selenium_edge_EdgeDriver_startDesktopMirroring(self.jObj, java:fromString(deviceName)); - } - - # The function that maps to the `startTabMirroring` method of `org.openqa.selenium.edge.EdgeDriver`. - # - # + deviceName - The `string` value required to map with the Java method parameter. - public isolated function startTabMirroring(string deviceName) { - org_openqa_selenium_edge_EdgeDriver_startTabMirroring(self.jObj, java:fromString(deviceName)); - } - - # The function that maps to the `stopCasting` method of `org.openqa.selenium.edge.EdgeDriver`. - # - # + deviceName - The `string` value required to map with the Java method parameter. - public isolated function stopCasting(string deviceName) { - org_openqa_selenium_edge_EdgeDriver_stopCasting(self.jObj, java:fromString(deviceName)); - } - - # The function that maps to the `switchTo` method of `org.openqa.selenium.edge.EdgeDriver`. - # - # + return - The `orgopenqaselenium:TargetLocator` value returning from the Java mapping. - public isolated function switchTo() returns orgopenqaselenium:TargetLocator { - handle externalObj = org_openqa_selenium_edge_EdgeDriver_switchTo(self.jObj); - orgopenqaselenium:TargetLocator newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `unpin` method of `org.openqa.selenium.edge.EdgeDriver`. - # - # + 'key - The `orgopenqaselenium:ScriptKey` value required to map with the Java method parameter. - public isolated function unpin(orgopenqaselenium:ScriptKey 'key) { - org_openqa_selenium_edge_EdgeDriver_unpin(self.jObj, 'key.jObj); - } - - # The function that maps to the `wait` method of `org.openqa.selenium.edge.EdgeDriver`. - # - # + return - The `javalang:InterruptedException` value returning from the Java mapping. - public isolated function 'wait() returns javalang:InterruptedException? { - error|() externalObj = org_openqa_selenium_edge_EdgeDriver_wait(self.jObj); - if (externalObj is error) { - javalang:InterruptedException e = error javalang:InterruptedException(javalang:INTERRUPTEDEXCEPTION, externalObj, message = externalObj.message()); - return e; - } - } - - # The function that maps to the `wait` method of `org.openqa.selenium.edge.EdgeDriver`. - # - # + arg0 - The `int` value required to map with the Java method parameter. - # + return - The `javalang:InterruptedException` value returning from the Java mapping. - public isolated function wait2(int arg0) returns javalang:InterruptedException? { - error|() externalObj = org_openqa_selenium_edge_EdgeDriver_wait2(self.jObj, arg0); - if (externalObj is error) { - javalang:InterruptedException e = error javalang:InterruptedException(javalang:INTERRUPTEDEXCEPTION, externalObj, message = externalObj.message()); - return e; - } - } - - # The function that maps to the `wait` method of `org.openqa.selenium.edge.EdgeDriver`. - # - # + arg0 - The `int` value required to map with the Java method parameter. - # + arg1 - The `int` value required to map with the Java method parameter. - # + return - The `javalang:InterruptedException` value returning from the Java mapping. - public isolated function wait3(int arg0, int arg1) returns javalang:InterruptedException? { - error|() externalObj = org_openqa_selenium_edge_EdgeDriver_wait3(self.jObj, arg0, arg1); - if (externalObj is error) { - javalang:InterruptedException e = error javalang:InterruptedException(javalang:INTERRUPTEDEXCEPTION, externalObj, message = externalObj.message()); - return e; - } - } - -} - -# The constructor function to generate an object of `org.openqa.selenium.edge.EdgeDriver`. -# -# + return - The new `EdgeDriver` class generated. -public isolated function newEdgeDriver1() returns EdgeDriver { - handle externalObj = org_openqa_selenium_edge_EdgeDriver_newEdgeDriver1(); - EdgeDriver newObj = new (externalObj); - return newObj; -} - -# The constructor function to generate an object of `org.openqa.selenium.edge.EdgeDriver`. -# -# + 'service - The `EdgeDriverService` value required to map with the Java constructor parameter. -# + return - The new `EdgeDriver` class generated. -public isolated function newEdgeDriver2(EdgeDriverService 'service) returns EdgeDriver { - handle externalObj = org_openqa_selenium_edge_EdgeDriver_newEdgeDriver2('service.jObj); - EdgeDriver newObj = new (externalObj); - return newObj; -} - -# The constructor function to generate an object of `org.openqa.selenium.edge.EdgeDriver`. -# -# + 'service - The `EdgeDriverService` value required to map with the Java constructor parameter. -# + options - The `EdgeOptions` value required to map with the Java constructor parameter. -# + return - The new `EdgeDriver` class generated. -public isolated function newEdgeDriver3(EdgeDriverService 'service, EdgeOptions options) returns EdgeDriver { - handle externalObj = org_openqa_selenium_edge_EdgeDriver_newEdgeDriver3('service.jObj, options.jObj); - EdgeDriver newObj = new (externalObj); - return newObj; -} - -# The constructor function to generate an object of `org.openqa.selenium.edge.EdgeDriver`. -# -# + 'service - The `EdgeDriverService` value required to map with the Java constructor parameter. -# + options - The `EdgeOptions` value required to map with the Java constructor parameter. -# + clientConfig - The `orgopenqaseleniumremotehttp:ClientConfig` value required to map with the Java constructor parameter. -# + return - The new `EdgeDriver` class generated. -public isolated function newEdgeDriver4(EdgeDriverService 'service, EdgeOptions options, orgopenqaseleniumremotehttp:ClientConfig clientConfig) returns EdgeDriver { - handle externalObj = org_openqa_selenium_edge_EdgeDriver_newEdgeDriver4('service.jObj, options.jObj, clientConfig.jObj); - EdgeDriver newObj = new (externalObj); - return newObj; -} - -# The constructor function to generate an object of `org.openqa.selenium.edge.EdgeDriver`. -# -# + options - The `EdgeOptions` value required to map with the Java constructor parameter. -# + return - The new `EdgeDriver` class generated. -public isolated function newEdgeDriver5(EdgeOptions options) returns EdgeDriver { - handle externalObj = org_openqa_selenium_edge_EdgeDriver_newEdgeDriver5(options.jObj); - EdgeDriver newObj = new (externalObj); - return newObj; -} - -# The function that maps to the `builder` method of `org.openqa.selenium.edge.EdgeDriver`. -# -# + return - The `orgopenqaseleniumremote:RemoteWebDriverBuilder` value returning from the Java mapping. -public isolated function EdgeDriver_builder() returns orgopenqaseleniumremote:RemoteWebDriverBuilder { - handle externalObj = org_openqa_selenium_edge_EdgeDriver_builder(); - orgopenqaseleniumremote:RemoteWebDriverBuilder newObj = new (externalObj); - return newObj; -} - -# The function that retrieves the value of the public field `IS_CHROMIUM_BROWSER`. -# -# + return - The `Predicate` value of the field. -public isolated function EdgeDriver_getIS_CHROMIUM_BROWSER() returns javautilfunction:Predicate { - handle externalObj = org_openqa_selenium_edge_EdgeDriver_getIS_CHROMIUM_BROWSER(); - javautilfunction:Predicate newObj = new (externalObj); - return newObj; -} - -isolated function org_openqa_selenium_edge_EdgeDriver_addVirtualAuthenticator(handle receiver, handle options) returns handle = @java:Method { - name: "addVirtualAuthenticator", - 'class: "org.openqa.selenium.edge.EdgeDriver", - paramTypes: ["org.openqa.selenium.virtualauthenticator.VirtualAuthenticatorOptions"] -} external; - -isolated function org_openqa_selenium_edge_EdgeDriver_builder() returns handle = @java:Method { - name: "builder", - 'class: "org.openqa.selenium.edge.EdgeDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_edge_EdgeDriver_close(handle receiver) = @java:Method { - name: "close", - 'class: "org.openqa.selenium.edge.EdgeDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_edge_EdgeDriver_deleteDownloadableFiles(handle receiver) = @java:Method { - name: "deleteDownloadableFiles", - 'class: "org.openqa.selenium.edge.EdgeDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_edge_EdgeDriver_deleteNetworkConditions(handle receiver) = @java:Method { - name: "deleteNetworkConditions", - 'class: "org.openqa.selenium.edge.EdgeDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_edge_EdgeDriver_downloadFile(handle receiver, handle fileName, handle targetLocation) returns error? = @java:Method { - name: "downloadFile", - 'class: "org.openqa.selenium.edge.EdgeDriver", - paramTypes: ["java.lang.String", "java.nio.file.Path"] -} external; - -isolated function org_openqa_selenium_edge_EdgeDriver_equals(handle receiver, handle arg0) returns boolean = @java:Method { - name: "equals", - 'class: "org.openqa.selenium.edge.EdgeDriver", - paramTypes: ["java.lang.Object"] -} external; - -isolated function org_openqa_selenium_edge_EdgeDriver_executeAsyncScript(handle receiver, handle script, handle args) returns handle = @java:Method { - name: "executeAsyncScript", - 'class: "org.openqa.selenium.edge.EdgeDriver", - paramTypes: ["java.lang.String", "[Ljava.lang.Object;"] -} external; - -isolated function org_openqa_selenium_edge_EdgeDriver_executeCdpCommand(handle receiver, handle commandName, handle parameters) returns handle = @java:Method { - name: "executeCdpCommand", - 'class: "org.openqa.selenium.edge.EdgeDriver", - paramTypes: ["java.lang.String", "java.util.Map"] -} external; - -isolated function org_openqa_selenium_edge_EdgeDriver_executeScript(handle receiver, handle 'key, handle args) returns handle = @java:Method { - name: "executeScript", - 'class: "org.openqa.selenium.edge.EdgeDriver", - paramTypes: ["org.openqa.selenium.ScriptKey", "[Ljava.lang.Object;"] -} external; - -isolated function org_openqa_selenium_edge_EdgeDriver_executeScript2(handle receiver, handle script, handle args) returns handle = @java:Method { - name: "executeScript", - 'class: "org.openqa.selenium.edge.EdgeDriver", - paramTypes: ["java.lang.String", "[Ljava.lang.Object;"] -} external; - -isolated function org_openqa_selenium_edge_EdgeDriver_findElement(handle receiver, handle locator) returns handle = @java:Method { - name: "findElement", - 'class: "org.openqa.selenium.edge.EdgeDriver", - paramTypes: ["org.openqa.selenium.By"] -} external; - -isolated function org_openqa_selenium_edge_EdgeDriver_findElements(handle receiver, handle locator) returns handle = @java:Method { - name: "findElements", - 'class: "org.openqa.selenium.edge.EdgeDriver", - paramTypes: ["org.openqa.selenium.By"] -} external; - -isolated function org_openqa_selenium_edge_EdgeDriver_findElements2(handle receiver, handle context, handle findCommand, handle locator) returns handle = @java:Method { - name: "findElements", - 'class: "org.openqa.selenium.edge.EdgeDriver", - paramTypes: ["org.openqa.selenium.SearchContext", "java.util.function.BiFunction", "org.openqa.selenium.By"] -} external; - -isolated function org_openqa_selenium_edge_EdgeDriver_get(handle receiver, handle url) = @java:Method { - name: "get", - 'class: "org.openqa.selenium.edge.EdgeDriver", - paramTypes: ["java.lang.String"] -} external; - -isolated function org_openqa_selenium_edge_EdgeDriver_getBiDi(handle receiver) returns handle = @java:Method { - name: "getBiDi", - 'class: "org.openqa.selenium.edge.EdgeDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_edge_EdgeDriver_getCapabilities(handle receiver) returns handle = @java:Method { - name: "getCapabilities", - 'class: "org.openqa.selenium.edge.EdgeDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_edge_EdgeDriver_getCastIssueMessage(handle receiver) returns handle = @java:Method { - name: "getCastIssueMessage", - 'class: "org.openqa.selenium.edge.EdgeDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_edge_EdgeDriver_getCastSinks(handle receiver) returns handle = @java:Method { - name: "getCastSinks", - 'class: "org.openqa.selenium.edge.EdgeDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_edge_EdgeDriver_getClass(handle receiver) returns handle = @java:Method { - name: "getClass", - 'class: "org.openqa.selenium.edge.EdgeDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_edge_EdgeDriver_getCommandExecutor(handle receiver) returns handle = @java:Method { - name: "getCommandExecutor", - 'class: "org.openqa.selenium.edge.EdgeDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_edge_EdgeDriver_getCurrentUrl(handle receiver) returns handle = @java:Method { - name: "getCurrentUrl", - 'class: "org.openqa.selenium.edge.EdgeDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_edge_EdgeDriver_getDevTools(handle receiver) returns handle = @java:Method { - name: "getDevTools", - 'class: "org.openqa.selenium.edge.EdgeDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_edge_EdgeDriver_getDownloadableFiles(handle receiver) returns handle = @java:Method { - name: "getDownloadableFiles", - 'class: "org.openqa.selenium.edge.EdgeDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_edge_EdgeDriver_getErrorHandler(handle receiver) returns handle = @java:Method { - name: "getErrorHandler", - 'class: "org.openqa.selenium.edge.EdgeDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_edge_EdgeDriver_getFederatedCredentialManagementDialog(handle receiver) returns handle = @java:Method { - name: "getFederatedCredentialManagementDialog", - 'class: "org.openqa.selenium.edge.EdgeDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_edge_EdgeDriver_getFileDetector(handle receiver) returns handle = @java:Method { - name: "getFileDetector", - 'class: "org.openqa.selenium.edge.EdgeDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_edge_EdgeDriver_getLocalStorage(handle receiver) returns handle = @java:Method { - name: "getLocalStorage", - 'class: "org.openqa.selenium.edge.EdgeDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_edge_EdgeDriver_getNetworkConditions(handle receiver) returns handle = @java:Method { - name: "getNetworkConditions", - 'class: "org.openqa.selenium.edge.EdgeDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_edge_EdgeDriver_getNetworkConnection(handle receiver) returns handle = @java:Method { - name: "getNetworkConnection", - 'class: "org.openqa.selenium.edge.EdgeDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_edge_EdgeDriver_getPageSource(handle receiver) returns handle = @java:Method { - name: "getPageSource", - 'class: "org.openqa.selenium.edge.EdgeDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_edge_EdgeDriver_getPinnedScripts(handle receiver) returns handle = @java:Method { - name: "getPinnedScripts", - 'class: "org.openqa.selenium.edge.EdgeDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_edge_EdgeDriver_getScreenshotAs(handle receiver, handle outputType) returns handle = @java:Method { - name: "getScreenshotAs", - 'class: "org.openqa.selenium.edge.EdgeDriver", - paramTypes: ["org.openqa.selenium.OutputType"] -} external; - -isolated function org_openqa_selenium_edge_EdgeDriver_getSessionId(handle receiver) returns handle = @java:Method { - name: "getSessionId", - 'class: "org.openqa.selenium.edge.EdgeDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_edge_EdgeDriver_getSessionStorage(handle receiver) returns handle = @java:Method { - name: "getSessionStorage", - 'class: "org.openqa.selenium.edge.EdgeDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_edge_EdgeDriver_getTitle(handle receiver) returns handle = @java:Method { - name: "getTitle", - 'class: "org.openqa.selenium.edge.EdgeDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_edge_EdgeDriver_getWindowHandle(handle receiver) returns handle = @java:Method { - name: "getWindowHandle", - 'class: "org.openqa.selenium.edge.EdgeDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_edge_EdgeDriver_getWindowHandles(handle receiver) returns handle = @java:Method { - name: "getWindowHandles", - 'class: "org.openqa.selenium.edge.EdgeDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_edge_EdgeDriver_hashCode(handle receiver) returns int = @java:Method { - name: "hashCode", - 'class: "org.openqa.selenium.edge.EdgeDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_edge_EdgeDriver_launchApp(handle receiver, handle id) = @java:Method { - name: "launchApp", - 'class: "org.openqa.selenium.edge.EdgeDriver", - paramTypes: ["java.lang.String"] -} external; - -isolated function org_openqa_selenium_edge_EdgeDriver_location(handle receiver) returns handle = @java:Method { - name: "location", - 'class: "org.openqa.selenium.edge.EdgeDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_edge_EdgeDriver_manage(handle receiver) returns handle = @java:Method { - name: "manage", - 'class: "org.openqa.selenium.edge.EdgeDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_edge_EdgeDriver_maybeGetBiDi(handle receiver) returns handle = @java:Method { - name: "maybeGetBiDi", - 'class: "org.openqa.selenium.edge.EdgeDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_edge_EdgeDriver_maybeGetDevTools(handle receiver) returns handle = @java:Method { - name: "maybeGetDevTools", - 'class: "org.openqa.selenium.edge.EdgeDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_edge_EdgeDriver_navigate(handle receiver) returns handle = @java:Method { - name: "navigate", - 'class: "org.openqa.selenium.edge.EdgeDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_edge_EdgeDriver_network(handle receiver) returns handle = @java:Method { - name: "network", - 'class: "org.openqa.selenium.edge.EdgeDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_edge_EdgeDriver_notify(handle receiver) = @java:Method { - name: "notify", - 'class: "org.openqa.selenium.edge.EdgeDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_edge_EdgeDriver_notifyAll(handle receiver) = @java:Method { - name: "notifyAll", - 'class: "org.openqa.selenium.edge.EdgeDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_edge_EdgeDriver_onLogEvent(handle receiver, handle kind) = @java:Method { - name: "onLogEvent", - 'class: "org.openqa.selenium.edge.EdgeDriver", - paramTypes: ["org.openqa.selenium.logging.EventType"] -} external; - -isolated function org_openqa_selenium_edge_EdgeDriver_perform(handle receiver, handle actions) = @java:Method { - name: "perform", - 'class: "org.openqa.selenium.edge.EdgeDriver", - paramTypes: ["java.util.Collection"] -} external; - -isolated function org_openqa_selenium_edge_EdgeDriver_pin(handle receiver, handle script) returns handle = @java:Method { - name: "pin", - 'class: "org.openqa.selenium.edge.EdgeDriver", - paramTypes: ["java.lang.String"] -} external; - -isolated function org_openqa_selenium_edge_EdgeDriver_print(handle receiver, handle printOptions) returns handle = @java:Method { - name: "print", - 'class: "org.openqa.selenium.edge.EdgeDriver", - paramTypes: ["org.openqa.selenium.print.PrintOptions"] -} external; - -isolated function org_openqa_selenium_edge_EdgeDriver_quit(handle receiver) = @java:Method { - name: "quit", - 'class: "org.openqa.selenium.edge.EdgeDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_edge_EdgeDriver_register(handle receiver, handle whenThisMatches, handle useTheseCredentials) = @java:Method { - name: "register", - 'class: "org.openqa.selenium.edge.EdgeDriver", - paramTypes: ["java.util.function.Predicate", "java.util.function.Supplier"] -} external; - -isolated function org_openqa_selenium_edge_EdgeDriver_register2(handle receiver, handle alwaysUseTheseCredentials) = @java:Method { - name: "register", - 'class: "org.openqa.selenium.edge.EdgeDriver", - paramTypes: ["java.util.function.Supplier"] -} external; - -isolated function org_openqa_selenium_edge_EdgeDriver_removeVirtualAuthenticator(handle receiver, handle authenticator) = @java:Method { - name: "removeVirtualAuthenticator", - 'class: "org.openqa.selenium.edge.EdgeDriver", - paramTypes: ["org.openqa.selenium.virtualauthenticator.VirtualAuthenticator"] -} external; - -isolated function org_openqa_selenium_edge_EdgeDriver_requireDownloadsEnabled(handle receiver, handle capabilities) = @java:Method { - name: "requireDownloadsEnabled", - 'class: "org.openqa.selenium.edge.EdgeDriver", - paramTypes: ["org.openqa.selenium.Capabilities"] -} external; - -isolated function org_openqa_selenium_edge_EdgeDriver_resetCooldown(handle receiver) = @java:Method { - name: "resetCooldown", - 'class: "org.openqa.selenium.edge.EdgeDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_edge_EdgeDriver_resetInputState(handle receiver) = @java:Method { - name: "resetInputState", - 'class: "org.openqa.selenium.edge.EdgeDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_edge_EdgeDriver_script(handle receiver) returns handle = @java:Method { - name: "script", - 'class: "org.openqa.selenium.edge.EdgeDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_edge_EdgeDriver_selectCastSink(handle receiver, handle deviceName) = @java:Method { - name: "selectCastSink", - 'class: "org.openqa.selenium.edge.EdgeDriver", - paramTypes: ["java.lang.String"] -} external; - -isolated function org_openqa_selenium_edge_EdgeDriver_setDelayEnabled(handle receiver, boolean enabled) = @java:Method { - name: "setDelayEnabled", - 'class: "org.openqa.selenium.edge.EdgeDriver", - paramTypes: ["boolean"] -} external; - -isolated function org_openqa_selenium_edge_EdgeDriver_setErrorHandler(handle receiver, handle handler) = @java:Method { - name: "setErrorHandler", - 'class: "org.openqa.selenium.edge.EdgeDriver", - paramTypes: ["org.openqa.selenium.remote.ErrorHandler"] -} external; - -isolated function org_openqa_selenium_edge_EdgeDriver_setFileDetector(handle receiver, handle detector) = @java:Method { - name: "setFileDetector", - 'class: "org.openqa.selenium.edge.EdgeDriver", - paramTypes: ["org.openqa.selenium.remote.FileDetector"] -} external; - -isolated function org_openqa_selenium_edge_EdgeDriver_setLocation(handle receiver, handle location) = @java:Method { - name: "setLocation", - 'class: "org.openqa.selenium.edge.EdgeDriver", - paramTypes: ["org.openqa.selenium.html5.Location"] -} external; - -isolated function org_openqa_selenium_edge_EdgeDriver_setLogLevel(handle receiver, handle level) = @java:Method { - name: "setLogLevel", - 'class: "org.openqa.selenium.edge.EdgeDriver", - paramTypes: ["java.util.logging.Level"] -} external; - -isolated function org_openqa_selenium_edge_EdgeDriver_setNetworkConditions(handle receiver, handle networkConditions) = @java:Method { - name: "setNetworkConditions", - 'class: "org.openqa.selenium.edge.EdgeDriver", - paramTypes: ["org.openqa.selenium.chromium.ChromiumNetworkConditions"] -} external; - -isolated function org_openqa_selenium_edge_EdgeDriver_setNetworkConnection(handle receiver, handle 'type) returns handle = @java:Method { - name: "setNetworkConnection", - 'class: "org.openqa.selenium.edge.EdgeDriver", - paramTypes: ["org.openqa.selenium.mobile.NetworkConnection$ConnectionType"] -} external; - -isolated function org_openqa_selenium_edge_EdgeDriver_setPermission(handle receiver, handle name, handle value) = @java:Method { - name: "setPermission", - 'class: "org.openqa.selenium.edge.EdgeDriver", - paramTypes: ["java.lang.String", "java.lang.String"] -} external; - -isolated function org_openqa_selenium_edge_EdgeDriver_startDesktopMirroring(handle receiver, handle deviceName) = @java:Method { - name: "startDesktopMirroring", - 'class: "org.openqa.selenium.edge.EdgeDriver", - paramTypes: ["java.lang.String"] -} external; - -isolated function org_openqa_selenium_edge_EdgeDriver_startTabMirroring(handle receiver, handle deviceName) = @java:Method { - name: "startTabMirroring", - 'class: "org.openqa.selenium.edge.EdgeDriver", - paramTypes: ["java.lang.String"] -} external; - -isolated function org_openqa_selenium_edge_EdgeDriver_stopCasting(handle receiver, handle deviceName) = @java:Method { - name: "stopCasting", - 'class: "org.openqa.selenium.edge.EdgeDriver", - paramTypes: ["java.lang.String"] -} external; - -isolated function org_openqa_selenium_edge_EdgeDriver_switchTo(handle receiver) returns handle = @java:Method { - name: "switchTo", - 'class: "org.openqa.selenium.edge.EdgeDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_edge_EdgeDriver_unpin(handle receiver, handle 'key) = @java:Method { - name: "unpin", - 'class: "org.openqa.selenium.edge.EdgeDriver", - paramTypes: ["org.openqa.selenium.ScriptKey"] -} external; - -isolated function org_openqa_selenium_edge_EdgeDriver_wait(handle receiver) returns error? = @java:Method { - name: "wait", - 'class: "org.openqa.selenium.edge.EdgeDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_edge_EdgeDriver_wait2(handle receiver, int arg0) returns error? = @java:Method { - name: "wait", - 'class: "org.openqa.selenium.edge.EdgeDriver", - paramTypes: ["long"] -} external; - -isolated function org_openqa_selenium_edge_EdgeDriver_wait3(handle receiver, int arg0, int arg1) returns error? = @java:Method { - name: "wait", - 'class: "org.openqa.selenium.edge.EdgeDriver", - paramTypes: ["long", "int"] -} external; - -isolated function org_openqa_selenium_edge_EdgeDriver_getIS_CHROMIUM_BROWSER() returns handle = @java:FieldGet { - name: "IS_CHROMIUM_BROWSER", - 'class: "org.openqa.selenium.edge.EdgeDriver" -} external; - -isolated function org_openqa_selenium_edge_EdgeDriver_newEdgeDriver1() returns handle = @java:Constructor { - 'class: "org.openqa.selenium.edge.EdgeDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_edge_EdgeDriver_newEdgeDriver2(handle 'service) returns handle = @java:Constructor { - 'class: "org.openqa.selenium.edge.EdgeDriver", - paramTypes: ["org.openqa.selenium.edge.EdgeDriverService"] -} external; - -isolated function org_openqa_selenium_edge_EdgeDriver_newEdgeDriver3(handle 'service, handle options) returns handle = @java:Constructor { - 'class: "org.openqa.selenium.edge.EdgeDriver", - paramTypes: ["org.openqa.selenium.edge.EdgeDriverService", "org.openqa.selenium.edge.EdgeOptions"] -} external; - -isolated function org_openqa_selenium_edge_EdgeDriver_newEdgeDriver4(handle 'service, handle options, handle clientConfig) returns handle = @java:Constructor { - 'class: "org.openqa.selenium.edge.EdgeDriver", - paramTypes: ["org.openqa.selenium.edge.EdgeDriverService", "org.openqa.selenium.edge.EdgeOptions", "org.openqa.selenium.remote.http.ClientConfig"] -} external; - -isolated function org_openqa_selenium_edge_EdgeDriver_newEdgeDriver5(handle options) returns handle = @java:Constructor { - 'class: "org.openqa.selenium.edge.EdgeDriver", - paramTypes: ["org.openqa.selenium.edge.EdgeOptions"] -} external; - diff --git a/ballerina/modules/edge/EdgeDriverService.bal b/ballerina/modules/edge/EdgeDriverService.bal deleted file mode 100644 index b8ef948..0000000 --- a/ballerina/modules/edge/EdgeDriverService.bal +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). -// -// WSO2 LLC. licenses this file to you under the Apache License, -// Version 2.0 (the "License"); you may not use this file except -// in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -import ballerina/jballerina.java; - -# Ballerina class mapping for the Java `org.openqa.selenium.edge.EdgeDriverService` class. -@java:Binding {'class: "org.openqa.selenium.edge.EdgeDriverService"} -public distinct class EdgeDriverService { - - *java:JObject; - - # The `handle` field that stores the reference to the `org.openqa.selenium.edge.EdgeDriverService` object. - public handle jObj; - - # The init function of the Ballerina class mapping the `org.openqa.selenium.edge.EdgeDriverService` Java class. - # - # + obj - The `handle` value containing the Java reference of the object. - public isolated function init(handle obj) { - self.jObj = obj; - } - - # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.edge.EdgeDriverService` Java class. - # - # + return - The `string` form of the Java object instance. - public isolated function toString() returns string { - return java:toString(self.jObj) ?: ""; - } - -} - diff --git a/ballerina/modules/edge/EdgeOptions.bal b/ballerina/modules/edge/EdgeOptions.bal deleted file mode 100644 index 82b21aa..0000000 --- a/ballerina/modules/edge/EdgeOptions.bal +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). -// -// WSO2 LLC. licenses this file to you under the Apache License, -// Version 2.0 (the "License"); you may not use this file except -// in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -import ballerina/jballerina.java; - -# Ballerina class mapping for the Java `org.openqa.selenium.edge.EdgeOptions` class. -@java:Binding {'class: "org.openqa.selenium.edge.EdgeOptions"} -public distinct class EdgeOptions { - - *java:JObject; - - # The `handle` field that stores the reference to the `org.openqa.selenium.edge.EdgeOptions` object. - public handle jObj; - - # The init function of the Ballerina class mapping the `org.openqa.selenium.edge.EdgeOptions` Java class. - # - # + obj - The `handle` value containing the Java reference of the object. - public isolated function init(handle obj) { - self.jObj = obj; - } - - # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.edge.EdgeOptions` Java class. - # - # + return - The `string` form of the Java object instance. - public isolated function toString() returns string { - return java:toString(self.jObj) ?: ""; - } - -} - diff --git a/ballerina/modules/firefox/FirefoxCommandContext.bal b/ballerina/modules/firefox/FirefoxCommandContext.bal deleted file mode 100644 index 95b69f4..0000000 --- a/ballerina/modules/firefox/FirefoxCommandContext.bal +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). -// -// WSO2 LLC. licenses this file to you under the Apache License, -// Version 2.0 (the "License"); you may not use this file except -// in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -import ballerina/jballerina.java; - -# Ballerina class mapping for the Java `org.openqa.selenium.firefox.FirefoxCommandContext` class. -@java:Binding {'class: "org.openqa.selenium.firefox.FirefoxCommandContext"} -public distinct class FirefoxCommandContext { - - *java:JObject; - - # The `handle` field that stores the reference to the `org.openqa.selenium.firefox.FirefoxCommandContext` object. - public handle jObj; - - # The init function of the Ballerina class mapping the `org.openqa.selenium.firefox.FirefoxCommandContext` Java class. - # - # + obj - The `handle` value containing the Java reference of the object. - public isolated function init(handle obj) { - self.jObj = obj; - } - - # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.firefox.FirefoxCommandContext` Java class. - # - # + return - The `string` form of the Java object instance. - public isolated function toString() returns string { - return java:toString(self.jObj) ?: ""; - } - -} - diff --git a/ballerina/modules/firefox/FirefoxDriver.bal b/ballerina/modules/firefox/FirefoxDriver.bal deleted file mode 100644 index f457aea..0000000 --- a/ballerina/modules/firefox/FirefoxDriver.bal +++ /dev/null @@ -1,1080 +0,0 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). -// -// WSO2 LLC. licenses this file to you under the Apache License, -// Version 2.0 (the "License"); you may not use this file except -// in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -import selenium.java.io as javaio; -import selenium.java.lang as javalang; -import selenium.java.nio.file as javaniofile; -import selenium.java.util as javautil; -import selenium.java.util.'function as javautilfunction; -import selenium.java.util.logging as javautillogging; -import selenium.web as orgopenqaselenium; -import selenium.org.openqa.selenium.'remote as orgopenqaseleniumremote; -import selenium.org.openqa.selenium.'remote.http as orgopenqaseleniumremotehttp; -import selenium.org.openqa.selenium.bidi as orgopenqaseleniumbidi; -import selenium.org.openqa.selenium.devtools as orgopenqaseleniumdevtools; -import selenium.org.openqa.selenium.federatedcredentialmanagement as orgopenqaseleniumfederatedcredentialmanagement; -import selenium.org.openqa.selenium.html5 as orgopenqaseleniumhtml5; -import selenium.org.openqa.selenium.print as orgopenqaseleniumprint; -import selenium.org.openqa.selenium.virtualauthenticator as orgopenqaseleniumvirtualauthenticator; - -import ballerina/jballerina.java; -import ballerina/jballerina.java.arrays as jarrays; - -# Ballerina class mapping for the Java `org.openqa.selenium.firefox.FirefoxDriver` class. -@java:Binding {'class: "org.openqa.selenium.firefox.FirefoxDriver"} -public distinct class FirefoxDriver { - - *java:JObject; - *orgopenqaseleniumremote:RemoteWebDriver; - - # The `handle` field that stores the reference to the `org.openqa.selenium.firefox.FirefoxDriver` object. - public handle jObj; - - # The init function of the Ballerina class mapping the `org.openqa.selenium.firefox.FirefoxDriver` Java class. - # - # + obj - The `handle` value containing the Java reference of the object. - public isolated function init(handle obj) { - self.jObj = obj; - } - - # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.firefox.FirefoxDriver` Java class. - # - # + return - The `string` form of the Java object instance. - public isolated function toString() returns string { - return java:toString(self.jObj) ?: ""; - } - - # The function that maps to the `addVirtualAuthenticator` method of `org.openqa.selenium.firefox.FirefoxDriver`. - # - # + options - The `orgopenqaseleniumvirtualauthenticator:VirtualAuthenticatorOptions` value required to map with the Java method parameter. - # + return - The `orgopenqaseleniumvirtualauthenticator:VirtualAuthenticator` value returning from the Java mapping. - public isolated function addVirtualAuthenticator(orgopenqaseleniumvirtualauthenticator:VirtualAuthenticatorOptions options) returns orgopenqaseleniumvirtualauthenticator:VirtualAuthenticator { - handle externalObj = org_openqa_selenium_firefox_FirefoxDriver_addVirtualAuthenticator(self.jObj, options.jObj); - orgopenqaseleniumvirtualauthenticator:VirtualAuthenticator newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `close` method of `org.openqa.selenium.firefox.FirefoxDriver`. - public isolated function close() { - org_openqa_selenium_firefox_FirefoxDriver_close(self.jObj); - } - - # The function that maps to the `deleteDownloadableFiles` method of `org.openqa.selenium.firefox.FirefoxDriver`. - public isolated function deleteDownloadableFiles() { - org_openqa_selenium_firefox_FirefoxDriver_deleteDownloadableFiles(self.jObj); - } - - # The function that maps to the `downloadFile` method of `org.openqa.selenium.firefox.FirefoxDriver`. - # - # + fileName - The `string` value required to map with the Java method parameter. - # + targetLocation - The `javaniofile:Path` value required to map with the Java method parameter. - # + return - The `javaio:IOException` value returning from the Java mapping. - public isolated function downloadFile(string fileName, javaniofile:Path targetLocation) returns javaio:IOException? { - error|() externalObj = org_openqa_selenium_firefox_FirefoxDriver_downloadFile(self.jObj, java:fromString(fileName), targetLocation.jObj); - if (externalObj is error) { - javaio:IOException e = error javaio:IOException(javaio:IOEXCEPTION, externalObj, message = externalObj.message()); - return e; - } - } - - # The function that maps to the `equals` method of `org.openqa.selenium.firefox.FirefoxDriver`. - # - # + arg0 - The `javalang:Object` value required to map with the Java method parameter. - # + return - The `boolean` value returning from the Java mapping. - public isolated function 'equals(javalang:Object arg0) returns boolean { - return org_openqa_selenium_firefox_FirefoxDriver_equals(self.jObj, arg0.jObj); - } - - # The function that maps to the `executeAsyncScript` method of `org.openqa.selenium.firefox.FirefoxDriver`. - # - # + script - The `string` value required to map with the Java method parameter. - # + args - The `javalang:Object[]` value required to map with the Java method parameter. - # + return - The `javalang:Object` value returning from the Java mapping. - public isolated function executeAsyncScript(string script, javalang:Object[] args) returns javalang:Object|error { - handle externalObj = org_openqa_selenium_firefox_FirefoxDriver_executeAsyncScript(self.jObj, java:fromString(script), check jarrays:toHandle(args, "java.lang.Object")); - javalang:Object newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `executeScript` method of `org.openqa.selenium.firefox.FirefoxDriver`. - # - # + 'key - The `orgopenqaselenium:ScriptKey` value required to map with the Java method parameter. - # + args - The `javalang:Object[]` value required to map with the Java method parameter. - # + return - The `javalang:Object` value returning from the Java mapping. - public isolated function executeScript(orgopenqaselenium:ScriptKey 'key, javalang:Object[] args) returns javalang:Object|error { - handle externalObj = org_openqa_selenium_firefox_FirefoxDriver_executeScript(self.jObj, 'key.jObj, check jarrays:toHandle(args, "java.lang.Object")); - javalang:Object newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `executeScript` method of `org.openqa.selenium.firefox.FirefoxDriver`. - # - # + script - The `string` value required to map with the Java method parameter. - # + args - The `javalang:Object[]` value required to map with the Java method parameter. - # + return - The `javalang:Object` value returning from the Java mapping. - public isolated function executeScript2(string script, javalang:Object[] args) returns javalang:Object|error { - handle externalObj = org_openqa_selenium_firefox_FirefoxDriver_executeScript2(self.jObj, java:fromString(script), check jarrays:toHandle(args, "java.lang.Object")); - javalang:Object newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `findElement` method of `org.openqa.selenium.firefox.FirefoxDriver`. - # - # + locator - The `orgopenqaselenium:By` value required to map with the Java method parameter. - # + return - The `orgopenqaselenium:WebElement` value returning from the Java mapping. - public isolated function findElement(orgopenqaselenium:By locator) returns orgopenqaselenium:WebElement { - handle externalObj = org_openqa_selenium_firefox_FirefoxDriver_findElement(self.jObj, locator.jObj); - orgopenqaselenium:WebElement newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `findElements` method of `org.openqa.selenium.firefox.FirefoxDriver`. - # - # + locator - The `orgopenqaselenium:By` value required to map with the Java method parameter. - # + return - The `javautil:List` value returning from the Java mapping. - public isolated function findElements(orgopenqaselenium:By locator) returns javautil:List { - handle externalObj = org_openqa_selenium_firefox_FirefoxDriver_findElements(self.jObj, locator.jObj); - javautil:List newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `findElements` method of `org.openqa.selenium.chrome.ChromeDriver`. - # - # + locator - The `orgopenqaselenium:By` value required to map with the Java method parameter. - # + return - The `orgopenqaselenium:WebElement[]` value returning from the Java mapping. - public isolated function findAllElements(orgopenqaselenium:By locator) returns orgopenqaselenium:WebElement[]|error { - handle externalObj = org_openqa_selenium_firefox_FirefoxDriver_findElements(self.jObj, locator.jObj); - javautil:List newObj = new (externalObj); - orgopenqaselenium:WebElement[] elements = []; - javalang:Object[] arr = check newObj.toArray(); - foreach var item in arr { - elements.push(check java:cast(item, orgopenqaselenium:WebElement)); - } - return elements; - } - - # The function that maps to the `findElements` method of `org.openqa.selenium.firefox.FirefoxDriver`. - # - # + context - The `orgopenqaselenium:SearchContext` value required to map with the Java method parameter. - # + findCommand - The `javautilfunction:BiFunction` value required to map with the Java method parameter. - # + locator - The `orgopenqaselenium:By` value required to map with the Java method parameter. - # + return - The `javautil:List` value returning from the Java mapping. - public isolated function findElements2(orgopenqaselenium:SearchContext context, javautilfunction:BiFunction findCommand, orgopenqaselenium:By locator) returns javautil:List { - handle externalObj = org_openqa_selenium_firefox_FirefoxDriver_findElements2(self.jObj, context.jObj, findCommand.jObj, locator.jObj); - javautil:List newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `get` method of `org.openqa.selenium.firefox.FirefoxDriver`. - # - # + url - The `string` value required to map with the Java method parameter. - public isolated function get(string url) { - org_openqa_selenium_firefox_FirefoxDriver_get(self.jObj, java:fromString(url)); - } - - # The function that maps to the `getBiDi` method of `org.openqa.selenium.firefox.FirefoxDriver`. - # - # + return - The `orgopenqaseleniumbidi:BiDi` value returning from the Java mapping. - public isolated function getBiDi() returns orgopenqaseleniumbidi:BiDi { - handle externalObj = org_openqa_selenium_firefox_FirefoxDriver_getBiDi(self.jObj); - orgopenqaseleniumbidi:BiDi newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getCapabilities` method of `org.openqa.selenium.firefox.FirefoxDriver`. - # - # + return - The `orgopenqaselenium:Capabilities` value returning from the Java mapping. - public isolated function getCapabilities() returns orgopenqaselenium:Capabilities { - handle externalObj = org_openqa_selenium_firefox_FirefoxDriver_getCapabilities(self.jObj); - orgopenqaselenium:Capabilities newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getClass` method of `org.openqa.selenium.firefox.FirefoxDriver`. - # - # + return - The `javalang:Class` value returning from the Java mapping. - public isolated function getClass() returns javalang:Class { - handle externalObj = org_openqa_selenium_firefox_FirefoxDriver_getClass(self.jObj); - javalang:Class newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getCommandExecutor` method of `org.openqa.selenium.firefox.FirefoxDriver`. - # - # + return - The `orgopenqaseleniumremote:CommandExecutor` value returning from the Java mapping. - public isolated function getCommandExecutor() returns orgopenqaseleniumremote:CommandExecutor { - handle externalObj = org_openqa_selenium_firefox_FirefoxDriver_getCommandExecutor(self.jObj); - orgopenqaseleniumremote:CommandExecutor newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getContext` method of `org.openqa.selenium.firefox.FirefoxDriver`. - # - # + return - The `FirefoxCommandContext` value returning from the Java mapping. - public isolated function getContext() returns FirefoxCommandContext { - handle externalObj = org_openqa_selenium_firefox_FirefoxDriver_getContext(self.jObj); - FirefoxCommandContext newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getCurrentUrl` method of `org.openqa.selenium.firefox.FirefoxDriver`. - # - # + return - The `string` value returning from the Java mapping. - public isolated function getCurrentUrl() returns string { - return java:toString(org_openqa_selenium_firefox_FirefoxDriver_getCurrentUrl(self.jObj)) ?: ""; - } - - # The function that maps to the `getDevTools` method of `org.openqa.selenium.firefox.FirefoxDriver`. - # - # + return - The `orgopenqaseleniumdevtools:DevTools` value returning from the Java mapping. - public isolated function getDevTools() returns orgopenqaseleniumdevtools:DevTools { - handle externalObj = org_openqa_selenium_firefox_FirefoxDriver_getDevTools(self.jObj); - orgopenqaseleniumdevtools:DevTools newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getDownloadableFiles` method of `org.openqa.selenium.firefox.FirefoxDriver`. - # - # + return - The `javautil:List` value returning from the Java mapping. - public isolated function getDownloadableFiles() returns javautil:List { - handle externalObj = org_openqa_selenium_firefox_FirefoxDriver_getDownloadableFiles(self.jObj); - javautil:List newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getErrorHandler` method of `org.openqa.selenium.firefox.FirefoxDriver`. - # - # + return - The `orgopenqaseleniumremote:ErrorHandler` value returning from the Java mapping. - public isolated function getErrorHandler() returns orgopenqaseleniumremote:ErrorHandler { - handle externalObj = org_openqa_selenium_firefox_FirefoxDriver_getErrorHandler(self.jObj); - orgopenqaseleniumremote:ErrorHandler newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getFederatedCredentialManagementDialog` method of `org.openqa.selenium.firefox.FirefoxDriver`. - # - # + return - The `orgopenqaseleniumfederatedcredentialmanagement:FederatedCredentialManagementDialog` value returning from the Java mapping. - public isolated function getFederatedCredentialManagementDialog() returns orgopenqaseleniumfederatedcredentialmanagement:FederatedCredentialManagementDialog { - handle externalObj = org_openqa_selenium_firefox_FirefoxDriver_getFederatedCredentialManagementDialog(self.jObj); - orgopenqaseleniumfederatedcredentialmanagement:FederatedCredentialManagementDialog newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getFileDetector` method of `org.openqa.selenium.firefox.FirefoxDriver`. - # - # + return - The `orgopenqaseleniumremote:FileDetector` value returning from the Java mapping. - public isolated function getFileDetector() returns orgopenqaseleniumremote:FileDetector { - handle externalObj = org_openqa_selenium_firefox_FirefoxDriver_getFileDetector(self.jObj); - orgopenqaseleniumremote:FileDetector newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getFullPageScreenshotAs` method of `org.openqa.selenium.firefox.FirefoxDriver`. - # - # + outputType - The `orgopenqaselenium:OutputType` value required to map with the Java method parameter. - # + return - The `javalang:Object` value returning from the Java mapping. - public isolated function getFullPageScreenshotAs(orgopenqaselenium:OutputType outputType) returns javalang:Object { - handle externalObj = org_openqa_selenium_firefox_FirefoxDriver_getFullPageScreenshotAs(self.jObj, outputType.jObj); - javalang:Object newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getLocalStorage` method of `org.openqa.selenium.firefox.FirefoxDriver`. - # - # + return - The `orgopenqaseleniumhtml5:LocalStorage` value returning from the Java mapping. - public isolated function getLocalStorage() returns orgopenqaseleniumhtml5:LocalStorage { - handle externalObj = org_openqa_selenium_firefox_FirefoxDriver_getLocalStorage(self.jObj); - orgopenqaseleniumhtml5:LocalStorage newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getPageSource` method of `org.openqa.selenium.firefox.FirefoxDriver`. - # - # + return - The `string` value returning from the Java mapping. - public isolated function getPageSource() returns string { - return java:toString(org_openqa_selenium_firefox_FirefoxDriver_getPageSource(self.jObj)) ?: ""; - } - - # The function that maps to the `getPinnedScripts` method of `org.openqa.selenium.firefox.FirefoxDriver`. - # - # + return - The `javautil:Set` value returning from the Java mapping. - public isolated function getPinnedScripts() returns javautil:Set { - handle externalObj = org_openqa_selenium_firefox_FirefoxDriver_getPinnedScripts(self.jObj); - javautil:Set newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getScreenshotAs` method of `org.openqa.selenium.firefox.FirefoxDriver`. - # - # + outputType - The `orgopenqaselenium:OutputType` value required to map with the Java method parameter. - # + return - The `javalang:Object` value returning from the Java mapping. - public isolated function getScreenshotAs(orgopenqaselenium:OutputType outputType) returns javalang:Object { - handle externalObj = org_openqa_selenium_firefox_FirefoxDriver_getScreenshotAs(self.jObj, outputType.jObj); - javalang:Object newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getSessionId` method of `org.openqa.selenium.firefox.FirefoxDriver`. - # - # + return - The `orgopenqaseleniumremote:SessionId` value returning from the Java mapping. - public isolated function getSessionId() returns orgopenqaseleniumremote:SessionId { - handle externalObj = org_openqa_selenium_firefox_FirefoxDriver_getSessionId(self.jObj); - orgopenqaseleniumremote:SessionId newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getSessionStorage` method of `org.openqa.selenium.firefox.FirefoxDriver`. - # - # + return - The `orgopenqaseleniumhtml5:SessionStorage` value returning from the Java mapping. - public isolated function getSessionStorage() returns orgopenqaseleniumhtml5:SessionStorage { - handle externalObj = org_openqa_selenium_firefox_FirefoxDriver_getSessionStorage(self.jObj); - orgopenqaseleniumhtml5:SessionStorage newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getTitle` method of `org.openqa.selenium.firefox.FirefoxDriver`. - # - # + return - The `string` value returning from the Java mapping. - public isolated function getTitle() returns string { - return java:toString(org_openqa_selenium_firefox_FirefoxDriver_getTitle(self.jObj)) ?: ""; - } - - # The function that maps to the `getWindowHandle` method of `org.openqa.selenium.firefox.FirefoxDriver`. - # - # + return - The `string` value returning from the Java mapping. - public isolated function getWindowHandle() returns string { - return java:toString(org_openqa_selenium_firefox_FirefoxDriver_getWindowHandle(self.jObj)) ?: ""; - } - - # The function that maps to the `getWindowHandles` method of `org.openqa.selenium.firefox.FirefoxDriver`. - # - # + return - The `javautil:Set` value returning from the Java mapping. - public isolated function getWindowHandles() returns javautil:Set { - handle externalObj = org_openqa_selenium_firefox_FirefoxDriver_getWindowHandles(self.jObj); - javautil:Set newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `hashCode` method of `org.openqa.selenium.firefox.FirefoxDriver`. - # - # + return - The `int` value returning from the Java mapping. - public isolated function hashCode() returns int { - return org_openqa_selenium_firefox_FirefoxDriver_hashCode(self.jObj); - } - - # The function that maps to the `installExtension` method of `org.openqa.selenium.firefox.FirefoxDriver`. - # - # + path - The `javaniofile:Path` value required to map with the Java method parameter. - # + return - The `string` value returning from the Java mapping. - public isolated function installExtension(javaniofile:Path path) returns string { - return java:toString(org_openqa_selenium_firefox_FirefoxDriver_installExtension(self.jObj, path.jObj)) ?: ""; - } - - # The function that maps to the `installExtension` method of `org.openqa.selenium.firefox.FirefoxDriver`. - # - # + path - The `javaniofile:Path` value required to map with the Java method parameter. - # + temporary - The `javalang:Boolean` value required to map with the Java method parameter. - # + return - The `string` value returning from the Java mapping. - public isolated function installExtension2(javaniofile:Path path, javalang:Boolean temporary) returns string { - return java:toString(org_openqa_selenium_firefox_FirefoxDriver_installExtension2(self.jObj, path.jObj, temporary.jObj)) ?: ""; - } - - # The function that maps to the `manage` method of `org.openqa.selenium.firefox.FirefoxDriver`. - # - # + return - The `orgopenqaselenium:Options` value returning from the Java mapping. - public isolated function manage() returns orgopenqaselenium:Options { - handle externalObj = org_openqa_selenium_firefox_FirefoxDriver_manage(self.jObj); - orgopenqaselenium:Options newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `maybeGetBiDi` method of `org.openqa.selenium.firefox.FirefoxDriver`. - # - # + return - The `javautil:Optional` value returning from the Java mapping. - public isolated function maybeGetBiDi() returns javautil:Optional { - handle externalObj = org_openqa_selenium_firefox_FirefoxDriver_maybeGetBiDi(self.jObj); - javautil:Optional newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `maybeGetDevTools` method of `org.openqa.selenium.firefox.FirefoxDriver`. - # - # + return - The `javautil:Optional` value returning from the Java mapping. - public isolated function maybeGetDevTools() returns javautil:Optional { - handle externalObj = org_openqa_selenium_firefox_FirefoxDriver_maybeGetDevTools(self.jObj); - javautil:Optional newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `navigate` method of `org.openqa.selenium.firefox.FirefoxDriver`. - # - # + return - The `orgopenqaselenium:Navigation` value returning from the Java mapping. - public isolated function navigate() returns orgopenqaselenium:Navigation { - handle externalObj = org_openqa_selenium_firefox_FirefoxDriver_navigate(self.jObj); - orgopenqaselenium:Navigation newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `network` method of `org.openqa.selenium.firefox.FirefoxDriver`. - # - # + return - The `orgopenqaseleniumremote:Network` value returning from the Java mapping. - public isolated function network() returns orgopenqaseleniumremote:Network { - handle externalObj = org_openqa_selenium_firefox_FirefoxDriver_network(self.jObj); - orgopenqaseleniumremote:Network newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `notify` method of `org.openqa.selenium.firefox.FirefoxDriver`. - public isolated function notify() { - org_openqa_selenium_firefox_FirefoxDriver_notify(self.jObj); - } - - # The function that maps to the `notifyAll` method of `org.openqa.selenium.firefox.FirefoxDriver`. - public isolated function notifyAll() { - org_openqa_selenium_firefox_FirefoxDriver_notifyAll(self.jObj); - } - - # The function that maps to the `perform` method of `org.openqa.selenium.firefox.FirefoxDriver`. - # - # + actions - The `javautil:Collection` value required to map with the Java method parameter. - public isolated function perform(javautil:Collection actions) { - org_openqa_selenium_firefox_FirefoxDriver_perform(self.jObj, actions.jObj); - } - - # The function that maps to the `pin` method of `org.openqa.selenium.firefox.FirefoxDriver`. - # - # + script - The `string` value required to map with the Java method parameter. - # + return - The `orgopenqaselenium:ScriptKey` value returning from the Java mapping. - public isolated function pin(string script) returns orgopenqaselenium:ScriptKey { - handle externalObj = org_openqa_selenium_firefox_FirefoxDriver_pin(self.jObj, java:fromString(script)); - orgopenqaselenium:ScriptKey newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `print` method of `org.openqa.selenium.firefox.FirefoxDriver`. - # - # + printOptions - The `orgopenqaseleniumprint:PrintOptions` value required to map with the Java method parameter. - # + return - The `orgopenqaselenium:Pdf` value returning from the Java mapping. - public isolated function print(orgopenqaseleniumprint:PrintOptions printOptions) returns orgopenqaselenium:Pdf { - handle externalObj = org_openqa_selenium_firefox_FirefoxDriver_print(self.jObj, printOptions.jObj); - orgopenqaselenium:Pdf newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `quit` method of `org.openqa.selenium.firefox.FirefoxDriver`. - public isolated function quit() { - org_openqa_selenium_firefox_FirefoxDriver_quit(self.jObj); - } - - # The function that maps to the `removeVirtualAuthenticator` method of `org.openqa.selenium.firefox.FirefoxDriver`. - # - # + authenticator - The `orgopenqaseleniumvirtualauthenticator:VirtualAuthenticator` value required to map with the Java method parameter. - public isolated function removeVirtualAuthenticator(orgopenqaseleniumvirtualauthenticator:VirtualAuthenticator authenticator) { - org_openqa_selenium_firefox_FirefoxDriver_removeVirtualAuthenticator(self.jObj, authenticator.jObj); - } - - # The function that maps to the `requireDownloadsEnabled` method of `org.openqa.selenium.firefox.FirefoxDriver`. - # - # + capabilities - The `orgopenqaselenium:Capabilities` value required to map with the Java method parameter. - public isolated function requireDownloadsEnabled(orgopenqaselenium:Capabilities capabilities) { - org_openqa_selenium_firefox_FirefoxDriver_requireDownloadsEnabled(self.jObj, capabilities.jObj); - } - - # The function that maps to the `resetCooldown` method of `org.openqa.selenium.firefox.FirefoxDriver`. - public isolated function resetCooldown() { - org_openqa_selenium_firefox_FirefoxDriver_resetCooldown(self.jObj); - } - - # The function that maps to the `resetInputState` method of `org.openqa.selenium.firefox.FirefoxDriver`. - public isolated function resetInputState() { - org_openqa_selenium_firefox_FirefoxDriver_resetInputState(self.jObj); - } - - # The function that maps to the `script` method of `org.openqa.selenium.firefox.FirefoxDriver`. - # - # + return - The `orgopenqaseleniumremote:Script` value returning from the Java mapping. - public isolated function script() returns orgopenqaseleniumremote:Script { - handle externalObj = org_openqa_selenium_firefox_FirefoxDriver_script(self.jObj); - orgopenqaseleniumremote:Script newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `setContext` method of `org.openqa.selenium.firefox.FirefoxDriver`. - # - # + commandContext - The `FirefoxCommandContext` value required to map with the Java method parameter. - public isolated function setContext(FirefoxCommandContext commandContext) { - org_openqa_selenium_firefox_FirefoxDriver_setContext(self.jObj, commandContext.jObj); - } - - # The function that maps to the `setDelayEnabled` method of `org.openqa.selenium.firefox.FirefoxDriver`. - # - # + enabled - The `boolean` value required to map with the Java method parameter. - public isolated function setDelayEnabled(boolean enabled) { - org_openqa_selenium_firefox_FirefoxDriver_setDelayEnabled(self.jObj, enabled); - } - - # The function that maps to the `setErrorHandler` method of `org.openqa.selenium.firefox.FirefoxDriver`. - # - # + handler - The `orgopenqaseleniumremote:ErrorHandler` value required to map with the Java method parameter. - public isolated function setErrorHandler(orgopenqaseleniumremote:ErrorHandler handler) { - org_openqa_selenium_firefox_FirefoxDriver_setErrorHandler(self.jObj, handler.jObj); - } - - # The function that maps to the `setFileDetector` method of `org.openqa.selenium.firefox.FirefoxDriver`. - # - # + detector - The `orgopenqaseleniumremote:FileDetector` value required to map with the Java method parameter. - public isolated function setFileDetector(orgopenqaseleniumremote:FileDetector detector) { - org_openqa_selenium_firefox_FirefoxDriver_setFileDetector(self.jObj, detector.jObj); - } - - # The function that maps to the `setLogLevel` method of `org.openqa.selenium.firefox.FirefoxDriver`. - # - # + level - The `javautillogging:Level` value required to map with the Java method parameter. - public isolated function setLogLevel(javautillogging:Level level) { - org_openqa_selenium_firefox_FirefoxDriver_setLogLevel(self.jObj, level.jObj); - } - - # The function that maps to the `switchTo` method of `org.openqa.selenium.firefox.FirefoxDriver`. - # - # + return - The `orgopenqaselenium:TargetLocator` value returning from the Java mapping. - public isolated function switchTo() returns orgopenqaselenium:TargetLocator { - handle externalObj = org_openqa_selenium_firefox_FirefoxDriver_switchTo(self.jObj); - orgopenqaselenium:TargetLocator newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `uninstallExtension` method of `org.openqa.selenium.firefox.FirefoxDriver`. - # - # + extensionId - The `string` value required to map with the Java method parameter. - public isolated function uninstallExtension(string extensionId) { - org_openqa_selenium_firefox_FirefoxDriver_uninstallExtension(self.jObj, java:fromString(extensionId)); - } - - # The function that maps to the `unpin` method of `org.openqa.selenium.firefox.FirefoxDriver`. - # - # + 'key - The `orgopenqaselenium:ScriptKey` value required to map with the Java method parameter. - public isolated function unpin(orgopenqaselenium:ScriptKey 'key) { - org_openqa_selenium_firefox_FirefoxDriver_unpin(self.jObj, 'key.jObj); - } - - # The function that maps to the `wait` method of `org.openqa.selenium.firefox.FirefoxDriver`. - # - # + return - The `javalang:InterruptedException` value returning from the Java mapping. - public isolated function 'wait() returns javalang:InterruptedException? { - error|() externalObj = org_openqa_selenium_firefox_FirefoxDriver_wait(self.jObj); - if (externalObj is error) { - javalang:InterruptedException e = error javalang:InterruptedException(javalang:INTERRUPTEDEXCEPTION, externalObj, message = externalObj.message()); - return e; - } - } - - # The function that maps to the `wait` method of `org.openqa.selenium.firefox.FirefoxDriver`. - # - # + arg0 - The `int` value required to map with the Java method parameter. - # + return - The `javalang:InterruptedException` value returning from the Java mapping. - public isolated function wait2(int arg0) returns javalang:InterruptedException? { - error|() externalObj = org_openqa_selenium_firefox_FirefoxDriver_wait2(self.jObj, arg0); - if (externalObj is error) { - javalang:InterruptedException e = error javalang:InterruptedException(javalang:INTERRUPTEDEXCEPTION, externalObj, message = externalObj.message()); - return e; - } - } - - # The function that maps to the `wait` method of `org.openqa.selenium.firefox.FirefoxDriver`. - # - # + arg0 - The `int` value required to map with the Java method parameter. - # + arg1 - The `int` value required to map with the Java method parameter. - # + return - The `javalang:InterruptedException` value returning from the Java mapping. - public isolated function wait3(int arg0, int arg1) returns javalang:InterruptedException? { - error|() externalObj = org_openqa_selenium_firefox_FirefoxDriver_wait3(self.jObj, arg0, arg1); - if (externalObj is error) { - javalang:InterruptedException e = error javalang:InterruptedException(javalang:INTERRUPTEDEXCEPTION, externalObj, message = externalObj.message()); - return e; - } - } - -} - -# The constructor function to generate an object of `org.openqa.selenium.firefox.FirefoxDriver`. -# -# + return - The new `FirefoxDriver` class generated. -public isolated function newFirefoxDriver1() returns FirefoxDriver { - handle externalObj = org_openqa_selenium_firefox_FirefoxDriver_newFirefoxDriver1(); - FirefoxDriver newObj = new (externalObj); - return newObj; -} - -# The constructor function to generate an object of `org.openqa.selenium.firefox.FirefoxDriver`. -# -# + 'service - The `FirefoxDriverService` value required to map with the Java constructor parameter. -# + return - The new `FirefoxDriver` class generated. -public isolated function newFirefoxDriver2(FirefoxDriverService 'service) returns FirefoxDriver { - handle externalObj = org_openqa_selenium_firefox_FirefoxDriver_newFirefoxDriver2('service.jObj); - FirefoxDriver newObj = new (externalObj); - return newObj; -} - -# The constructor function to generate an object of `org.openqa.selenium.firefox.FirefoxDriver`. -# -# + 'service - The `FirefoxDriverService` value required to map with the Java constructor parameter. -# + options - The `FirefoxOptions` value required to map with the Java constructor parameter. -# + return - The new `FirefoxDriver` class generated. -public isolated function newFirefoxDriver3(FirefoxDriverService 'service, FirefoxOptions options) returns FirefoxDriver { - handle externalObj = org_openqa_selenium_firefox_FirefoxDriver_newFirefoxDriver3('service.jObj, options.jObj); - FirefoxDriver newObj = new (externalObj); - return newObj; -} - -# The constructor function to generate an object of `org.openqa.selenium.firefox.FirefoxDriver`. -# -# + 'service - The `FirefoxDriverService` value required to map with the Java constructor parameter. -# + options - The `FirefoxOptions` value required to map with the Java constructor parameter. -# + clientConfig - The `orgopenqaseleniumremotehttp:ClientConfig` value required to map with the Java constructor parameter. -# + return - The new `FirefoxDriver` class generated. -public isolated function newFirefoxDriver4(FirefoxDriverService 'service, FirefoxOptions options, orgopenqaseleniumremotehttp:ClientConfig clientConfig) returns FirefoxDriver { - handle externalObj = org_openqa_selenium_firefox_FirefoxDriver_newFirefoxDriver4('service.jObj, options.jObj, clientConfig.jObj); - FirefoxDriver newObj = new (externalObj); - return newObj; -} - -# The constructor function to generate an object of `org.openqa.selenium.firefox.FirefoxDriver`. -# -# + options - The `FirefoxOptions` value required to map with the Java constructor parameter. -# + return - The new `FirefoxDriver` class generated. -public isolated function newFirefoxDriver5(FirefoxOptions options) returns FirefoxDriver { - handle externalObj = org_openqa_selenium_firefox_FirefoxDriver_newFirefoxDriver5(options.jObj); - FirefoxDriver newObj = new (externalObj); - return newObj; -} - -# The function that maps to the `builder` method of `org.openqa.selenium.firefox.FirefoxDriver`. -# -# + return - The `orgopenqaseleniumremote:RemoteWebDriverBuilder` value returning from the Java mapping. -public isolated function FirefoxDriver_builder() returns orgopenqaseleniumremote:RemoteWebDriverBuilder { - handle externalObj = org_openqa_selenium_firefox_FirefoxDriver_builder(); - orgopenqaseleniumremote:RemoteWebDriverBuilder newObj = new (externalObj); - return newObj; -} - -isolated function org_openqa_selenium_firefox_FirefoxDriver_addVirtualAuthenticator(handle receiver, handle options) returns handle = @java:Method { - name: "addVirtualAuthenticator", - 'class: "org.openqa.selenium.firefox.FirefoxDriver", - paramTypes: ["org.openqa.selenium.virtualauthenticator.VirtualAuthenticatorOptions"] -} external; - -isolated function org_openqa_selenium_firefox_FirefoxDriver_builder() returns handle = @java:Method { - name: "builder", - 'class: "org.openqa.selenium.firefox.FirefoxDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_firefox_FirefoxDriver_close(handle receiver) = @java:Method { - name: "close", - 'class: "org.openqa.selenium.firefox.FirefoxDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_firefox_FirefoxDriver_deleteDownloadableFiles(handle receiver) = @java:Method { - name: "deleteDownloadableFiles", - 'class: "org.openqa.selenium.firefox.FirefoxDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_firefox_FirefoxDriver_downloadFile(handle receiver, handle fileName, handle targetLocation) returns error? = @java:Method { - name: "downloadFile", - 'class: "org.openqa.selenium.firefox.FirefoxDriver", - paramTypes: ["java.lang.String", "java.nio.file.Path"] -} external; - -isolated function org_openqa_selenium_firefox_FirefoxDriver_equals(handle receiver, handle arg0) returns boolean = @java:Method { - name: "equals", - 'class: "org.openqa.selenium.firefox.FirefoxDriver", - paramTypes: ["java.lang.Object"] -} external; - -isolated function org_openqa_selenium_firefox_FirefoxDriver_executeAsyncScript(handle receiver, handle script, handle args) returns handle = @java:Method { - name: "executeAsyncScript", - 'class: "org.openqa.selenium.firefox.FirefoxDriver", - paramTypes: ["java.lang.String", "[Ljava.lang.Object;"] -} external; - -isolated function org_openqa_selenium_firefox_FirefoxDriver_executeScript(handle receiver, handle 'key, handle args) returns handle = @java:Method { - name: "executeScript", - 'class: "org.openqa.selenium.firefox.FirefoxDriver", - paramTypes: ["org.openqa.selenium.ScriptKey", "[Ljava.lang.Object;"] -} external; - -isolated function org_openqa_selenium_firefox_FirefoxDriver_executeScript2(handle receiver, handle script, handle args) returns handle = @java:Method { - name: "executeScript", - 'class: "org.openqa.selenium.firefox.FirefoxDriver", - paramTypes: ["java.lang.String", "[Ljava.lang.Object;"] -} external; - -isolated function org_openqa_selenium_firefox_FirefoxDriver_findElement(handle receiver, handle locator) returns handle = @java:Method { - name: "findElement", - 'class: "org.openqa.selenium.firefox.FirefoxDriver", - paramTypes: ["org.openqa.selenium.By"] -} external; - -isolated function org_openqa_selenium_firefox_FirefoxDriver_findElements(handle receiver, handle locator) returns handle = @java:Method { - name: "findElements", - 'class: "org.openqa.selenium.firefox.FirefoxDriver", - paramTypes: ["org.openqa.selenium.By"] -} external; - -isolated function org_openqa_selenium_firefox_FirefoxDriver_findElements2(handle receiver, handle context, handle findCommand, handle locator) returns handle = @java:Method { - name: "findElements", - 'class: "org.openqa.selenium.firefox.FirefoxDriver", - paramTypes: ["org.openqa.selenium.SearchContext", "java.util.function.BiFunction", "org.openqa.selenium.By"] -} external; - -isolated function org_openqa_selenium_firefox_FirefoxDriver_get(handle receiver, handle url) = @java:Method { - name: "get", - 'class: "org.openqa.selenium.firefox.FirefoxDriver", - paramTypes: ["java.lang.String"] -} external; - -isolated function org_openqa_selenium_firefox_FirefoxDriver_getBiDi(handle receiver) returns handle = @java:Method { - name: "getBiDi", - 'class: "org.openqa.selenium.firefox.FirefoxDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_firefox_FirefoxDriver_getCapabilities(handle receiver) returns handle = @java:Method { - name: "getCapabilities", - 'class: "org.openqa.selenium.firefox.FirefoxDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_firefox_FirefoxDriver_getClass(handle receiver) returns handle = @java:Method { - name: "getClass", - 'class: "org.openqa.selenium.firefox.FirefoxDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_firefox_FirefoxDriver_getCommandExecutor(handle receiver) returns handle = @java:Method { - name: "getCommandExecutor", - 'class: "org.openqa.selenium.firefox.FirefoxDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_firefox_FirefoxDriver_getContext(handle receiver) returns handle = @java:Method { - name: "getContext", - 'class: "org.openqa.selenium.firefox.FirefoxDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_firefox_FirefoxDriver_getCurrentUrl(handle receiver) returns handle = @java:Method { - name: "getCurrentUrl", - 'class: "org.openqa.selenium.firefox.FirefoxDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_firefox_FirefoxDriver_getDevTools(handle receiver) returns handle = @java:Method { - name: "getDevTools", - 'class: "org.openqa.selenium.firefox.FirefoxDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_firefox_FirefoxDriver_getDownloadableFiles(handle receiver) returns handle = @java:Method { - name: "getDownloadableFiles", - 'class: "org.openqa.selenium.firefox.FirefoxDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_firefox_FirefoxDriver_getErrorHandler(handle receiver) returns handle = @java:Method { - name: "getErrorHandler", - 'class: "org.openqa.selenium.firefox.FirefoxDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_firefox_FirefoxDriver_getFederatedCredentialManagementDialog(handle receiver) returns handle = @java:Method { - name: "getFederatedCredentialManagementDialog", - 'class: "org.openqa.selenium.firefox.FirefoxDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_firefox_FirefoxDriver_getFileDetector(handle receiver) returns handle = @java:Method { - name: "getFileDetector", - 'class: "org.openqa.selenium.firefox.FirefoxDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_firefox_FirefoxDriver_getFullPageScreenshotAs(handle receiver, handle outputType) returns handle = @java:Method { - name: "getFullPageScreenshotAs", - 'class: "org.openqa.selenium.firefox.FirefoxDriver", - paramTypes: ["org.openqa.selenium.OutputType"] -} external; - -isolated function org_openqa_selenium_firefox_FirefoxDriver_getLocalStorage(handle receiver) returns handle = @java:Method { - name: "getLocalStorage", - 'class: "org.openqa.selenium.firefox.FirefoxDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_firefox_FirefoxDriver_getPageSource(handle receiver) returns handle = @java:Method { - name: "getPageSource", - 'class: "org.openqa.selenium.firefox.FirefoxDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_firefox_FirefoxDriver_getPinnedScripts(handle receiver) returns handle = @java:Method { - name: "getPinnedScripts", - 'class: "org.openqa.selenium.firefox.FirefoxDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_firefox_FirefoxDriver_getScreenshotAs(handle receiver, handle outputType) returns handle = @java:Method { - name: "getScreenshotAs", - 'class: "org.openqa.selenium.firefox.FirefoxDriver", - paramTypes: ["org.openqa.selenium.OutputType"] -} external; - -isolated function org_openqa_selenium_firefox_FirefoxDriver_getSessionId(handle receiver) returns handle = @java:Method { - name: "getSessionId", - 'class: "org.openqa.selenium.firefox.FirefoxDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_firefox_FirefoxDriver_getSessionStorage(handle receiver) returns handle = @java:Method { - name: "getSessionStorage", - 'class: "org.openqa.selenium.firefox.FirefoxDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_firefox_FirefoxDriver_getTitle(handle receiver) returns handle = @java:Method { - name: "getTitle", - 'class: "org.openqa.selenium.firefox.FirefoxDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_firefox_FirefoxDriver_getWindowHandle(handle receiver) returns handle = @java:Method { - name: "getWindowHandle", - 'class: "org.openqa.selenium.firefox.FirefoxDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_firefox_FirefoxDriver_getWindowHandles(handle receiver) returns handle = @java:Method { - name: "getWindowHandles", - 'class: "org.openqa.selenium.firefox.FirefoxDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_firefox_FirefoxDriver_hashCode(handle receiver) returns int = @java:Method { - name: "hashCode", - 'class: "org.openqa.selenium.firefox.FirefoxDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_firefox_FirefoxDriver_installExtension(handle receiver, handle path) returns handle = @java:Method { - name: "installExtension", - 'class: "org.openqa.selenium.firefox.FirefoxDriver", - paramTypes: ["java.nio.file.Path"] -} external; - -isolated function org_openqa_selenium_firefox_FirefoxDriver_installExtension2(handle receiver, handle path, handle temporary) returns handle = @java:Method { - name: "installExtension", - 'class: "org.openqa.selenium.firefox.FirefoxDriver", - paramTypes: ["java.nio.file.Path", "java.lang.Boolean"] -} external; - -isolated function org_openqa_selenium_firefox_FirefoxDriver_manage(handle receiver) returns handle = @java:Method { - name: "manage", - 'class: "org.openqa.selenium.firefox.FirefoxDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_firefox_FirefoxDriver_maybeGetBiDi(handle receiver) returns handle = @java:Method { - name: "maybeGetBiDi", - 'class: "org.openqa.selenium.firefox.FirefoxDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_firefox_FirefoxDriver_maybeGetDevTools(handle receiver) returns handle = @java:Method { - name: "maybeGetDevTools", - 'class: "org.openqa.selenium.firefox.FirefoxDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_firefox_FirefoxDriver_navigate(handle receiver) returns handle = @java:Method { - name: "navigate", - 'class: "org.openqa.selenium.firefox.FirefoxDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_firefox_FirefoxDriver_network(handle receiver) returns handle = @java:Method { - name: "network", - 'class: "org.openqa.selenium.firefox.FirefoxDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_firefox_FirefoxDriver_notify(handle receiver) = @java:Method { - name: "notify", - 'class: "org.openqa.selenium.firefox.FirefoxDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_firefox_FirefoxDriver_notifyAll(handle receiver) = @java:Method { - name: "notifyAll", - 'class: "org.openqa.selenium.firefox.FirefoxDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_firefox_FirefoxDriver_perform(handle receiver, handle actions) = @java:Method { - name: "perform", - 'class: "org.openqa.selenium.firefox.FirefoxDriver", - paramTypes: ["java.util.Collection"] -} external; - -isolated function org_openqa_selenium_firefox_FirefoxDriver_pin(handle receiver, handle script) returns handle = @java:Method { - name: "pin", - 'class: "org.openqa.selenium.firefox.FirefoxDriver", - paramTypes: ["java.lang.String"] -} external; - -isolated function org_openqa_selenium_firefox_FirefoxDriver_print(handle receiver, handle printOptions) returns handle = @java:Method { - name: "print", - 'class: "org.openqa.selenium.firefox.FirefoxDriver", - paramTypes: ["org.openqa.selenium.print.PrintOptions"] -} external; - -isolated function org_openqa_selenium_firefox_FirefoxDriver_quit(handle receiver) = @java:Method { - name: "quit", - 'class: "org.openqa.selenium.firefox.FirefoxDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_firefox_FirefoxDriver_removeVirtualAuthenticator(handle receiver, handle authenticator) = @java:Method { - name: "removeVirtualAuthenticator", - 'class: "org.openqa.selenium.firefox.FirefoxDriver", - paramTypes: ["org.openqa.selenium.virtualauthenticator.VirtualAuthenticator"] -} external; - -isolated function org_openqa_selenium_firefox_FirefoxDriver_requireDownloadsEnabled(handle receiver, handle capabilities) = @java:Method { - name: "requireDownloadsEnabled", - 'class: "org.openqa.selenium.firefox.FirefoxDriver", - paramTypes: ["org.openqa.selenium.Capabilities"] -} external; - -isolated function org_openqa_selenium_firefox_FirefoxDriver_resetCooldown(handle receiver) = @java:Method { - name: "resetCooldown", - 'class: "org.openqa.selenium.firefox.FirefoxDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_firefox_FirefoxDriver_resetInputState(handle receiver) = @java:Method { - name: "resetInputState", - 'class: "org.openqa.selenium.firefox.FirefoxDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_firefox_FirefoxDriver_script(handle receiver) returns handle = @java:Method { - name: "script", - 'class: "org.openqa.selenium.firefox.FirefoxDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_firefox_FirefoxDriver_setContext(handle receiver, handle commandContext) = @java:Method { - name: "setContext", - 'class: "org.openqa.selenium.firefox.FirefoxDriver", - paramTypes: ["org.openqa.selenium.firefox.FirefoxCommandContext"] -} external; - -isolated function org_openqa_selenium_firefox_FirefoxDriver_setDelayEnabled(handle receiver, boolean enabled) = @java:Method { - name: "setDelayEnabled", - 'class: "org.openqa.selenium.firefox.FirefoxDriver", - paramTypes: ["boolean"] -} external; - -isolated function org_openqa_selenium_firefox_FirefoxDriver_setErrorHandler(handle receiver, handle handler) = @java:Method { - name: "setErrorHandler", - 'class: "org.openqa.selenium.firefox.FirefoxDriver", - paramTypes: ["org.openqa.selenium.remote.ErrorHandler"] -} external; - -isolated function org_openqa_selenium_firefox_FirefoxDriver_setFileDetector(handle receiver, handle detector) = @java:Method { - name: "setFileDetector", - 'class: "org.openqa.selenium.firefox.FirefoxDriver", - paramTypes: ["org.openqa.selenium.remote.FileDetector"] -} external; - -isolated function org_openqa_selenium_firefox_FirefoxDriver_setLogLevel(handle receiver, handle level) = @java:Method { - name: "setLogLevel", - 'class: "org.openqa.selenium.firefox.FirefoxDriver", - paramTypes: ["java.util.logging.Level"] -} external; - -isolated function org_openqa_selenium_firefox_FirefoxDriver_switchTo(handle receiver) returns handle = @java:Method { - name: "switchTo", - 'class: "org.openqa.selenium.firefox.FirefoxDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_firefox_FirefoxDriver_uninstallExtension(handle receiver, handle extensionId) = @java:Method { - name: "uninstallExtension", - 'class: "org.openqa.selenium.firefox.FirefoxDriver", - paramTypes: ["java.lang.String"] -} external; - -isolated function org_openqa_selenium_firefox_FirefoxDriver_unpin(handle receiver, handle 'key) = @java:Method { - name: "unpin", - 'class: "org.openqa.selenium.firefox.FirefoxDriver", - paramTypes: ["org.openqa.selenium.ScriptKey"] -} external; - -isolated function org_openqa_selenium_firefox_FirefoxDriver_wait(handle receiver) returns error? = @java:Method { - name: "wait", - 'class: "org.openqa.selenium.firefox.FirefoxDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_firefox_FirefoxDriver_wait2(handle receiver, int arg0) returns error? = @java:Method { - name: "wait", - 'class: "org.openqa.selenium.firefox.FirefoxDriver", - paramTypes: ["long"] -} external; - -isolated function org_openqa_selenium_firefox_FirefoxDriver_wait3(handle receiver, int arg0, int arg1) returns error? = @java:Method { - name: "wait", - 'class: "org.openqa.selenium.firefox.FirefoxDriver", - paramTypes: ["long", "int"] -} external; - -isolated function org_openqa_selenium_firefox_FirefoxDriver_newFirefoxDriver1() returns handle = @java:Constructor { - 'class: "org.openqa.selenium.firefox.FirefoxDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_firefox_FirefoxDriver_newFirefoxDriver2(handle 'service) returns handle = @java:Constructor { - 'class: "org.openqa.selenium.firefox.FirefoxDriver", - paramTypes: ["org.openqa.selenium.firefox.FirefoxDriverService"] -} external; - -isolated function org_openqa_selenium_firefox_FirefoxDriver_newFirefoxDriver3(handle 'service, handle options) returns handle = @java:Constructor { - 'class: "org.openqa.selenium.firefox.FirefoxDriver", - paramTypes: ["org.openqa.selenium.firefox.FirefoxDriverService", "org.openqa.selenium.firefox.FirefoxOptions"] -} external; - -isolated function org_openqa_selenium_firefox_FirefoxDriver_newFirefoxDriver4(handle 'service, handle options, handle clientConfig) returns handle = @java:Constructor { - 'class: "org.openqa.selenium.firefox.FirefoxDriver", - paramTypes: ["org.openqa.selenium.firefox.FirefoxDriverService", "org.openqa.selenium.firefox.FirefoxOptions", "org.openqa.selenium.remote.http.ClientConfig"] -} external; - -isolated function org_openqa_selenium_firefox_FirefoxDriver_newFirefoxDriver5(handle options) returns handle = @java:Constructor { - 'class: "org.openqa.selenium.firefox.FirefoxDriver", - paramTypes: ["org.openqa.selenium.firefox.FirefoxOptions"] -} external; - diff --git a/ballerina/modules/firefox/FirefoxDriverService.bal b/ballerina/modules/firefox/FirefoxDriverService.bal deleted file mode 100644 index 9ea6fcc..0000000 --- a/ballerina/modules/firefox/FirefoxDriverService.bal +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). -// -// WSO2 LLC. licenses this file to you under the Apache License, -// Version 2.0 (the "License"); you may not use this file except -// in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -import ballerina/jballerina.java; - -# Ballerina class mapping for the Java `org.openqa.selenium.firefox.FirefoxDriverService` class. -@java:Binding {'class: "org.openqa.selenium.firefox.FirefoxDriverService"} -public distinct class FirefoxDriverService { - - *java:JObject; - - # The `handle` field that stores the reference to the `org.openqa.selenium.firefox.FirefoxDriverService` object. - public handle jObj; - - # The init function of the Ballerina class mapping the `org.openqa.selenium.firefox.FirefoxDriverService` Java class. - # - # + obj - The `handle` value containing the Java reference of the object. - public isolated function init(handle obj) { - self.jObj = obj; - } - - # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.firefox.FirefoxDriverService` Java class. - # - # + return - The `string` form of the Java object instance. - public isolated function toString() returns string { - return java:toString(self.jObj) ?: ""; - } - -} - diff --git a/ballerina/modules/firefox/FirefoxOptions.bal b/ballerina/modules/firefox/FirefoxOptions.bal deleted file mode 100644 index 3acb89a..0000000 --- a/ballerina/modules/firefox/FirefoxOptions.bal +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). -// -// WSO2 LLC. licenses this file to you under the Apache License, -// Version 2.0 (the "License"); you may not use this file except -// in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -import ballerina/jballerina.java; - -# Ballerina class mapping for the Java `org.openqa.selenium.firefox.FirefoxOptions` class. -@java:Binding {'class: "org.openqa.selenium.firefox.FirefoxOptions"} -public distinct class FirefoxOptions { - - *java:JObject; - - # The `handle` field that stores the reference to the `org.openqa.selenium.firefox.FirefoxOptions` object. - public handle jObj; - - # The init function of the Ballerina class mapping the `org.openqa.selenium.firefox.FirefoxOptions` Java class. - # - # + obj - The `handle` value containing the Java reference of the object. - public isolated function init(handle obj) { - self.jObj = obj; - } - - # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.firefox.FirefoxOptions` Java class. - # - # + return - The `string` form of the Java object instance. - public isolated function toString() returns string { - return java:toString(self.jObj) ?: ""; - } - -} - diff --git a/ballerina/modules/java.lang/Boolean.bal b/ballerina/modules/java.lang/Boolean.bal deleted file mode 100644 index 4e241fa..0000000 --- a/ballerina/modules/java.lang/Boolean.bal +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). -// -// WSO2 LLC. licenses this file to you under the Apache License, -// Version 2.0 (the "License"); you may not use this file except -// in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -import ballerina/jballerina.java; - -# Ballerina class mapping for the Java `java.lang.Boolean` class. -@java:Binding {'class: "java.lang.Boolean"} -public distinct class Boolean { - - *java:JObject; - - # The `handle` field that stores the reference to the `java.lang.Boolean` object. - public handle jObj; - - # The init function of the Ballerina class mapping the `java.lang.Boolean` Java class. - # - # + obj - The `handle` value containing the Java reference of the object. - public isolated function init(handle obj) { - self.jObj = obj; - } - - # The function to retrieve the string representation of the Ballerina class mapping the `java.lang.Boolean` Java class. - # - # + return - The `string` form of the Java object instance. - public isolated function toString() returns string { - return java:toString(self.jObj) ?: ""; - } - -} - diff --git a/ballerina/modules/java.lang/CharSequence.bal b/ballerina/modules/java.lang/CharSequence.bal deleted file mode 100644 index 250a703..0000000 --- a/ballerina/modules/java.lang/CharSequence.bal +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). -// -// WSO2 LLC. licenses this file to you under the Apache License, -// Version 2.0 (the "License"); you may not use this file except -// in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -import ballerina/jballerina.java; - -# Ballerina class mapping for the Java `java.lang.CharSequence` interface. -@java:Binding {'class: "java.lang.CharSequence"} -public distinct class CharSequence { - - *java:JObject; - - # The `handle` field that stores the reference to the `java.lang.CharSequence` object. - public handle jObj; - - # The init function of the Ballerina class mapping the `java.lang.CharSequence` Java interface. - # - # + obj - The `handle` value containing the Java reference of the object. - public isolated function init(handle obj) { - self.jObj = obj; - } - - # The function to retrieve the string representation of the Ballerina class mapping the `java.lang.CharSequence` Java interface. - # - # + return - The `string` form of the Java object instance. - public isolated function toString() returns string { - return java:toString(self.jObj) ?: ""; - } - -} - diff --git a/ballerina/modules/java.lang/Class.bal b/ballerina/modules/java.lang/Class.bal deleted file mode 100644 index 5e36048..0000000 --- a/ballerina/modules/java.lang/Class.bal +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). -// -// WSO2 LLC. licenses this file to you under the Apache License, -// Version 2.0 (the "License"); you may not use this file except -// in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -import ballerina/jballerina.java; - -# Ballerina class mapping for the Java `java.lang.Class` class. -@java:Binding {'class: "java.lang.Class"} -public distinct class Class { - - *java:JObject; - - # The `handle` field that stores the reference to the `java.lang.Class` object. - public handle jObj; - - # The init function of the Ballerina class mapping the `java.lang.Class` Java class. - # - # + obj - The `handle` value containing the Java reference of the object. - public isolated function init(handle obj) { - self.jObj = obj; - } - - # The function to retrieve the string representation of the Ballerina class mapping the `java.lang.Class` Java class. - # - # + return - The `string` form of the Java object instance. - public isolated function toString() returns string { - return java:toString(self.jObj) ?: ""; - } - -} - diff --git a/ballerina/modules/java.lang/Object.bal b/ballerina/modules/java.lang/Object.bal deleted file mode 100644 index c460fcf..0000000 --- a/ballerina/modules/java.lang/Object.bal +++ /dev/null @@ -1,175 +0,0 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). -// -// WSO2 LLC. licenses this file to you under the Apache License, -// Version 2.0 (the "License"); you may not use this file except -// in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -import ballerina/jballerina.java; - -# Ballerina class mapping for the Java `java.lang.Object` class. -@java:Binding {'class: "java.lang.Object"} -public distinct class Object { - - *java:JObject; - - # The `handle` field that stores the reference to the `java.lang.Object` object. - public handle jObj; - - # The init function of the Ballerina class mapping the `java.lang.Object` Java class. - # - # + obj - The `handle` value containing the Java reference of the object. - public isolated function init(handle obj) { - self.jObj = obj; - } - - # The function to retrieve the string representation of the Ballerina class mapping the `java.lang.Object` Java class. - # - # + return - The `string` form of the Java object instance. - public isolated function toString() returns string { - return java:toString(self.jObj) ?: ""; - } - - # The function that maps to the `equals` method of `java.lang.Object`. - # - # + arg0 - The `Object` value required to map with the Java method parameter. - # + return - The `boolean` value returning from the Java mapping. - public isolated function 'equals(Object arg0) returns boolean { - return java_lang_Object_equals(self.jObj, arg0.jObj); - } - - # The function that maps to the `getClass` method of `java.lang.Object`. - # - # + return - The `Class` value returning from the Java mapping. - public isolated function getClass() returns Class { - handle externalObj = java_lang_Object_getClass(self.jObj); - Class newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `hashCode` method of `java.lang.Object`. - # - # + return - The `int` value returning from the Java mapping. - public isolated function hashCode() returns int { - return java_lang_Object_hashCode(self.jObj); - } - - # The function that maps to the `notify` method of `java.lang.Object`. - public isolated function notify() { - java_lang_Object_notify(self.jObj); - } - - # The function that maps to the `notifyAll` method of `java.lang.Object`. - public isolated function notifyAll() { - java_lang_Object_notifyAll(self.jObj); - } - - # The function that maps to the `wait` method of `java.lang.Object`. - # - # + return - The `InterruptedException` value returning from the Java mapping. - public isolated function 'wait() returns InterruptedException? { - error|() externalObj = java_lang_Object_wait(self.jObj); - if (externalObj is error) { - InterruptedException e = error InterruptedException(INTERRUPTEDEXCEPTION, externalObj, message = externalObj.message()); - return e; - } - } - - # The function that maps to the `wait` method of `java.lang.Object`. - # - # + arg0 - The `int` value required to map with the Java method parameter. - # + return - The `InterruptedException` value returning from the Java mapping. - public isolated function wait2(int arg0) returns InterruptedException? { - error|() externalObj = java_lang_Object_wait2(self.jObj, arg0); - if (externalObj is error) { - InterruptedException e = error InterruptedException(INTERRUPTEDEXCEPTION, externalObj, message = externalObj.message()); - return e; - } - } - - # The function that maps to the `wait` method of `java.lang.Object`. - # - # + arg0 - The `int` value required to map with the Java method parameter. - # + arg1 - The `int` value required to map with the Java method parameter. - # + return - The `InterruptedException` value returning from the Java mapping. - public isolated function wait3(int arg0, int arg1) returns InterruptedException? { - error|() externalObj = java_lang_Object_wait3(self.jObj, arg0, arg1); - if (externalObj is error) { - InterruptedException e = error InterruptedException(INTERRUPTEDEXCEPTION, externalObj, message = externalObj.message()); - return e; - } - } - -} - -# The constructor function to generate an object of `java.lang.Object`. -# -# + return - The new `Object` class generated. -public isolated function newObject1() returns Object { - handle externalObj = java_lang_Object_newObject1(); - Object newObj = new (externalObj); - return newObj; -} - -isolated function java_lang_Object_equals(handle receiver, handle arg0) returns boolean = @java:Method { - name: "equals", - 'class: "java.lang.Object", - paramTypes: ["java.lang.Object"] -} external; - -isolated function java_lang_Object_getClass(handle receiver) returns handle = @java:Method { - name: "getClass", - 'class: "java.lang.Object", - paramTypes: [] -} external; - -isolated function java_lang_Object_hashCode(handle receiver) returns int = @java:Method { - name: "hashCode", - 'class: "java.lang.Object", - paramTypes: [] -} external; - -isolated function java_lang_Object_notify(handle receiver) = @java:Method { - name: "notify", - 'class: "java.lang.Object", - paramTypes: [] -} external; - -isolated function java_lang_Object_notifyAll(handle receiver) = @java:Method { - name: "notifyAll", - 'class: "java.lang.Object", - paramTypes: [] -} external; - -isolated function java_lang_Object_wait(handle receiver) returns error? = @java:Method { - name: "wait", - 'class: "java.lang.Object", - paramTypes: [] -} external; - -isolated function java_lang_Object_wait2(handle receiver, int arg0) returns error? = @java:Method { - name: "wait", - 'class: "java.lang.Object", - paramTypes: ["long"] -} external; - -isolated function java_lang_Object_wait3(handle receiver, int arg0, int arg1) returns error? = @java:Method { - name: "wait", - 'class: "java.lang.Object", - paramTypes: ["long", "int"] -} external; - -isolated function java_lang_Object_newObject1() returns handle = @java:Constructor { - 'class: "java.lang.Object", - paramTypes: [] -} external; - diff --git a/ballerina/modules/java.net/URL.bal b/ballerina/modules/java.net/URL.bal deleted file mode 100644 index bf97f44..0000000 --- a/ballerina/modules/java.net/URL.bal +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). -// -// WSO2 LLC. licenses this file to you under the Apache License, -// Version 2.0 (the "License"); you may not use this file except -// in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -import ballerina/jballerina.java; - -# Ballerina class mapping for the Java `java.net.URL` class. -@java:Binding {'class: "java.net.URL"} -public distinct class URL { - - *java:JObject; - - # The `handle` field that stores the reference to the `java.net.URL` object. - public handle jObj; - - # The init function of the Ballerina class mapping the `java.net.URL` Java class. - # - # + obj - The `handle` value containing the Java reference of the object. - public isolated function init(handle obj) { - self.jObj = obj; - } - - # The function to retrieve the string representation of the Ballerina class mapping the `java.net.URL` Java class. - # - # + return - The `string` form of the Java object instance. - public isolated function toString() returns string { - return java:toString(self.jObj) ?: ""; - } - -} - diff --git a/ballerina/modules/java.nio.file/Path.bal b/ballerina/modules/java.nio.file/Path.bal deleted file mode 100644 index df6a394..0000000 --- a/ballerina/modules/java.nio.file/Path.bal +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). -// -// WSO2 LLC. licenses this file to you under the Apache License, -// Version 2.0 (the "License"); you may not use this file except -// in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -import ballerina/jballerina.java; - -# Ballerina class mapping for the Java `java.nio.file.Path` interface. -@java:Binding {'class: "java.nio.file.Path"} -public distinct class Path { - - *java:JObject; - - # The `handle` field that stores the reference to the `java.nio.file.Path` object. - public handle jObj; - - # The init function of the Ballerina class mapping the `java.nio.file.Path` Java interface. - # - # + obj - The `handle` value containing the Java reference of the object. - public isolated function init(handle obj) { - self.jObj = obj; - } - - # The function to retrieve the string representation of the Ballerina class mapping the `java.nio.file.Path` Java interface. - # - # + return - The `string` form of the Java object instance. - public isolated function toString() returns string { - return java:toString(self.jObj) ?: ""; - } - -} - diff --git a/ballerina/modules/java.util.function/BiFunction.bal b/ballerina/modules/java.util.function/BiFunction.bal deleted file mode 100644 index 51ff74b..0000000 --- a/ballerina/modules/java.util.function/BiFunction.bal +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). -// -// WSO2 LLC. licenses this file to you under the Apache License, -// Version 2.0 (the "License"); you may not use this file except -// in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -import ballerina/jballerina.java; - -# Ballerina class mapping for the Java `java.util.function.BiFunction` interface. -@java:Binding {'class: "java.util.function.BiFunction"} -public distinct class BiFunction { - - *java:JObject; - - # The `handle` field that stores the reference to the `java.util.function.BiFunction` object. - public handle jObj; - - # The init function of the Ballerina class mapping the `java.util.function.BiFunction` Java interface. - # - # + obj - The `handle` value containing the Java reference of the object. - public isolated function init(handle obj) { - self.jObj = obj; - } - - # The function to retrieve the string representation of the Ballerina class mapping the `java.util.function.BiFunction` Java interface. - # - # + return - The `string` form of the Java object instance. - public isolated function toString() returns string { - return java:toString(self.jObj) ?: ""; - } - -} - diff --git a/ballerina/modules/java.util.function/Consumer.bal b/ballerina/modules/java.util.function/Consumer.bal deleted file mode 100644 index 60607d6..0000000 --- a/ballerina/modules/java.util.function/Consumer.bal +++ /dev/null @@ -1,39 +0,0 @@ -// This is an empty Ballerina class autogenerated to represent the `java.util.function.Consumer` Java interface. -// -// If you need the implementation of this class generated, please use the following command. -// -// $ bal bindgen [(-cp|--classpath) ...] -// [(-mvn|--maven) ::] -// [(-o|--output) ] -// [--public] -// (...) -// -// E.g. $ bal bindgen java.util.function.Consumer - -import ballerina/jballerina.java; - -# Ballerina class mapping for the Java `java.util.function.Consumer` interface. -@java:Binding {'class: "java.util.function.Consumer"} -public distinct class Consumer { - - *java:JObject; - - # The `handle` field that stores the reference to the `java.util.function.Consumer` object. - public handle jObj; - - # The init function of the Ballerina class mapping the `java.util.function.Consumer` Java interface. - # - # + obj - The `handle` value containing the Java reference of the object. - public function init(handle obj) { - self.jObj = obj; - } - - # The function to retrieve the string representation of the Ballerina class mapping the `java.util.function.Consumer` Java interface. - # - # + return - The `string` form of the Java object instance. - public function toString() returns string { - return java:toString(self.jObj) ?: ""; - } - -} - diff --git a/ballerina/modules/java.util.function/IntFunction.bal b/ballerina/modules/java.util.function/IntFunction.bal deleted file mode 100644 index af1564a..0000000 --- a/ballerina/modules/java.util.function/IntFunction.bal +++ /dev/null @@ -1,39 +0,0 @@ -// This is an empty Ballerina class autogenerated to represent the `java.util.function.IntFunction` Java interface. -// -// If you need the implementation of this class generated, please use the following command. -// -// $ bal bindgen [(-cp|--classpath) ...] -// [(-mvn|--maven) ::] -// [(-o|--output) ] -// [--public] -// (...) -// -// E.g. $ bal bindgen java.util.function.IntFunction - -import ballerina/jballerina.java; - -# Ballerina class mapping for the Java `java.util.function.IntFunction` interface. -@java:Binding {'class: "java.util.function.IntFunction"} -public distinct class IntFunction { - - *java:JObject; - - # The `handle` field that stores the reference to the `java.util.function.IntFunction` object. - public handle jObj; - - # The init function of the Ballerina class mapping the `java.util.function.IntFunction` Java interface. - # - # + obj - The `handle` value containing the Java reference of the object. - public function init(handle obj) { - self.jObj = obj; - } - - # The function to retrieve the string representation of the Ballerina class mapping the `java.util.function.IntFunction` Java interface. - # - # + return - The `string` form of the Java object instance. - public function toString() returns string { - return java:toString(self.jObj) ?: ""; - } - -} - diff --git a/ballerina/modules/java.util.function/Predicate.bal b/ballerina/modules/java.util.function/Predicate.bal deleted file mode 100644 index d44a977..0000000 --- a/ballerina/modules/java.util.function/Predicate.bal +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). -// -// WSO2 LLC. licenses this file to you under the Apache License, -// Version 2.0 (the "License"); you may not use this file except -// in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -import ballerina/jballerina.java; - -# Ballerina class mapping for the Java `java.util.function.Predicate` interface. -@java:Binding {'class: "java.util.function.Predicate"} -public distinct class Predicate { - - *java:JObject; - - # The `handle` field that stores the reference to the `java.util.function.Predicate` object. - public handle jObj; - - # The init function of the Ballerina class mapping the `java.util.function.Predicate` Java interface. - # - # + obj - The `handle` value containing the Java reference of the object. - public isolated function init(handle obj) { - self.jObj = obj; - } - - # The function to retrieve the string representation of the Ballerina class mapping the `java.util.function.Predicate` Java interface. - # - # + return - The `string` form of the Java object instance. - public isolated function toString() returns string { - return java:toString(self.jObj) ?: ""; - } - -} - diff --git a/ballerina/modules/java.util.function/Supplier.bal b/ballerina/modules/java.util.function/Supplier.bal deleted file mode 100644 index aa63a74..0000000 --- a/ballerina/modules/java.util.function/Supplier.bal +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). -// -// WSO2 LLC. licenses this file to you under the Apache License, -// Version 2.0 (the "License"); you may not use this file except -// in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -import ballerina/jballerina.java; - -# Ballerina class mapping for the Java `java.util.function.Supplier` interface. -@java:Binding {'class: "java.util.function.Supplier"} -public distinct class Supplier { - - *java:JObject; - - # The `handle` field that stores the reference to the `java.util.function.Supplier` object. - public handle jObj; - - # The init function of the Ballerina class mapping the `java.util.function.Supplier` Java interface. - # - # + obj - The `handle` value containing the Java reference of the object. - public isolated function init(handle obj) { - self.jObj = obj; - } - - # The function to retrieve the string representation of the Ballerina class mapping the `java.util.function.Supplier` Java interface. - # - # + return - The `string` form of the Java object instance. - public isolated function toString() returns string { - return java:toString(self.jObj) ?: ""; - } - -} - diff --git a/ballerina/modules/java.util.function/UnaryOperator.bal b/ballerina/modules/java.util.function/UnaryOperator.bal deleted file mode 100644 index 79b03de..0000000 --- a/ballerina/modules/java.util.function/UnaryOperator.bal +++ /dev/null @@ -1,39 +0,0 @@ -// This is an empty Ballerina class autogenerated to represent the `java.util.function.UnaryOperator` Java interface. -// -// If you need the implementation of this class generated, please use the following command. -// -// $ bal bindgen [(-cp|--classpath) ...] -// [(-mvn|--maven) ::] -// [(-o|--output) ] -// [--public] -// (...) -// -// E.g. $ bal bindgen java.util.function.UnaryOperator - -import ballerina/jballerina.java; - -# Ballerina class mapping for the Java `java.util.function.UnaryOperator` interface. -@java:Binding {'class: "java.util.function.UnaryOperator"} -public distinct class UnaryOperator { - - *java:JObject; - - # The `handle` field that stores the reference to the `java.util.function.UnaryOperator` object. - public handle jObj; - - # The init function of the Ballerina class mapping the `java.util.function.UnaryOperator` Java interface. - # - # + obj - The `handle` value containing the Java reference of the object. - public function init(handle obj) { - self.jObj = obj; - } - - # The function to retrieve the string representation of the Ballerina class mapping the `java.util.function.UnaryOperator` Java interface. - # - # + return - The `string` form of the Java object instance. - public function toString() returns string { - return java:toString(self.jObj) ?: ""; - } - -} - diff --git a/ballerina/modules/java.util.logging/Level.bal b/ballerina/modules/java.util.logging/Level.bal deleted file mode 100644 index 682e317..0000000 --- a/ballerina/modules/java.util.logging/Level.bal +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). -// -// WSO2 LLC. licenses this file to you under the Apache License, -// Version 2.0 (the "License"); you may not use this file except -// in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -import ballerina/jballerina.java; - -# Ballerina class mapping for the Java `java.util.logging.Level` class. -@java:Binding {'class: "java.util.logging.Level"} -public distinct class Level { - - *java:JObject; - - # The `handle` field that stores the reference to the `java.util.logging.Level` object. - public handle jObj; - - # The init function of the Ballerina class mapping the `java.util.logging.Level` Java class. - # - # + obj - The `handle` value containing the Java reference of the object. - public isolated function init(handle obj) { - self.jObj = obj; - } - - # The function to retrieve the string representation of the Ballerina class mapping the `java.util.logging.Level` Java class. - # - # + return - The `string` form of the Java object instance. - public isolated function toString() returns string { - return java:toString(self.jObj) ?: ""; - } - -} - diff --git a/ballerina/modules/java.util.stream/Stream.bal b/ballerina/modules/java.util.stream/Stream.bal deleted file mode 100644 index 811a3f1..0000000 --- a/ballerina/modules/java.util.stream/Stream.bal +++ /dev/null @@ -1,39 +0,0 @@ -// This is an empty Ballerina class autogenerated to represent the `java.util.stream.Stream` Java interface. -// -// If you need the implementation of this class generated, please use the following command. -// -// $ bal bindgen [(-cp|--classpath) ...] -// [(-mvn|--maven) ::] -// [(-o|--output) ] -// [--public] -// (...) -// -// E.g. $ bal bindgen java.util.stream.Stream - -import ballerina/jballerina.java; - -# Ballerina class mapping for the Java `java.util.stream.Stream` interface. -@java:Binding {'class: "java.util.stream.Stream"} -public distinct class Stream { - - *java:JObject; - - # The `handle` field that stores the reference to the `java.util.stream.Stream` object. - public handle jObj; - - # The init function of the Ballerina class mapping the `java.util.stream.Stream` Java interface. - # - # + obj - The `handle` value containing the Java reference of the object. - public function init(handle obj) { - self.jObj = obj; - } - - # The function to retrieve the string representation of the Ballerina class mapping the `java.util.stream.Stream` Java interface. - # - # + return - The `string` form of the Java object instance. - public function toString() returns string { - return java:toString(self.jObj) ?: ""; - } - -} - diff --git a/ballerina/modules/java.util/Collection.bal b/ballerina/modules/java.util/Collection.bal deleted file mode 100644 index 8ff80ba..0000000 --- a/ballerina/modules/java.util/Collection.bal +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). -// -// WSO2 LLC. licenses this file to you under the Apache License, -// Version 2.0 (the "License"); you may not use this file except -// in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -import ballerina/jballerina.java; - -# Ballerina class mapping for the Java `java.util.Collection` interface. -@java:Binding {'class: "java.util.Collection"} -public distinct class Collection { - - *java:JObject; - - # The `handle` field that stores the reference to the `java.util.Collection` object. - public handle jObj; - - # The init function of the Ballerina class mapping the `java.util.Collection` Java interface. - # - # + obj - The `handle` value containing the Java reference of the object. - public isolated function init(handle obj) { - self.jObj = obj; - } - - # The function to retrieve the string representation of the Ballerina class mapping the `java.util.Collection` Java interface. - # - # + return - The `string` form of the Java object instance. - public isolated function toString() returns string { - return java:toString(self.jObj) ?: ""; - } - -} - diff --git a/ballerina/modules/java.util/Comparator.bal b/ballerina/modules/java.util/Comparator.bal deleted file mode 100644 index 0725982..0000000 --- a/ballerina/modules/java.util/Comparator.bal +++ /dev/null @@ -1,39 +0,0 @@ -// This is an empty Ballerina class autogenerated to represent the `java.util.Comparator` Java interface. -// -// If you need the implementation of this class generated, please use the following command. -// -// $ bal bindgen [(-cp|--classpath) ...] -// [(-mvn|--maven) ::] -// [(-o|--output) ] -// [--public] -// (...) -// -// E.g. $ bal bindgen java.util.Comparator - -import ballerina/jballerina.java; - -# Ballerina class mapping for the Java `java.util.Comparator` interface. -@java:Binding {'class: "java.util.Comparator"} -public distinct class Comparator { - - *java:JObject; - - # The `handle` field that stores the reference to the `java.util.Comparator` object. - public handle jObj; - - # The init function of the Ballerina class mapping the `java.util.Comparator` Java interface. - # - # + obj - The `handle` value containing the Java reference of the object. - public function init(handle obj) { - self.jObj = obj; - } - - # The function to retrieve the string representation of the Ballerina class mapping the `java.util.Comparator` Java interface. - # - # + return - The `string` form of the Java object instance. - public function toString() returns string { - return java:toString(self.jObj) ?: ""; - } - -} - diff --git a/ballerina/modules/java.util/Iterator.bal b/ballerina/modules/java.util/Iterator.bal deleted file mode 100644 index f6c8077..0000000 --- a/ballerina/modules/java.util/Iterator.bal +++ /dev/null @@ -1,39 +0,0 @@ -// This is an empty Ballerina class autogenerated to represent the `java.util.Iterator` Java interface. -// -// If you need the implementation of this class generated, please use the following command. -// -// $ bal bindgen [(-cp|--classpath) ...] -// [(-mvn|--maven) ::] -// [(-o|--output) ] -// [--public] -// (...) -// -// E.g. $ bal bindgen java.util.Iterator - -import ballerina/jballerina.java; - -# Ballerina class mapping for the Java `java.util.Iterator` interface. -@java:Binding {'class: "java.util.Iterator"} -public distinct class Iterator { - - *java:JObject; - - # The `handle` field that stores the reference to the `java.util.Iterator` object. - public handle jObj; - - # The init function of the Ballerina class mapping the `java.util.Iterator` Java interface. - # - # + obj - The `handle` value containing the Java reference of the object. - public function init(handle obj) { - self.jObj = obj; - } - - # The function to retrieve the string representation of the Ballerina class mapping the `java.util.Iterator` Java interface. - # - # + return - The `string` form of the Java object instance. - public function toString() returns string { - return java:toString(self.jObj) ?: ""; - } - -} - diff --git a/ballerina/modules/java.util/List.bal b/ballerina/modules/java.util/List.bal deleted file mode 100644 index 4c93ed5..0000000 --- a/ballerina/modules/java.util/List.bal +++ /dev/null @@ -1,778 +0,0 @@ -import selenium.java.lang as javalang; -import selenium.java.util.'function as javautilfunction; -import selenium.java.util.'stream as javautilstream; - -import ballerina/jballerina.java; -import ballerina/jballerina.java.arrays as jarrays; - -# Ballerina class mapping for the Java `java.util.List` interface. -@java:Binding {'class: "java.util.List"} -public distinct class List { - - *java:JObject; - - # The `handle` field that stores the reference to the `java.util.List` object. - public handle jObj; - - # The init function of the Ballerina class mapping the `java.util.List` Java interface. - # - # + obj - The `handle` value containing the Java reference of the object. - public isolated function init(handle obj) { - self.jObj = obj; - } - - # The function to retrieve the string representation of the Ballerina class mapping the `java.util.List` Java interface. - # - # + return - The `string` form of the Java object instance. - public function toString() returns string { - return java:toString(self.jObj) ?: ""; - } - - # The function that maps to the `add` method of `java.util.List`. - # - # + arg0 - The `int` value required to map with the Java method parameter. - # + arg1 - The `javalang:Object` value required to map with the Java method parameter. - public function add(int arg0, javalang:Object arg1) { - java_util_List_add(self.jObj, arg0, arg1.jObj); - } - - # The function that maps to the `add` method of `java.util.List`. - # - # + arg0 - The `javalang:Object` value required to map with the Java method parameter. - # + return - The `boolean` value returning from the Java mapping. - public function add2(javalang:Object arg0) returns boolean { - return java_util_List_add2(self.jObj, arg0.jObj); - } - - # The function that maps to the `addAll` method of `java.util.List`. - # - # + arg0 - The `Collection` value required to map with the Java method parameter. - # + return - The `boolean` value returning from the Java mapping. - public function addAll(Collection arg0) returns boolean { - return java_util_List_addAll(self.jObj, arg0.jObj); - } - - # The function that maps to the `addAll` method of `java.util.List`. - # - # + arg0 - The `int` value required to map with the Java method parameter. - # + arg1 - The `Collection` value required to map with the Java method parameter. - # + return - The `boolean` value returning from the Java mapping. - public function addAll2(int arg0, Collection arg1) returns boolean { - return java_util_List_addAll2(self.jObj, arg0, arg1.jObj); - } - - # The function that maps to the `clear` method of `java.util.List`. - public function clear() { - java_util_List_clear(self.jObj); - } - - # The function that maps to the `contains` method of `java.util.List`. - # - # + arg0 - The `javalang:Object` value required to map with the Java method parameter. - # + return - The `boolean` value returning from the Java mapping. - public function contains(javalang:Object arg0) returns boolean { - return java_util_List_contains(self.jObj, arg0.jObj); - } - - # The function that maps to the `containsAll` method of `java.util.List`. - # - # + arg0 - The `Collection` value required to map with the Java method parameter. - # + return - The `boolean` value returning from the Java mapping. - public function containsAll(Collection arg0) returns boolean { - return java_util_List_containsAll(self.jObj, arg0.jObj); - } - - # The function that maps to the `equals` method of `java.util.List`. - # - # + arg0 - The `javalang:Object` value required to map with the Java method parameter. - # + return - The `boolean` value returning from the Java mapping. - public function 'equals(javalang:Object arg0) returns boolean { - return java_util_List_equals(self.jObj, arg0.jObj); - } - - # The function that maps to the `forEach` method of `java.util.List`. - # - # + arg0 - The `javautilfunction:Consumer` value required to map with the Java method parameter. - public function forEach(javautilfunction:Consumer arg0) { - java_util_List_forEach(self.jObj, arg0.jObj); - } - - # The function that maps to the `get` method of `java.util.List`. - # - # + arg0 - The `int` value required to map with the Java method parameter. - # + return - The `javalang:Object` value returning from the Java mapping. - public function get(int arg0) returns javalang:Object { - handle externalObj = java_util_List_get(self.jObj, arg0); - javalang:Object newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `hashCode` method of `java.util.List`. - # - # + return - The `int` value returning from the Java mapping. - public function hashCode() returns int { - return java_util_List_hashCode(self.jObj); - } - - # The function that maps to the `indexOf` method of `java.util.List`. - # - # + arg0 - The `javalang:Object` value required to map with the Java method parameter. - # + return - The `int` value returning from the Java mapping. - public function indexOf(javalang:Object arg0) returns int { - return java_util_List_indexOf(self.jObj, arg0.jObj); - } - - # The function that maps to the `isEmpty` method of `java.util.List`. - # - # + return - The `boolean` value returning from the Java mapping. - public function isEmpty() returns boolean { - return java_util_List_isEmpty(self.jObj); - } - - # The function that maps to the `iterator` method of `java.util.List`. - # - # + return - The `Iterator` value returning from the Java mapping. - public function iterator() returns Iterator { - handle externalObj = java_util_List_iterator(self.jObj); - Iterator newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `lastIndexOf` method of `java.util.List`. - # - # + arg0 - The `javalang:Object` value required to map with the Java method parameter. - # + return - The `int` value returning from the Java mapping. - public function lastIndexOf(javalang:Object arg0) returns int { - return java_util_List_lastIndexOf(self.jObj, arg0.jObj); - } - - # The function that maps to the `listIterator` method of `java.util.List`. - # - # + return - The `ListIterator` value returning from the Java mapping. - public function listIterator() returns ListIterator { - handle externalObj = java_util_List_listIterator(self.jObj); - ListIterator newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `listIterator` method of `java.util.List`. - # - # + arg0 - The `int` value required to map with the Java method parameter. - # + return - The `ListIterator` value returning from the Java mapping. - public function listIterator2(int arg0) returns ListIterator { - handle externalObj = java_util_List_listIterator2(self.jObj, arg0); - ListIterator newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `parallelStream` method of `java.util.List`. - # - # + return - The `javautilstream:Stream` value returning from the Java mapping. - public function parallelStream() returns javautilstream:Stream { - handle externalObj = java_util_List_parallelStream(self.jObj); - javautilstream:Stream newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `remove` method of `java.util.List`. - # - # + arg0 - The `int` value required to map with the Java method parameter. - # + return - The `javalang:Object` value returning from the Java mapping. - public function remove(int arg0) returns javalang:Object { - handle externalObj = java_util_List_remove(self.jObj, arg0); - javalang:Object newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `remove` method of `java.util.List`. - # - # + arg0 - The `javalang:Object` value required to map with the Java method parameter. - # + return - The `boolean` value returning from the Java mapping. - public function remove2(javalang:Object arg0) returns boolean { - return java_util_List_remove2(self.jObj, arg0.jObj); - } - - # The function that maps to the `removeAll` method of `java.util.List`. - # - # + arg0 - The `Collection` value required to map with the Java method parameter. - # + return - The `boolean` value returning from the Java mapping. - public function removeAll(Collection arg0) returns boolean { - return java_util_List_removeAll(self.jObj, arg0.jObj); - } - - # The function that maps to the `removeIf` method of `java.util.List`. - # - # + arg0 - The `javautilfunction:Predicate` value required to map with the Java method parameter. - # + return - The `boolean` value returning from the Java mapping. - public function removeIf(javautilfunction:Predicate arg0) returns boolean { - return java_util_List_removeIf(self.jObj, arg0.jObj); - } - - # The function that maps to the `replaceAll` method of `java.util.List`. - # - # + arg0 - The `javautilfunction:UnaryOperator` value required to map with the Java method parameter. - public function replaceAll(javautilfunction:UnaryOperator arg0) { - java_util_List_replaceAll(self.jObj, arg0.jObj); - } - - # The function that maps to the `retainAll` method of `java.util.List`. - # - # + arg0 - The `Collection` value required to map with the Java method parameter. - # + return - The `boolean` value returning from the Java mapping. - public function retainAll(Collection arg0) returns boolean { - return java_util_List_retainAll(self.jObj, arg0.jObj); - } - - # The function that maps to the `set` method of `java.util.List`. - # - # + arg0 - The `int` value required to map with the Java method parameter. - # + arg1 - The `javalang:Object` value required to map with the Java method parameter. - # + return - The `javalang:Object` value returning from the Java mapping. - public function set(int arg0, javalang:Object arg1) returns javalang:Object { - handle externalObj = java_util_List_set(self.jObj, arg0, arg1.jObj); - javalang:Object newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `size` method of `java.util.List`. - # - # + return - The `int` value returning from the Java mapping. - public function size() returns int { - return java_util_List_size(self.jObj); - } - - # The function that maps to the `sort` method of `java.util.List`. - # - # + arg0 - The `Comparator` value required to map with the Java method parameter. - public function sort(Comparator arg0) { - java_util_List_sort(self.jObj, arg0.jObj); - } - - # The function that maps to the `spliterator` method of `java.util.List`. - # - # + return - The `Spliterator` value returning from the Java mapping. - public function spliterator() returns Spliterator { - handle externalObj = java_util_List_spliterator(self.jObj); - Spliterator newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `stream` method of `java.util.List`. - # - # + return - The `javautilstream:Stream` value returning from the Java mapping. - public function 'stream() returns javautilstream:Stream { - handle externalObj = java_util_List_stream(self.jObj); - javautilstream:Stream newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `subList` method of `java.util.List`. - # - # + arg0 - The `int` value required to map with the Java method parameter. - # + arg1 - The `int` value required to map with the Java method parameter. - # + return - The `List` value returning from the Java mapping. - public function subList(int arg0, int arg1) returns List { - handle externalObj = java_util_List_subList(self.jObj, arg0, arg1); - List newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `toArray` method of `java.util.List`. - # - # + return - The `javalang:Object[]` value returning from the Java mapping. - public isolated function toArray() returns javalang:Object[]|error { - handle externalObj = java_util_List_toArray(self.jObj); - javalang:Object[] newObj = []; - handle[] anyObj = check jarrays:fromHandle(externalObj, "handle"); - int count = anyObj.length(); - foreach int i in 0 ... count - 1 { - javalang:Object element = new (anyObj[i]); - newObj[i] = element; - } - return newObj; - } - - # The function that maps to the `toArray` method of `java.util.List`. - # - # + arg0 - The `javautilfunction:IntFunction` value required to map with the Java method parameter. - # + return - The `javalang:Object[]` value returning from the Java mapping. - public function toArray2(javautilfunction:IntFunction arg0) returns javalang:Object[]|error { - handle externalObj = java_util_List_toArray2(self.jObj, arg0.jObj); - javalang:Object[] newObj = []; - handle[] anyObj = check jarrays:fromHandle(externalObj, "handle"); - int count = anyObj.length(); - foreach int i in 0 ... count - 1 { - javalang:Object element = new (anyObj[i]); - newObj[i] = element; - } - return newObj; - } - - # The function that maps to the `toArray` method of `java.util.List`. - # - # + arg0 - The `javalang:Object[]` value required to map with the Java method parameter. - # + return - The `javalang:Object[]` value returning from the Java mapping. - public function toArray3(javalang:Object[] arg0) returns javalang:Object[]|error { - handle externalObj = java_util_List_toArray3(self.jObj, check jarrays:toHandle(arg0, "java.lang.Object")); - javalang:Object[] newObj = []; - handle[] anyObj = check jarrays:fromHandle(externalObj, "handle"); - int count = anyObj.length(); - foreach int i in 0 ... count - 1 { - javalang:Object element = new (anyObj[i]); - newObj[i] = element; - } - return newObj; - } - -} - -# The function that maps to the `copyOf` method of `java.util.List`. -# -# + arg0 - The `Collection` value required to map with the Java method parameter. -# + return - The `List` value returning from the Java mapping. -public function List_copyOf(Collection arg0) returns List { - handle externalObj = java_util_List_copyOf(arg0.jObj); - List newObj = new (externalObj); - return newObj; -} - -# The function that maps to the `of` method of `java.util.List`. -# -# + return - The `List` value returning from the Java mapping. -public function List_of() returns List { - handle externalObj = java_util_List_of(); - List newObj = new (externalObj); - return newObj; -} - -# The function that maps to the `of` method of `java.util.List`. -# -# + arg0 - The `javalang:Object` value required to map with the Java method parameter. -# + arg1 - The `javalang:Object` value required to map with the Java method parameter. -# + arg2 - The `javalang:Object` value required to map with the Java method parameter. -# + arg3 - The `javalang:Object` value required to map with the Java method parameter. -# + arg4 - The `javalang:Object` value required to map with the Java method parameter. -# + arg5 - The `javalang:Object` value required to map with the Java method parameter. -# + arg6 - The `javalang:Object` value required to map with the Java method parameter. -# + arg7 - The `javalang:Object` value required to map with the Java method parameter. -# + return - The `List` value returning from the Java mapping. -public function List_of10(javalang:Object arg0, javalang:Object arg1, javalang:Object arg2, javalang:Object arg3, javalang:Object arg4, javalang:Object arg5, javalang:Object arg6, javalang:Object arg7) returns List { - handle externalObj = java_util_List_of10(arg0.jObj, arg1.jObj, arg2.jObj, arg3.jObj, arg4.jObj, arg5.jObj, arg6.jObj, arg7.jObj); - List newObj = new (externalObj); - return newObj; -} - -# The function that maps to the `of` method of `java.util.List`. -# -# + arg0 - The `javalang:Object` value required to map with the Java method parameter. -# + arg1 - The `javalang:Object` value required to map with the Java method parameter. -# + arg2 - The `javalang:Object` value required to map with the Java method parameter. -# + arg3 - The `javalang:Object` value required to map with the Java method parameter. -# + arg4 - The `javalang:Object` value required to map with the Java method parameter. -# + arg5 - The `javalang:Object` value required to map with the Java method parameter. -# + arg6 - The `javalang:Object` value required to map with the Java method parameter. -# + arg7 - The `javalang:Object` value required to map with the Java method parameter. -# + arg8 - The `javalang:Object` value required to map with the Java method parameter. -# + return - The `List` value returning from the Java mapping. -public function List_of11(javalang:Object arg0, javalang:Object arg1, javalang:Object arg2, javalang:Object arg3, javalang:Object arg4, javalang:Object arg5, javalang:Object arg6, javalang:Object arg7, javalang:Object arg8) returns List { - handle externalObj = java_util_List_of11(arg0.jObj, arg1.jObj, arg2.jObj, arg3.jObj, arg4.jObj, arg5.jObj, arg6.jObj, arg7.jObj, arg8.jObj); - List newObj = new (externalObj); - return newObj; -} - -# The function that maps to the `of` method of `java.util.List`. -# -# + arg0 - The `javalang:Object` value required to map with the Java method parameter. -# + arg1 - The `javalang:Object` value required to map with the Java method parameter. -# + arg2 - The `javalang:Object` value required to map with the Java method parameter. -# + arg3 - The `javalang:Object` value required to map with the Java method parameter. -# + arg4 - The `javalang:Object` value required to map with the Java method parameter. -# + arg5 - The `javalang:Object` value required to map with the Java method parameter. -# + arg6 - The `javalang:Object` value required to map with the Java method parameter. -# + arg7 - The `javalang:Object` value required to map with the Java method parameter. -# + arg8 - The `javalang:Object` value required to map with the Java method parameter. -# + arg9 - The `javalang:Object` value required to map with the Java method parameter. -# + return - The `List` value returning from the Java mapping. -public function List_of12(javalang:Object arg0, javalang:Object arg1, javalang:Object arg2, javalang:Object arg3, javalang:Object arg4, javalang:Object arg5, javalang:Object arg6, javalang:Object arg7, javalang:Object arg8, javalang:Object arg9) returns List { - handle externalObj = java_util_List_of12(arg0.jObj, arg1.jObj, arg2.jObj, arg3.jObj, arg4.jObj, arg5.jObj, arg6.jObj, arg7.jObj, arg8.jObj, arg9.jObj); - List newObj = new (externalObj); - return newObj; -} - -# The function that maps to the `of` method of `java.util.List`. -# -# + arg0 - The `javalang:Object` value required to map with the Java method parameter. -# + return - The `List` value returning from the Java mapping. -public function List_of2(javalang:Object arg0) returns List { - handle externalObj = java_util_List_of2(arg0.jObj); - List newObj = new (externalObj); - return newObj; -} - -# The function that maps to the `of` method of `java.util.List`. -# -# + arg0 - The `javalang:Object[]` value required to map with the Java method parameter. -# + return - The `List` value returning from the Java mapping. -public function List_of3(javalang:Object[] arg0) returns List|error { - handle externalObj = java_util_List_of3(check jarrays:toHandle(arg0, "java.lang.Object")); - List newObj = new (externalObj); - return newObj; -} - -# The function that maps to the `of` method of `java.util.List`. -# -# + arg0 - The `javalang:Object` value required to map with the Java method parameter. -# + arg1 - The `javalang:Object` value required to map with the Java method parameter. -# + return - The `List` value returning from the Java mapping. -public function List_of4(javalang:Object arg0, javalang:Object arg1) returns List { - handle externalObj = java_util_List_of4(arg0.jObj, arg1.jObj); - List newObj = new (externalObj); - return newObj; -} - -# The function that maps to the `of` method of `java.util.List`. -# -# + arg0 - The `javalang:Object` value required to map with the Java method parameter. -# + arg1 - The `javalang:Object` value required to map with the Java method parameter. -# + arg2 - The `javalang:Object` value required to map with the Java method parameter. -# + return - The `List` value returning from the Java mapping. -public function List_of5(javalang:Object arg0, javalang:Object arg1, javalang:Object arg2) returns List { - handle externalObj = java_util_List_of5(arg0.jObj, arg1.jObj, arg2.jObj); - List newObj = new (externalObj); - return newObj; -} - -# The function that maps to the `of` method of `java.util.List`. -# -# + arg0 - The `javalang:Object` value required to map with the Java method parameter. -# + arg1 - The `javalang:Object` value required to map with the Java method parameter. -# + arg2 - The `javalang:Object` value required to map with the Java method parameter. -# + arg3 - The `javalang:Object` value required to map with the Java method parameter. -# + return - The `List` value returning from the Java mapping. -public function List_of6(javalang:Object arg0, javalang:Object arg1, javalang:Object arg2, javalang:Object arg3) returns List { - handle externalObj = java_util_List_of6(arg0.jObj, arg1.jObj, arg2.jObj, arg3.jObj); - List newObj = new (externalObj); - return newObj; -} - -# The function that maps to the `of` method of `java.util.List`. -# -# + arg0 - The `javalang:Object` value required to map with the Java method parameter. -# + arg1 - The `javalang:Object` value required to map with the Java method parameter. -# + arg2 - The `javalang:Object` value required to map with the Java method parameter. -# + arg3 - The `javalang:Object` value required to map with the Java method parameter. -# + arg4 - The `javalang:Object` value required to map with the Java method parameter. -# + return - The `List` value returning from the Java mapping. -public function List_of7(javalang:Object arg0, javalang:Object arg1, javalang:Object arg2, javalang:Object arg3, javalang:Object arg4) returns List { - handle externalObj = java_util_List_of7(arg0.jObj, arg1.jObj, arg2.jObj, arg3.jObj, arg4.jObj); - List newObj = new (externalObj); - return newObj; -} - -# The function that maps to the `of` method of `java.util.List`. -# -# + arg0 - The `javalang:Object` value required to map with the Java method parameter. -# + arg1 - The `javalang:Object` value required to map with the Java method parameter. -# + arg2 - The `javalang:Object` value required to map with the Java method parameter. -# + arg3 - The `javalang:Object` value required to map with the Java method parameter. -# + arg4 - The `javalang:Object` value required to map with the Java method parameter. -# + arg5 - The `javalang:Object` value required to map with the Java method parameter. -# + return - The `List` value returning from the Java mapping. -public function List_of8(javalang:Object arg0, javalang:Object arg1, javalang:Object arg2, javalang:Object arg3, javalang:Object arg4, javalang:Object arg5) returns List { - handle externalObj = java_util_List_of8(arg0.jObj, arg1.jObj, arg2.jObj, arg3.jObj, arg4.jObj, arg5.jObj); - List newObj = new (externalObj); - return newObj; -} - -# The function that maps to the `of` method of `java.util.List`. -# -# + arg0 - The `javalang:Object` value required to map with the Java method parameter. -# + arg1 - The `javalang:Object` value required to map with the Java method parameter. -# + arg2 - The `javalang:Object` value required to map with the Java method parameter. -# + arg3 - The `javalang:Object` value required to map with the Java method parameter. -# + arg4 - The `javalang:Object` value required to map with the Java method parameter. -# + arg5 - The `javalang:Object` value required to map with the Java method parameter. -# + arg6 - The `javalang:Object` value required to map with the Java method parameter. -# + return - The `List` value returning from the Java mapping. -public function List_of9(javalang:Object arg0, javalang:Object arg1, javalang:Object arg2, javalang:Object arg3, javalang:Object arg4, javalang:Object arg5, javalang:Object arg6) returns List { - handle externalObj = java_util_List_of9(arg0.jObj, arg1.jObj, arg2.jObj, arg3.jObj, arg4.jObj, arg5.jObj, arg6.jObj); - List newObj = new (externalObj); - return newObj; -} - -function java_util_List_add(handle receiver, int arg0, handle arg1) = @java:Method { - name: "add", - 'class: "java.util.List", - paramTypes: ["int", "java.lang.Object"] -} external; - -function java_util_List_add2(handle receiver, handle arg0) returns boolean = @java:Method { - name: "add", - 'class: "java.util.List", - paramTypes: ["java.lang.Object"] -} external; - -function java_util_List_addAll(handle receiver, handle arg0) returns boolean = @java:Method { - name: "addAll", - 'class: "java.util.List", - paramTypes: ["java.util.Collection"] -} external; - -function java_util_List_addAll2(handle receiver, int arg0, handle arg1) returns boolean = @java:Method { - name: "addAll", - 'class: "java.util.List", - paramTypes: ["int", "java.util.Collection"] -} external; - -function java_util_List_clear(handle receiver) = @java:Method { - name: "clear", - 'class: "java.util.List", - paramTypes: [] -} external; - -function java_util_List_contains(handle receiver, handle arg0) returns boolean = @java:Method { - name: "contains", - 'class: "java.util.List", - paramTypes: ["java.lang.Object"] -} external; - -function java_util_List_containsAll(handle receiver, handle arg0) returns boolean = @java:Method { - name: "containsAll", - 'class: "java.util.List", - paramTypes: ["java.util.Collection"] -} external; - -function java_util_List_copyOf(handle arg0) returns handle = @java:Method { - name: "copyOf", - 'class: "java.util.List", - paramTypes: ["java.util.Collection"] -} external; - -function java_util_List_equals(handle receiver, handle arg0) returns boolean = @java:Method { - name: "equals", - 'class: "java.util.List", - paramTypes: ["java.lang.Object"] -} external; - -function java_util_List_forEach(handle receiver, handle arg0) = @java:Method { - name: "forEach", - 'class: "java.util.List", - paramTypes: ["java.util.function.Consumer"] -} external; - -function java_util_List_get(handle receiver, int arg0) returns handle = @java:Method { - name: "get", - 'class: "java.util.List", - paramTypes: ["int"] -} external; - -function java_util_List_hashCode(handle receiver) returns int = @java:Method { - name: "hashCode", - 'class: "java.util.List", - paramTypes: [] -} external; - -function java_util_List_indexOf(handle receiver, handle arg0) returns int = @java:Method { - name: "indexOf", - 'class: "java.util.List", - paramTypes: ["java.lang.Object"] -} external; - -function java_util_List_isEmpty(handle receiver) returns boolean = @java:Method { - name: "isEmpty", - 'class: "java.util.List", - paramTypes: [] -} external; - -function java_util_List_iterator(handle receiver) returns handle = @java:Method { - name: "iterator", - 'class: "java.util.List", - paramTypes: [] -} external; - -function java_util_List_lastIndexOf(handle receiver, handle arg0) returns int = @java:Method { - name: "lastIndexOf", - 'class: "java.util.List", - paramTypes: ["java.lang.Object"] -} external; - -function java_util_List_listIterator(handle receiver) returns handle = @java:Method { - name: "listIterator", - 'class: "java.util.List", - paramTypes: [] -} external; - -function java_util_List_listIterator2(handle receiver, int arg0) returns handle = @java:Method { - name: "listIterator", - 'class: "java.util.List", - paramTypes: ["int"] -} external; - -function java_util_List_of() returns handle = @java:Method { - name: "of", - 'class: "java.util.List", - paramTypes: [] -} external; - -function java_util_List_of10(handle arg0, handle arg1, handle arg2, handle arg3, handle arg4, handle arg5, handle arg6, handle arg7) returns handle = @java:Method { - name: "of", - 'class: "java.util.List", - paramTypes: ["java.lang.Object", "java.lang.Object", "java.lang.Object", "java.lang.Object", "java.lang.Object", "java.lang.Object", "java.lang.Object", "java.lang.Object"] -} external; - -function java_util_List_of11(handle arg0, handle arg1, handle arg2, handle arg3, handle arg4, handle arg5, handle arg6, handle arg7, handle arg8) returns handle = @java:Method { - name: "of", - 'class: "java.util.List", - paramTypes: ["java.lang.Object", "java.lang.Object", "java.lang.Object", "java.lang.Object", "java.lang.Object", "java.lang.Object", "java.lang.Object", "java.lang.Object", "java.lang.Object"] -} external; - -function java_util_List_of12(handle arg0, handle arg1, handle arg2, handle arg3, handle arg4, handle arg5, handle arg6, handle arg7, handle arg8, handle arg9) returns handle = @java:Method { - name: "of", - 'class: "java.util.List", - paramTypes: ["java.lang.Object", "java.lang.Object", "java.lang.Object", "java.lang.Object", "java.lang.Object", "java.lang.Object", "java.lang.Object", "java.lang.Object", "java.lang.Object", "java.lang.Object"] -} external; - -function java_util_List_of2(handle arg0) returns handle = @java:Method { - name: "of", - 'class: "java.util.List", - paramTypes: ["java.lang.Object"] -} external; - -function java_util_List_of3(handle arg0) returns handle = @java:Method { - name: "of", - 'class: "java.util.List", - paramTypes: ["[Ljava.lang.Object;"] -} external; - -function java_util_List_of4(handle arg0, handle arg1) returns handle = @java:Method { - name: "of", - 'class: "java.util.List", - paramTypes: ["java.lang.Object", "java.lang.Object"] -} external; - -function java_util_List_of5(handle arg0, handle arg1, handle arg2) returns handle = @java:Method { - name: "of", - 'class: "java.util.List", - paramTypes: ["java.lang.Object", "java.lang.Object", "java.lang.Object"] -} external; - -function java_util_List_of6(handle arg0, handle arg1, handle arg2, handle arg3) returns handle = @java:Method { - name: "of", - 'class: "java.util.List", - paramTypes: ["java.lang.Object", "java.lang.Object", "java.lang.Object", "java.lang.Object"] -} external; - -function java_util_List_of7(handle arg0, handle arg1, handle arg2, handle arg3, handle arg4) returns handle = @java:Method { - name: "of", - 'class: "java.util.List", - paramTypes: ["java.lang.Object", "java.lang.Object", "java.lang.Object", "java.lang.Object", "java.lang.Object"] -} external; - -function java_util_List_of8(handle arg0, handle arg1, handle arg2, handle arg3, handle arg4, handle arg5) returns handle = @java:Method { - name: "of", - 'class: "java.util.List", - paramTypes: ["java.lang.Object", "java.lang.Object", "java.lang.Object", "java.lang.Object", "java.lang.Object", "java.lang.Object"] -} external; - -function java_util_List_of9(handle arg0, handle arg1, handle arg2, handle arg3, handle arg4, handle arg5, handle arg6) returns handle = @java:Method { - name: "of", - 'class: "java.util.List", - paramTypes: ["java.lang.Object", "java.lang.Object", "java.lang.Object", "java.lang.Object", "java.lang.Object", "java.lang.Object", "java.lang.Object"] -} external; - -function java_util_List_parallelStream(handle receiver) returns handle = @java:Method { - name: "parallelStream", - 'class: "java.util.List", - paramTypes: [] -} external; - -function java_util_List_remove(handle receiver, int arg0) returns handle = @java:Method { - name: "remove", - 'class: "java.util.List", - paramTypes: ["int"] -} external; - -function java_util_List_remove2(handle receiver, handle arg0) returns boolean = @java:Method { - name: "remove", - 'class: "java.util.List", - paramTypes: ["java.lang.Object"] -} external; - -function java_util_List_removeAll(handle receiver, handle arg0) returns boolean = @java:Method { - name: "removeAll", - 'class: "java.util.List", - paramTypes: ["java.util.Collection"] -} external; - -function java_util_List_removeIf(handle receiver, handle arg0) returns boolean = @java:Method { - name: "removeIf", - 'class: "java.util.List", - paramTypes: ["java.util.function.Predicate"] -} external; - -function java_util_List_replaceAll(handle receiver, handle arg0) = @java:Method { - name: "replaceAll", - 'class: "java.util.List", - paramTypes: ["java.util.function.UnaryOperator"] -} external; - -function java_util_List_retainAll(handle receiver, handle arg0) returns boolean = @java:Method { - name: "retainAll", - 'class: "java.util.List", - paramTypes: ["java.util.Collection"] -} external; - -function java_util_List_set(handle receiver, int arg0, handle arg1) returns handle = @java:Method { - name: "set", - 'class: "java.util.List", - paramTypes: ["int", "java.lang.Object"] -} external; - -function java_util_List_size(handle receiver) returns int = @java:Method { - name: "size", - 'class: "java.util.List", - paramTypes: [] -} external; - -function java_util_List_sort(handle receiver, handle arg0) = @java:Method { - name: "sort", - 'class: "java.util.List", - paramTypes: ["java.util.Comparator"] -} external; - -function java_util_List_spliterator(handle receiver) returns handle = @java:Method { - name: "spliterator", - 'class: "java.util.List", - paramTypes: [] -} external; - -function java_util_List_stream(handle receiver) returns handle = @java:Method { - name: "stream", - 'class: "java.util.List", - paramTypes: [] -} external; - -function java_util_List_subList(handle receiver, int arg0, int arg1) returns handle = @java:Method { - name: "subList", - 'class: "java.util.List", - paramTypes: ["int", "int"] -} external; - -isolated function java_util_List_toArray(handle receiver) returns handle = @java:Method { - name: "toArray", - 'class: "java.util.List", - paramTypes: [] -} external; - -function java_util_List_toArray2(handle receiver, handle arg0) returns handle = @java:Method { - name: "toArray", - 'class: "java.util.List", - paramTypes: ["java.util.function.IntFunction"] -} external; - -function java_util_List_toArray3(handle receiver, handle arg0) returns handle = @java:Method { - name: "toArray", - 'class: "java.util.List", - paramTypes: ["[Ljava.lang.Object;"] -} external; - diff --git a/ballerina/modules/java.util/ListIterator.bal b/ballerina/modules/java.util/ListIterator.bal deleted file mode 100644 index ef53a12..0000000 --- a/ballerina/modules/java.util/ListIterator.bal +++ /dev/null @@ -1,39 +0,0 @@ -// This is an empty Ballerina class autogenerated to represent the `java.util.ListIterator` Java interface. -// -// If you need the implementation of this class generated, please use the following command. -// -// $ bal bindgen [(-cp|--classpath) ...] -// [(-mvn|--maven) ::] -// [(-o|--output) ] -// [--public] -// (...) -// -// E.g. $ bal bindgen java.util.ListIterator - -import ballerina/jballerina.java; - -# Ballerina class mapping for the Java `java.util.ListIterator` interface. -@java:Binding {'class: "java.util.ListIterator"} -public distinct class ListIterator { - - *java:JObject; - - # The `handle` field that stores the reference to the `java.util.ListIterator` object. - public handle jObj; - - # The init function of the Ballerina class mapping the `java.util.ListIterator` Java interface. - # - # + obj - The `handle` value containing the Java reference of the object. - public function init(handle obj) { - self.jObj = obj; - } - - # The function to retrieve the string representation of the Ballerina class mapping the `java.util.ListIterator` Java interface. - # - # + return - The `string` form of the Java object instance. - public function toString() returns string { - return java:toString(self.jObj) ?: ""; - } - -} - diff --git a/ballerina/modules/java.util/Map.bal b/ballerina/modules/java.util/Map.bal deleted file mode 100644 index ad25a98..0000000 --- a/ballerina/modules/java.util/Map.bal +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). -// -// WSO2 LLC. licenses this file to you under the Apache License, -// Version 2.0 (the "License"); you may not use this file except -// in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -import ballerina/jballerina.java; - -# Ballerina class mapping for the Java `java.util.Map` interface. -@java:Binding {'class: "java.util.Map"} -public distinct class Map { - - *java:JObject; - - # The `handle` field that stores the reference to the `java.util.Map` object. - public handle jObj; - - # The init function of the Ballerina class mapping the `java.util.Map` Java interface. - # - # + obj - The `handle` value containing the Java reference of the object. - public isolated function init(handle obj) { - self.jObj = obj; - } - - # The function to retrieve the string representation of the Ballerina class mapping the `java.util.Map` Java interface. - # - # + return - The `string` form of the Java object instance. - public isolated function toString() returns string { - return java:toString(self.jObj) ?: ""; - } - -} - diff --git a/ballerina/modules/java.util/Optional.bal b/ballerina/modules/java.util/Optional.bal deleted file mode 100644 index c7d48df..0000000 --- a/ballerina/modules/java.util/Optional.bal +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). -// -// WSO2 LLC. licenses this file to you under the Apache License, -// Version 2.0 (the "License"); you may not use this file except -// in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -import ballerina/jballerina.java; - -# Ballerina class mapping for the Java `java.util.Optional` class. -@java:Binding {'class: "java.util.Optional"} -public distinct class Optional { - - *java:JObject; - - # The `handle` field that stores the reference to the `java.util.Optional` object. - public handle jObj; - - # The init function of the Ballerina class mapping the `java.util.Optional` Java class. - # - # + obj - The `handle` value containing the Java reference of the object. - public isolated function init(handle obj) { - self.jObj = obj; - } - - # The function to retrieve the string representation of the Ballerina class mapping the `java.util.Optional` Java class. - # - # + return - The `string` form of the Java object instance. - public isolated function toString() returns string { - return java:toString(self.jObj) ?: ""; - } - -} - diff --git a/ballerina/modules/java.util/Set.bal b/ballerina/modules/java.util/Set.bal deleted file mode 100644 index a85f6e8..0000000 --- a/ballerina/modules/java.util/Set.bal +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). -// -// WSO2 LLC. licenses this file to you under the Apache License, -// Version 2.0 (the "License"); you may not use this file except -// in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -import ballerina/jballerina.java; - -# Ballerina class mapping for the Java `java.util.Set` interface. -@java:Binding {'class: "java.util.Set"} -public distinct class Set { - - *java:JObject; - - # The `handle` field that stores the reference to the `java.util.Set` object. - public handle jObj; - - # The init function of the Ballerina class mapping the `java.util.Set` Java interface. - # - # + obj - The `handle` value containing the Java reference of the object. - public isolated function init(handle obj) { - self.jObj = obj; - } - - # The function to retrieve the string representation of the Ballerina class mapping the `java.util.Set` Java interface. - # - # + return - The `string` form of the Java object instance. - public isolated function toString() returns string { - return java:toString(self.jObj) ?: ""; - } - -} - diff --git a/ballerina/modules/java.util/Spliterator.bal b/ballerina/modules/java.util/Spliterator.bal deleted file mode 100644 index 1387c0f..0000000 --- a/ballerina/modules/java.util/Spliterator.bal +++ /dev/null @@ -1,39 +0,0 @@ -// This is an empty Ballerina class autogenerated to represent the `java.util.Spliterator` Java interface. -// -// If you need the implementation of this class generated, please use the following command. -// -// $ bal bindgen [(-cp|--classpath) ...] -// [(-mvn|--maven) ::] -// [(-o|--output) ] -// [--public] -// (...) -// -// E.g. $ bal bindgen java.util.Spliterator - -import ballerina/jballerina.java; - -# Ballerina class mapping for the Java `java.util.Spliterator` interface. -@java:Binding {'class: "java.util.Spliterator"} -public distinct class Spliterator { - - *java:JObject; - - # The `handle` field that stores the reference to the `java.util.Spliterator` object. - public handle jObj; - - # The init function of the Ballerina class mapping the `java.util.Spliterator` Java interface. - # - # + obj - The `handle` value containing the Java reference of the object. - public function init(handle obj) { - self.jObj = obj; - } - - # The function to retrieve the string representation of the Ballerina class mapping the `java.util.Spliterator` Java interface. - # - # + return - The `string` form of the Java object instance. - public function toString() returns string { - return java:toString(self.jObj) ?: ""; - } - -} - diff --git a/ballerina/modules/org.openqa.selenium.bidi/BiDi.bal b/ballerina/modules/org.openqa.selenium.bidi/BiDi.bal deleted file mode 100644 index 4fddcc3..0000000 --- a/ballerina/modules/org.openqa.selenium.bidi/BiDi.bal +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). -// -// WSO2 LLC. licenses this file to you under the Apache License, -// Version 2.0 (the "License"); you may not use this file except -// in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -import ballerina/jballerina.java; - -# Ballerina class mapping for the Java `org.openqa.selenium.bidi.BiDi` class. -@java:Binding {'class: "org.openqa.selenium.bidi.BiDi"} -public distinct class BiDi { - - *java:JObject; - - # The `handle` field that stores the reference to the `org.openqa.selenium.bidi.BiDi` object. - public handle jObj; - - # The init function of the Ballerina class mapping the `org.openqa.selenium.bidi.BiDi` Java class. - # - # + obj - The `handle` value containing the Java reference of the object. - public isolated function init(handle obj) { - self.jObj = obj; - } - - # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.bidi.BiDi` Java class. - # - # + return - The `string` form of the Java object instance. - public isolated function toString() returns string { - return java:toString(self.jObj) ?: ""; - } - -} - diff --git a/ballerina/modules/org.openqa.selenium.chromium/ChromiumDriver.bal b/ballerina/modules/org.openqa.selenium.chromium/ChromiumDriver.bal deleted file mode 100644 index 4ce0e6e..0000000 --- a/ballerina/modules/org.openqa.selenium.chromium/ChromiumDriver.bal +++ /dev/null @@ -1,1195 +0,0 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). -// -// WSO2 LLC. licenses this file to you under the Apache License, -// Version 2.0 (the "License"); you may not use this file except -// in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -import selenium.java.io as javaio; -import selenium.java.lang as javalang; -import selenium.java.nio.file as javaniofile; -import selenium.java.util as javautil; -import selenium.java.util.'function as javautilfunction; -import selenium.java.util.logging as javautillogging; -import selenium.web as orgopenqaselenium; -import selenium.org.openqa.selenium.'remote as orgopenqaseleniumremote; -import selenium.org.openqa.selenium.bidi as orgopenqaseleniumbidi; -import selenium.org.openqa.selenium.devtools as orgopenqaseleniumdevtools; -import selenium.org.openqa.selenium.federatedcredentialmanagement as orgopenqaseleniumfederatedcredentialmanagement; -import selenium.org.openqa.selenium.html5 as orgopenqaseleniumhtml5; -import selenium.org.openqa.selenium.logging as orgopenqaseleniumlogging; -import selenium.org.openqa.selenium.mobile as orgopenqaseleniummobile; -import selenium.org.openqa.selenium.print as orgopenqaseleniumprint; -import selenium.org.openqa.selenium.virtualauthenticator as orgopenqaseleniumvirtualauthenticator; - -import ballerina/jballerina.java; -import ballerina/jballerina.java.arrays as jarrays; - -# Ballerina class mapping for the Java `org.openqa.selenium.chromium.ChromiumDriver` class. -@java:Binding {'class: "org.openqa.selenium.chromium.ChromiumDriver"} -public distinct class ChromiumDriver { - - *java:JObject; - *orgopenqaseleniumremote:RemoteWebDriver; - - # The `handle` field that stores the reference to the `org.openqa.selenium.chromium.ChromiumDriver` object. - public handle jObj; - - # The init function of the Ballerina class mapping the `org.openqa.selenium.chromium.ChromiumDriver` Java class. - # - # + obj - The `handle` value containing the Java reference of the object. - public isolated function init(handle obj) { - self.jObj = obj; - } - - # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.chromium.ChromiumDriver` Java class. - # - # + return - The `string` form of the Java object instance. - public isolated function toString() returns string { - return java:toString(self.jObj) ?: ""; - } - - # The function that maps to the `addVirtualAuthenticator` method of `org.openqa.selenium.chromium.ChromiumDriver`. - # - # + options - The `orgopenqaseleniumvirtualauthenticator:VirtualAuthenticatorOptions` value required to map with the Java method parameter. - # + return - The `orgopenqaseleniumvirtualauthenticator:VirtualAuthenticator` value returning from the Java mapping. - public isolated function addVirtualAuthenticator(orgopenqaseleniumvirtualauthenticator:VirtualAuthenticatorOptions options) returns orgopenqaseleniumvirtualauthenticator:VirtualAuthenticator { - handle externalObj = org_openqa_selenium_chromium_ChromiumDriver_addVirtualAuthenticator(self.jObj, options.jObj); - orgopenqaseleniumvirtualauthenticator:VirtualAuthenticator newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `close` method of `org.openqa.selenium.chromium.ChromiumDriver`. - public isolated function close() { - org_openqa_selenium_chromium_ChromiumDriver_close(self.jObj); - } - - # The function that maps to the `deleteDownloadableFiles` method of `org.openqa.selenium.chromium.ChromiumDriver`. - public isolated function deleteDownloadableFiles() { - org_openqa_selenium_chromium_ChromiumDriver_deleteDownloadableFiles(self.jObj); - } - - # The function that maps to the `deleteNetworkConditions` method of `org.openqa.selenium.chromium.ChromiumDriver`. - public isolated function deleteNetworkConditions() { - org_openqa_selenium_chromium_ChromiumDriver_deleteNetworkConditions(self.jObj); - } - - # The function that maps to the `downloadFile` method of `org.openqa.selenium.chromium.ChromiumDriver`. - # - # + fileName - The `string` value required to map with the Java method parameter. - # + targetLocation - The `javaniofile:Path` value required to map with the Java method parameter. - # + return - The `javaio:IOException` value returning from the Java mapping. - public isolated function downloadFile(string fileName, javaniofile:Path targetLocation) returns javaio:IOException? { - error|() externalObj = org_openqa_selenium_chromium_ChromiumDriver_downloadFile(self.jObj, java:fromString(fileName), targetLocation.jObj); - if (externalObj is error) { - javaio:IOException e = error javaio:IOException(javaio:IOEXCEPTION, externalObj, message = externalObj.message()); - return e; - } - } - - # The function that maps to the `equals` method of `org.openqa.selenium.chromium.ChromiumDriver`. - # - # + arg0 - The `javalang:Object` value required to map with the Java method parameter. - # + return - The `boolean` value returning from the Java mapping. - public isolated function 'equals(javalang:Object arg0) returns boolean { - return org_openqa_selenium_chromium_ChromiumDriver_equals(self.jObj, arg0.jObj); - } - - # The function that maps to the `executeAsyncScript` method of `org.openqa.selenium.chromium.ChromiumDriver`. - # - # + script - The `string` value required to map with the Java method parameter. - # + args - The `javalang:Object[]` value required to map with the Java method parameter. - # + return - The `javalang:Object` value returning from the Java mapping. - public isolated function executeAsyncScript(string script, javalang:Object[] args) returns javalang:Object|error { - handle externalObj = org_openqa_selenium_chromium_ChromiumDriver_executeAsyncScript(self.jObj, java:fromString(script), check jarrays:toHandle(args, "java.lang.Object")); - javalang:Object newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `executeCdpCommand` method of `org.openqa.selenium.chromium.ChromiumDriver`. - # - # + commandName - The `string` value required to map with the Java method parameter. - # + parameters - The `javautil:Map` value required to map with the Java method parameter. - # + return - The `javautil:Map` value returning from the Java mapping. - public isolated function executeCdpCommand(string commandName, javautil:Map parameters) returns javautil:Map { - handle externalObj = org_openqa_selenium_chromium_ChromiumDriver_executeCdpCommand(self.jObj, java:fromString(commandName), parameters.jObj); - javautil:Map newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `executeScript` method of `org.openqa.selenium.chromium.ChromiumDriver`. - # - # + 'key - The `orgopenqaselenium:ScriptKey` value required to map with the Java method parameter. - # + args - The `javalang:Object[]` value required to map with the Java method parameter. - # + return - The `javalang:Object` value returning from the Java mapping. - public isolated function executeScript(orgopenqaselenium:ScriptKey 'key, javalang:Object[] args) returns javalang:Object|error { - handle externalObj = org_openqa_selenium_chromium_ChromiumDriver_executeScript(self.jObj, 'key.jObj, check jarrays:toHandle(args, "java.lang.Object")); - javalang:Object newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `executeScript` method of `org.openqa.selenium.chromium.ChromiumDriver`. - # - # + script - The `string` value required to map with the Java method parameter. - # + args - The `javalang:Object[]` value required to map with the Java method parameter. - # + return - The `javalang:Object` value returning from the Java mapping. - public isolated function executeScript2(string script, javalang:Object[] args) returns javalang:Object|error { - handle externalObj = org_openqa_selenium_chromium_ChromiumDriver_executeScript2(self.jObj, java:fromString(script), check jarrays:toHandle(args, "java.lang.Object")); - javalang:Object newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `findElement` method of `org.openqa.selenium.chromium.ChromiumDriver`. - # - # + locator - The `orgopenqaselenium:By` value required to map with the Java method parameter. - # + return - The `orgopenqaselenium:WebElement` value returning from the Java mapping. - public isolated function findElement(orgopenqaselenium:By locator) returns orgopenqaselenium:WebElement { - handle externalObj = org_openqa_selenium_chromium_ChromiumDriver_findElement(self.jObj, locator.jObj); - orgopenqaselenium:WebElement newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `findElements` method of `org.openqa.selenium.chromium.ChromiumDriver`. - # - # + locator - The `orgopenqaselenium:By` value required to map with the Java method parameter. - # + return - The `javautil:List` value returning from the Java mapping. - public isolated function findElements(orgopenqaselenium:By locator) returns javautil:List { - handle externalObj = org_openqa_selenium_chromium_ChromiumDriver_findElements(self.jObj, locator.jObj); - javautil:List newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `findElements` method of `org.openqa.selenium.chrome.ChromeDriver`. - # - # + locator - The `orgopenqaselenium:By` value required to map with the Java method parameter. - # + return - The `orgopenqaselenium:WebElement[]` value returning from the Java mapping. - public isolated function findAllElements(orgopenqaselenium:By locator) returns orgopenqaselenium:WebElement[]|error { - handle externalObj = org_openqa_selenium_chromium_ChromiumDriver_findElements(self.jObj, locator.jObj); - javautil:List newObj = new (externalObj); - orgopenqaselenium:WebElement[] elements = []; - javalang:Object[] arr = check newObj.toArray(); - foreach var item in arr { - elements.push(check java:cast(item, orgopenqaselenium:WebElement)); - } - return elements; - } - - - # The function that maps to the `findElements` method of `org.openqa.selenium.chromium.ChromiumDriver`. - # - # + context - The `orgopenqaselenium:SearchContext` value required to map with the Java method parameter. - # + findCommand - The `javautilfunction:BiFunction` value required to map with the Java method parameter. - # + locator - The `orgopenqaselenium:By` value required to map with the Java method parameter. - # + return - The `javautil:List` value returning from the Java mapping. - public isolated function findElements2(orgopenqaselenium:SearchContext context, javautilfunction:BiFunction findCommand, orgopenqaselenium:By locator) returns javautil:List { - handle externalObj = org_openqa_selenium_chromium_ChromiumDriver_findElements2(self.jObj, context.jObj, findCommand.jObj, locator.jObj); - javautil:List newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `get` method of `org.openqa.selenium.chromium.ChromiumDriver`. - # - # + url - The `string` value required to map with the Java method parameter. - public isolated function get(string url) { - org_openqa_selenium_chromium_ChromiumDriver_get(self.jObj, java:fromString(url)); - } - - # The function that maps to the `getBiDi` method of `org.openqa.selenium.chromium.ChromiumDriver`. - # - # + return - The `orgopenqaseleniumbidi:BiDi` value returning from the Java mapping. - public isolated function getBiDi() returns orgopenqaseleniumbidi:BiDi { - handle externalObj = org_openqa_selenium_chromium_ChromiumDriver_getBiDi(self.jObj); - orgopenqaseleniumbidi:BiDi newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getCapabilities` method of `org.openqa.selenium.chromium.ChromiumDriver`. - # - # + return - The `orgopenqaselenium:Capabilities` value returning from the Java mapping. - public isolated function getCapabilities() returns orgopenqaselenium:Capabilities { - handle externalObj = org_openqa_selenium_chromium_ChromiumDriver_getCapabilities(self.jObj); - orgopenqaselenium:Capabilities newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getCastIssueMessage` method of `org.openqa.selenium.chromium.ChromiumDriver`. - # - # + return - The `string` value returning from the Java mapping. - public isolated function getCastIssueMessage() returns string { - return java:toString(org_openqa_selenium_chromium_ChromiumDriver_getCastIssueMessage(self.jObj)) ?: ""; - } - - # The function that maps to the `getCastSinks` method of `org.openqa.selenium.chromium.ChromiumDriver`. - # - # + return - The `javautil:List` value returning from the Java mapping. - public isolated function getCastSinks() returns javautil:List { - handle externalObj = org_openqa_selenium_chromium_ChromiumDriver_getCastSinks(self.jObj); - javautil:List newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getClass` method of `org.openqa.selenium.chromium.ChromiumDriver`. - # - # + return - The `javalang:Class` value returning from the Java mapping. - public isolated function getClass() returns javalang:Class { - handle externalObj = org_openqa_selenium_chromium_ChromiumDriver_getClass(self.jObj); - javalang:Class newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getCommandExecutor` method of `org.openqa.selenium.chromium.ChromiumDriver`. - # - # + return - The `orgopenqaseleniumremote:CommandExecutor` value returning from the Java mapping. - public isolated function getCommandExecutor() returns orgopenqaseleniumremote:CommandExecutor { - handle externalObj = org_openqa_selenium_chromium_ChromiumDriver_getCommandExecutor(self.jObj); - orgopenqaseleniumremote:CommandExecutor newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getCurrentUrl` method of `org.openqa.selenium.chromium.ChromiumDriver`. - # - # + return - The `string` value returning from the Java mapping. - public isolated function getCurrentUrl() returns string { - return java:toString(org_openqa_selenium_chromium_ChromiumDriver_getCurrentUrl(self.jObj)) ?: ""; - } - - # The function that maps to the `getDevTools` method of `org.openqa.selenium.chromium.ChromiumDriver`. - # - # + return - The `orgopenqaseleniumdevtools:DevTools` value returning from the Java mapping. - public isolated function getDevTools() returns orgopenqaseleniumdevtools:DevTools { - handle externalObj = org_openqa_selenium_chromium_ChromiumDriver_getDevTools(self.jObj); - orgopenqaseleniumdevtools:DevTools newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getDownloadableFiles` method of `org.openqa.selenium.chromium.ChromiumDriver`. - # - # + return - The `javautil:List` value returning from the Java mapping. - public isolated function getDownloadableFiles() returns javautil:List { - handle externalObj = org_openqa_selenium_chromium_ChromiumDriver_getDownloadableFiles(self.jObj); - javautil:List newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getErrorHandler` method of `org.openqa.selenium.chromium.ChromiumDriver`. - # - # + return - The `orgopenqaseleniumremote:ErrorHandler` value returning from the Java mapping. - public isolated function getErrorHandler() returns orgopenqaseleniumremote:ErrorHandler { - handle externalObj = org_openqa_selenium_chromium_ChromiumDriver_getErrorHandler(self.jObj); - orgopenqaseleniumremote:ErrorHandler newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getFederatedCredentialManagementDialog` method of `org.openqa.selenium.chromium.ChromiumDriver`. - # - # + return - The `orgopenqaseleniumfederatedcredentialmanagement:FederatedCredentialManagementDialog` value returning from the Java mapping. - public isolated function getFederatedCredentialManagementDialog() returns orgopenqaseleniumfederatedcredentialmanagement:FederatedCredentialManagementDialog { - handle externalObj = org_openqa_selenium_chromium_ChromiumDriver_getFederatedCredentialManagementDialog(self.jObj); - orgopenqaseleniumfederatedcredentialmanagement:FederatedCredentialManagementDialog newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getFileDetector` method of `org.openqa.selenium.chromium.ChromiumDriver`. - # - # + return - The `orgopenqaseleniumremote:FileDetector` value returning from the Java mapping. - public isolated function getFileDetector() returns orgopenqaseleniumremote:FileDetector { - handle externalObj = org_openqa_selenium_chromium_ChromiumDriver_getFileDetector(self.jObj); - orgopenqaseleniumremote:FileDetector newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getLocalStorage` method of `org.openqa.selenium.chromium.ChromiumDriver`. - # - # + return - The `orgopenqaseleniumhtml5:LocalStorage` value returning from the Java mapping. - public isolated function getLocalStorage() returns orgopenqaseleniumhtml5:LocalStorage { - handle externalObj = org_openqa_selenium_chromium_ChromiumDriver_getLocalStorage(self.jObj); - orgopenqaseleniumhtml5:LocalStorage newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getNetworkConditions` method of `org.openqa.selenium.chromium.ChromiumDriver`. - # - # + return - The `ChromiumNetworkConditions` value returning from the Java mapping. - public isolated function getNetworkConditions() returns ChromiumNetworkConditions { - handle externalObj = org_openqa_selenium_chromium_ChromiumDriver_getNetworkConditions(self.jObj); - ChromiumNetworkConditions newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getNetworkConnection` method of `org.openqa.selenium.chromium.ChromiumDriver`. - # - # + return - The `orgopenqaseleniummobile:ConnectionType` value returning from the Java mapping. - public isolated function getNetworkConnection() returns orgopenqaseleniummobile:ConnectionType { - handle externalObj = org_openqa_selenium_chromium_ChromiumDriver_getNetworkConnection(self.jObj); - orgopenqaseleniummobile:ConnectionType newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getPageSource` method of `org.openqa.selenium.chromium.ChromiumDriver`. - # - # + return - The `string` value returning from the Java mapping. - public isolated function getPageSource() returns string { - return java:toString(org_openqa_selenium_chromium_ChromiumDriver_getPageSource(self.jObj)) ?: ""; - } - - # The function that maps to the `getPinnedScripts` method of `org.openqa.selenium.chromium.ChromiumDriver`. - # - # + return - The `javautil:Set` value returning from the Java mapping. - public isolated function getPinnedScripts() returns javautil:Set { - handle externalObj = org_openqa_selenium_chromium_ChromiumDriver_getPinnedScripts(self.jObj); - javautil:Set newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getScreenshotAs` method of `org.openqa.selenium.chromium.ChromiumDriver`. - # - # + outputType - The `orgopenqaselenium:OutputType` value required to map with the Java method parameter. - # + return - The `javalang:Object` value returning from the Java mapping. - public isolated function getScreenshotAs(orgopenqaselenium:OutputType outputType) returns javalang:Object { - handle externalObj = org_openqa_selenium_chromium_ChromiumDriver_getScreenshotAs(self.jObj, outputType.jObj); - javalang:Object newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getSessionId` method of `org.openqa.selenium.chromium.ChromiumDriver`. - # - # + return - The `orgopenqaseleniumremote:SessionId` value returning from the Java mapping. - public isolated function getSessionId() returns orgopenqaseleniumremote:SessionId { - handle externalObj = org_openqa_selenium_chromium_ChromiumDriver_getSessionId(self.jObj); - orgopenqaseleniumremote:SessionId newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getSessionStorage` method of `org.openqa.selenium.chromium.ChromiumDriver`. - # - # + return - The `orgopenqaseleniumhtml5:SessionStorage` value returning from the Java mapping. - public isolated function getSessionStorage() returns orgopenqaseleniumhtml5:SessionStorage { - handle externalObj = org_openqa_selenium_chromium_ChromiumDriver_getSessionStorage(self.jObj); - orgopenqaseleniumhtml5:SessionStorage newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getTitle` method of `org.openqa.selenium.chromium.ChromiumDriver`. - # - # + return - The `string` value returning from the Java mapping. - public isolated function getTitle() returns string { - return java:toString(org_openqa_selenium_chromium_ChromiumDriver_getTitle(self.jObj)) ?: ""; - } - - # The function that maps to the `getWindowHandle` method of `org.openqa.selenium.chromium.ChromiumDriver`. - # - # + return - The `string` value returning from the Java mapping. - public isolated function getWindowHandle() returns string { - return java:toString(org_openqa_selenium_chromium_ChromiumDriver_getWindowHandle(self.jObj)) ?: ""; - } - - # The function that maps to the `getWindowHandles` method of `org.openqa.selenium.chromium.ChromiumDriver`. - # - # + return - The `javautil:Set` value returning from the Java mapping. - public isolated function getWindowHandles() returns javautil:Set { - handle externalObj = org_openqa_selenium_chromium_ChromiumDriver_getWindowHandles(self.jObj); - javautil:Set newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `hashCode` method of `org.openqa.selenium.chromium.ChromiumDriver`. - # - # + return - The `int` value returning from the Java mapping. - public isolated function hashCode() returns int { - return org_openqa_selenium_chromium_ChromiumDriver_hashCode(self.jObj); - } - - # The function that maps to the `launchApp` method of `org.openqa.selenium.chromium.ChromiumDriver`. - # - # + id - The `string` value required to map with the Java method parameter. - public isolated function launchApp(string id) { - org_openqa_selenium_chromium_ChromiumDriver_launchApp(self.jObj, java:fromString(id)); - } - - # The function that maps to the `location` method of `org.openqa.selenium.chromium.ChromiumDriver`. - # - # + return - The `orgopenqaseleniumhtml5:Location` value returning from the Java mapping. - public isolated function location() returns orgopenqaseleniumhtml5:Location { - handle externalObj = org_openqa_selenium_chromium_ChromiumDriver_location(self.jObj); - orgopenqaseleniumhtml5:Location newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `manage` method of `org.openqa.selenium.chromium.ChromiumDriver`. - # - # + return - The `orgopenqaselenium:Options` value returning from the Java mapping. - public isolated function manage() returns orgopenqaselenium:Options { - handle externalObj = org_openqa_selenium_chromium_ChromiumDriver_manage(self.jObj); - orgopenqaselenium:Options newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `maybeGetBiDi` method of `org.openqa.selenium.chromium.ChromiumDriver`. - # - # + return - The `javautil:Optional` value returning from the Java mapping. - public isolated function maybeGetBiDi() returns javautil:Optional { - handle externalObj = org_openqa_selenium_chromium_ChromiumDriver_maybeGetBiDi(self.jObj); - javautil:Optional newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `maybeGetDevTools` method of `org.openqa.selenium.chromium.ChromiumDriver`. - # - # + return - The `javautil:Optional` value returning from the Java mapping. - public isolated function maybeGetDevTools() returns javautil:Optional { - handle externalObj = org_openqa_selenium_chromium_ChromiumDriver_maybeGetDevTools(self.jObj); - javautil:Optional newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `navigate` method of `org.openqa.selenium.chromium.ChromiumDriver`. - # - # + return - The `orgopenqaselenium:Navigation` value returning from the Java mapping. - public isolated function navigate() returns orgopenqaselenium:Navigation { - handle externalObj = org_openqa_selenium_chromium_ChromiumDriver_navigate(self.jObj); - orgopenqaselenium:Navigation newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `network` method of `org.openqa.selenium.chromium.ChromiumDriver`. - # - # + return - The `orgopenqaseleniumremote:Network` value returning from the Java mapping. - public isolated function network() returns orgopenqaseleniumremote:Network { - handle externalObj = org_openqa_selenium_chromium_ChromiumDriver_network(self.jObj); - orgopenqaseleniumremote:Network newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `notify` method of `org.openqa.selenium.chromium.ChromiumDriver`. - public isolated function notify() { - org_openqa_selenium_chromium_ChromiumDriver_notify(self.jObj); - } - - # The function that maps to the `notifyAll` method of `org.openqa.selenium.chromium.ChromiumDriver`. - public isolated function notifyAll() { - org_openqa_selenium_chromium_ChromiumDriver_notifyAll(self.jObj); - } - - # The function that maps to the `onLogEvent` method of `org.openqa.selenium.chromium.ChromiumDriver`. - # - # + kind - The `orgopenqaseleniumlogging:EventType` value required to map with the Java method parameter. - public isolated function onLogEvent(orgopenqaseleniumlogging:EventType kind) { - org_openqa_selenium_chromium_ChromiumDriver_onLogEvent(self.jObj, kind.jObj); - } - - # The function that maps to the `perform` method of `org.openqa.selenium.chromium.ChromiumDriver`. - # - # + actions - The `javautil:Collection` value required to map with the Java method parameter. - public isolated function perform(javautil:Collection actions) { - org_openqa_selenium_chromium_ChromiumDriver_perform(self.jObj, actions.jObj); - } - - # The function that maps to the `pin` method of `org.openqa.selenium.chromium.ChromiumDriver`. - # - # + script - The `string` value required to map with the Java method parameter. - # + return - The `orgopenqaselenium:ScriptKey` value returning from the Java mapping. - public isolated function pin(string script) returns orgopenqaselenium:ScriptKey { - handle externalObj = org_openqa_selenium_chromium_ChromiumDriver_pin(self.jObj, java:fromString(script)); - orgopenqaselenium:ScriptKey newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `print` method of `org.openqa.selenium.chromium.ChromiumDriver`. - # - # + printOptions - The `orgopenqaseleniumprint:PrintOptions` value required to map with the Java method parameter. - # + return - The `orgopenqaselenium:Pdf` value returning from the Java mapping. - public isolated function print(orgopenqaseleniumprint:PrintOptions printOptions) returns orgopenqaselenium:Pdf { - handle externalObj = org_openqa_selenium_chromium_ChromiumDriver_print(self.jObj, printOptions.jObj); - orgopenqaselenium:Pdf newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `quit` method of `org.openqa.selenium.chromium.ChromiumDriver`. - public isolated function quit() { - org_openqa_selenium_chromium_ChromiumDriver_quit(self.jObj); - } - - # The function that maps to the `register` method of `org.openqa.selenium.chromium.ChromiumDriver`. - # - # + whenThisMatches - The `javautilfunction:Predicate` value required to map with the Java method parameter. - # + useTheseCredentials - The `javautilfunction:Supplier` value required to map with the Java method parameter. - public isolated function register(javautilfunction:Predicate whenThisMatches, javautilfunction:Supplier useTheseCredentials) { - org_openqa_selenium_chromium_ChromiumDriver_register(self.jObj, whenThisMatches.jObj, useTheseCredentials.jObj); - } - - # The function that maps to the `register` method of `org.openqa.selenium.chromium.ChromiumDriver`. - # - # + alwaysUseTheseCredentials - The `javautilfunction:Supplier` value required to map with the Java method parameter. - public isolated function register2(javautilfunction:Supplier alwaysUseTheseCredentials) { - org_openqa_selenium_chromium_ChromiumDriver_register2(self.jObj, alwaysUseTheseCredentials.jObj); - } - - # The function that maps to the `removeVirtualAuthenticator` method of `org.openqa.selenium.chromium.ChromiumDriver`. - # - # + authenticator - The `orgopenqaseleniumvirtualauthenticator:VirtualAuthenticator` value required to map with the Java method parameter. - public isolated function removeVirtualAuthenticator(orgopenqaseleniumvirtualauthenticator:VirtualAuthenticator authenticator) { - org_openqa_selenium_chromium_ChromiumDriver_removeVirtualAuthenticator(self.jObj, authenticator.jObj); - } - - # The function that maps to the `requireDownloadsEnabled` method of `org.openqa.selenium.chromium.ChromiumDriver`. - # - # + capabilities - The `orgopenqaselenium:Capabilities` value required to map with the Java method parameter. - public isolated function requireDownloadsEnabled(orgopenqaselenium:Capabilities capabilities) { - org_openqa_selenium_chromium_ChromiumDriver_requireDownloadsEnabled(self.jObj, capabilities.jObj); - } - - # The function that maps to the `resetCooldown` method of `org.openqa.selenium.chromium.ChromiumDriver`. - public isolated function resetCooldown() { - org_openqa_selenium_chromium_ChromiumDriver_resetCooldown(self.jObj); - } - - # The function that maps to the `resetInputState` method of `org.openqa.selenium.chromium.ChromiumDriver`. - public isolated function resetInputState() { - org_openqa_selenium_chromium_ChromiumDriver_resetInputState(self.jObj); - } - - # The function that maps to the `script` method of `org.openqa.selenium.chromium.ChromiumDriver`. - # - # + return - The `orgopenqaseleniumremote:Script` value returning from the Java mapping. - public isolated function script() returns orgopenqaseleniumremote:Script { - handle externalObj = org_openqa_selenium_chromium_ChromiumDriver_script(self.jObj); - orgopenqaseleniumremote:Script newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `selectCastSink` method of `org.openqa.selenium.chromium.ChromiumDriver`. - # - # + deviceName - The `string` value required to map with the Java method parameter. - public isolated function selectCastSink(string deviceName) { - org_openqa_selenium_chromium_ChromiumDriver_selectCastSink(self.jObj, java:fromString(deviceName)); - } - - # The function that maps to the `setDelayEnabled` method of `org.openqa.selenium.chromium.ChromiumDriver`. - # - # + enabled - The `boolean` value required to map with the Java method parameter. - public isolated function setDelayEnabled(boolean enabled) { - org_openqa_selenium_chromium_ChromiumDriver_setDelayEnabled(self.jObj, enabled); - } - - # The function that maps to the `setErrorHandler` method of `org.openqa.selenium.chromium.ChromiumDriver`. - # - # + handler - The `orgopenqaseleniumremote:ErrorHandler` value required to map with the Java method parameter. - public isolated function setErrorHandler(orgopenqaseleniumremote:ErrorHandler handler) { - org_openqa_selenium_chromium_ChromiumDriver_setErrorHandler(self.jObj, handler.jObj); - } - - # The function that maps to the `setFileDetector` method of `org.openqa.selenium.chromium.ChromiumDriver`. - # - # + detector - The `orgopenqaseleniumremote:FileDetector` value required to map with the Java method parameter. - public isolated function setFileDetector(orgopenqaseleniumremote:FileDetector detector) { - org_openqa_selenium_chromium_ChromiumDriver_setFileDetector(self.jObj, detector.jObj); - } - - # The function that maps to the `setLocation` method of `org.openqa.selenium.chromium.ChromiumDriver`. - # - # + location - The `orgopenqaseleniumhtml5:Location` value required to map with the Java method parameter. - public isolated function setLocation(orgopenqaseleniumhtml5:Location location) { - org_openqa_selenium_chromium_ChromiumDriver_setLocation(self.jObj, location.jObj); - } - - # The function that maps to the `setLogLevel` method of `org.openqa.selenium.chromium.ChromiumDriver`. - # - # + level - The `javautillogging:Level` value required to map with the Java method parameter. - public isolated function setLogLevel(javautillogging:Level level) { - org_openqa_selenium_chromium_ChromiumDriver_setLogLevel(self.jObj, level.jObj); - } - - # The function that maps to the `setNetworkConditions` method of `org.openqa.selenium.chromium.ChromiumDriver`. - # - # + networkConditions - The `ChromiumNetworkConditions` value required to map with the Java method parameter. - public isolated function setNetworkConditions(ChromiumNetworkConditions networkConditions) { - org_openqa_selenium_chromium_ChromiumDriver_setNetworkConditions(self.jObj, networkConditions.jObj); - } - - # The function that maps to the `setNetworkConnection` method of `org.openqa.selenium.chromium.ChromiumDriver`. - # - # + 'type - The `orgopenqaseleniummobile:ConnectionType` value required to map with the Java method parameter. - # + return - The `orgopenqaseleniummobile:ConnectionType` value returning from the Java mapping. - public isolated function setNetworkConnection(orgopenqaseleniummobile:ConnectionType 'type) returns orgopenqaseleniummobile:ConnectionType { - handle externalObj = org_openqa_selenium_chromium_ChromiumDriver_setNetworkConnection(self.jObj, 'type.jObj); - orgopenqaseleniummobile:ConnectionType newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `setPermission` method of `org.openqa.selenium.chromium.ChromiumDriver`. - # - # + name - The `string` value required to map with the Java method parameter. - # + value - The `string` value required to map with the Java method parameter. - public isolated function setPermission(string name, string value) { - org_openqa_selenium_chromium_ChromiumDriver_setPermission(self.jObj, java:fromString(name), java:fromString(value)); - } - - # The function that maps to the `startDesktopMirroring` method of `org.openqa.selenium.chromium.ChromiumDriver`. - # - # + deviceName - The `string` value required to map with the Java method parameter. - public isolated function startDesktopMirroring(string deviceName) { - org_openqa_selenium_chromium_ChromiumDriver_startDesktopMirroring(self.jObj, java:fromString(deviceName)); - } - - # The function that maps to the `startTabMirroring` method of `org.openqa.selenium.chromium.ChromiumDriver`. - # - # + deviceName - The `string` value required to map with the Java method parameter. - public isolated function startTabMirroring(string deviceName) { - org_openqa_selenium_chromium_ChromiumDriver_startTabMirroring(self.jObj, java:fromString(deviceName)); - } - - # The function that maps to the `stopCasting` method of `org.openqa.selenium.chromium.ChromiumDriver`. - # - # + deviceName - The `string` value required to map with the Java method parameter. - public isolated function stopCasting(string deviceName) { - org_openqa_selenium_chromium_ChromiumDriver_stopCasting(self.jObj, java:fromString(deviceName)); - } - - # The function that maps to the `switchTo` method of `org.openqa.selenium.chromium.ChromiumDriver`. - # - # + return - The `orgopenqaselenium:TargetLocator` value returning from the Java mapping. - public isolated function switchTo() returns orgopenqaselenium:TargetLocator { - handle externalObj = org_openqa_selenium_chromium_ChromiumDriver_switchTo(self.jObj); - orgopenqaselenium:TargetLocator newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `unpin` method of `org.openqa.selenium.chromium.ChromiumDriver`. - # - # + 'key - The `orgopenqaselenium:ScriptKey` value required to map with the Java method parameter. - public isolated function unpin(orgopenqaselenium:ScriptKey 'key) { - org_openqa_selenium_chromium_ChromiumDriver_unpin(self.jObj, 'key.jObj); - } - - # The function that maps to the `wait` method of `org.openqa.selenium.chromium.ChromiumDriver`. - # - # + return - The `javalang:InterruptedException` value returning from the Java mapping. - public isolated function 'wait() returns javalang:InterruptedException? { - error|() externalObj = org_openqa_selenium_chromium_ChromiumDriver_wait(self.jObj); - if (externalObj is error) { - javalang:InterruptedException e = error javalang:InterruptedException(javalang:INTERRUPTEDEXCEPTION, externalObj, message = externalObj.message()); - return e; - } - } - - # The function that maps to the `wait` method of `org.openqa.selenium.chromium.ChromiumDriver`. - # - # + arg0 - The `int` value required to map with the Java method parameter. - # + return - The `javalang:InterruptedException` value returning from the Java mapping. - public isolated function wait2(int arg0) returns javalang:InterruptedException? { - error|() externalObj = org_openqa_selenium_chromium_ChromiumDriver_wait2(self.jObj, arg0); - if (externalObj is error) { - javalang:InterruptedException e = error javalang:InterruptedException(javalang:INTERRUPTEDEXCEPTION, externalObj, message = externalObj.message()); - return e; - } - } - - # The function that maps to the `wait` method of `org.openqa.selenium.chromium.ChromiumDriver`. - # - # + arg0 - The `int` value required to map with the Java method parameter. - # + arg1 - The `int` value required to map with the Java method parameter. - # + return - The `javalang:InterruptedException` value returning from the Java mapping. - public isolated function wait3(int arg0, int arg1) returns javalang:InterruptedException? { - error|() externalObj = org_openqa_selenium_chromium_ChromiumDriver_wait3(self.jObj, arg0, arg1); - if (externalObj is error) { - javalang:InterruptedException e = error javalang:InterruptedException(javalang:INTERRUPTEDEXCEPTION, externalObj, message = externalObj.message()); - return e; - } - } - -} - -# The function that maps to the `builder` method of `org.openqa.selenium.chromium.ChromiumDriver`. -# -# + return - The `orgopenqaseleniumremote:RemoteWebDriverBuilder` value returning from the Java mapping. -public isolated function ChromiumDriver_builder() returns orgopenqaseleniumremote:RemoteWebDriverBuilder { - handle externalObj = org_openqa_selenium_chromium_ChromiumDriver_builder(); - orgopenqaseleniumremote:RemoteWebDriverBuilder newObj = new (externalObj); - return newObj; -} - -# The function that retrieves the value of the public field `IS_CHROMIUM_BROWSER`. -# -# + return - The `Predicate` value of the field. -public isolated function ChromiumDriver_getIS_CHROMIUM_BROWSER() returns javautilfunction:Predicate { - handle externalObj = org_openqa_selenium_chromium_ChromiumDriver_getIS_CHROMIUM_BROWSER(); - javautilfunction:Predicate newObj = new (externalObj); - return newObj; -} - -isolated function org_openqa_selenium_chromium_ChromiumDriver_addVirtualAuthenticator(handle receiver, handle options) returns handle = @java:Method { - name: "addVirtualAuthenticator", - 'class: "org.openqa.selenium.chromium.ChromiumDriver", - paramTypes: ["org.openqa.selenium.virtualauthenticator.VirtualAuthenticatorOptions"] -} external; - -isolated function org_openqa_selenium_chromium_ChromiumDriver_builder() returns handle = @java:Method { - name: "builder", - 'class: "org.openqa.selenium.chromium.ChromiumDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_chromium_ChromiumDriver_close(handle receiver) = @java:Method { - name: "close", - 'class: "org.openqa.selenium.chromium.ChromiumDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_chromium_ChromiumDriver_deleteDownloadableFiles(handle receiver) = @java:Method { - name: "deleteDownloadableFiles", - 'class: "org.openqa.selenium.chromium.ChromiumDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_chromium_ChromiumDriver_deleteNetworkConditions(handle receiver) = @java:Method { - name: "deleteNetworkConditions", - 'class: "org.openqa.selenium.chromium.ChromiumDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_chromium_ChromiumDriver_downloadFile(handle receiver, handle fileName, handle targetLocation) returns error? = @java:Method { - name: "downloadFile", - 'class: "org.openqa.selenium.chromium.ChromiumDriver", - paramTypes: ["java.lang.String", "java.nio.file.Path"] -} external; - -isolated function org_openqa_selenium_chromium_ChromiumDriver_equals(handle receiver, handle arg0) returns boolean = @java:Method { - name: "equals", - 'class: "org.openqa.selenium.chromium.ChromiumDriver", - paramTypes: ["java.lang.Object"] -} external; - -isolated function org_openqa_selenium_chromium_ChromiumDriver_executeAsyncScript(handle receiver, handle script, handle args) returns handle = @java:Method { - name: "executeAsyncScript", - 'class: "org.openqa.selenium.chromium.ChromiumDriver", - paramTypes: ["java.lang.String", "[Ljava.lang.Object;"] -} external; - -isolated function org_openqa_selenium_chromium_ChromiumDriver_executeCdpCommand(handle receiver, handle commandName, handle parameters) returns handle = @java:Method { - name: "executeCdpCommand", - 'class: "org.openqa.selenium.chromium.ChromiumDriver", - paramTypes: ["java.lang.String", "java.util.Map"] -} external; - -isolated function org_openqa_selenium_chromium_ChromiumDriver_executeScript(handle receiver, handle 'key, handle args) returns handle = @java:Method { - name: "executeScript", - 'class: "org.openqa.selenium.chromium.ChromiumDriver", - paramTypes: ["org.openqa.selenium.ScriptKey", "[Ljava.lang.Object;"] -} external; - -isolated function org_openqa_selenium_chromium_ChromiumDriver_executeScript2(handle receiver, handle script, handle args) returns handle = @java:Method { - name: "executeScript", - 'class: "org.openqa.selenium.chromium.ChromiumDriver", - paramTypes: ["java.lang.String", "[Ljava.lang.Object;"] -} external; - -isolated function org_openqa_selenium_chromium_ChromiumDriver_findElement(handle receiver, handle locator) returns handle = @java:Method { - name: "findElement", - 'class: "org.openqa.selenium.chromium.ChromiumDriver", - paramTypes: ["org.openqa.selenium.By"] -} external; - -isolated function org_openqa_selenium_chromium_ChromiumDriver_findElements(handle receiver, handle locator) returns handle = @java:Method { - name: "findElements", - 'class: "org.openqa.selenium.chromium.ChromiumDriver", - paramTypes: ["org.openqa.selenium.By"] -} external; - -isolated function org_openqa_selenium_chromium_ChromiumDriver_findElements2(handle receiver, handle context, handle findCommand, handle locator) returns handle = @java:Method { - name: "findElements", - 'class: "org.openqa.selenium.chromium.ChromiumDriver", - paramTypes: ["org.openqa.selenium.SearchContext", "java.util.function.BiFunction", "org.openqa.selenium.By"] -} external; - -isolated function org_openqa_selenium_chromium_ChromiumDriver_get(handle receiver, handle url) = @java:Method { - name: "get", - 'class: "org.openqa.selenium.chromium.ChromiumDriver", - paramTypes: ["java.lang.String"] -} external; - -isolated function org_openqa_selenium_chromium_ChromiumDriver_getBiDi(handle receiver) returns handle = @java:Method { - name: "getBiDi", - 'class: "org.openqa.selenium.chromium.ChromiumDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_chromium_ChromiumDriver_getCapabilities(handle receiver) returns handle = @java:Method { - name: "getCapabilities", - 'class: "org.openqa.selenium.chromium.ChromiumDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_chromium_ChromiumDriver_getCastIssueMessage(handle receiver) returns handle = @java:Method { - name: "getCastIssueMessage", - 'class: "org.openqa.selenium.chromium.ChromiumDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_chromium_ChromiumDriver_getCastSinks(handle receiver) returns handle = @java:Method { - name: "getCastSinks", - 'class: "org.openqa.selenium.chromium.ChromiumDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_chromium_ChromiumDriver_getClass(handle receiver) returns handle = @java:Method { - name: "getClass", - 'class: "org.openqa.selenium.chromium.ChromiumDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_chromium_ChromiumDriver_getCommandExecutor(handle receiver) returns handle = @java:Method { - name: "getCommandExecutor", - 'class: "org.openqa.selenium.chromium.ChromiumDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_chromium_ChromiumDriver_getCurrentUrl(handle receiver) returns handle = @java:Method { - name: "getCurrentUrl", - 'class: "org.openqa.selenium.chromium.ChromiumDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_chromium_ChromiumDriver_getDevTools(handle receiver) returns handle = @java:Method { - name: "getDevTools", - 'class: "org.openqa.selenium.chromium.ChromiumDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_chromium_ChromiumDriver_getDownloadableFiles(handle receiver) returns handle = @java:Method { - name: "getDownloadableFiles", - 'class: "org.openqa.selenium.chromium.ChromiumDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_chromium_ChromiumDriver_getErrorHandler(handle receiver) returns handle = @java:Method { - name: "getErrorHandler", - 'class: "org.openqa.selenium.chromium.ChromiumDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_chromium_ChromiumDriver_getFederatedCredentialManagementDialog(handle receiver) returns handle = @java:Method { - name: "getFederatedCredentialManagementDialog", - 'class: "org.openqa.selenium.chromium.ChromiumDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_chromium_ChromiumDriver_getFileDetector(handle receiver) returns handle = @java:Method { - name: "getFileDetector", - 'class: "org.openqa.selenium.chromium.ChromiumDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_chromium_ChromiumDriver_getLocalStorage(handle receiver) returns handle = @java:Method { - name: "getLocalStorage", - 'class: "org.openqa.selenium.chromium.ChromiumDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_chromium_ChromiumDriver_getNetworkConditions(handle receiver) returns handle = @java:Method { - name: "getNetworkConditions", - 'class: "org.openqa.selenium.chromium.ChromiumDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_chromium_ChromiumDriver_getNetworkConnection(handle receiver) returns handle = @java:Method { - name: "getNetworkConnection", - 'class: "org.openqa.selenium.chromium.ChromiumDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_chromium_ChromiumDriver_getPageSource(handle receiver) returns handle = @java:Method { - name: "getPageSource", - 'class: "org.openqa.selenium.chromium.ChromiumDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_chromium_ChromiumDriver_getPinnedScripts(handle receiver) returns handle = @java:Method { - name: "getPinnedScripts", - 'class: "org.openqa.selenium.chromium.ChromiumDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_chromium_ChromiumDriver_getScreenshotAs(handle receiver, handle outputType) returns handle = @java:Method { - name: "getScreenshotAs", - 'class: "org.openqa.selenium.chromium.ChromiumDriver", - paramTypes: ["org.openqa.selenium.OutputType"] -} external; - -isolated function org_openqa_selenium_chromium_ChromiumDriver_getSessionId(handle receiver) returns handle = @java:Method { - name: "getSessionId", - 'class: "org.openqa.selenium.chromium.ChromiumDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_chromium_ChromiumDriver_getSessionStorage(handle receiver) returns handle = @java:Method { - name: "getSessionStorage", - 'class: "org.openqa.selenium.chromium.ChromiumDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_chromium_ChromiumDriver_getTitle(handle receiver) returns handle = @java:Method { - name: "getTitle", - 'class: "org.openqa.selenium.chromium.ChromiumDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_chromium_ChromiumDriver_getWindowHandle(handle receiver) returns handle = @java:Method { - name: "getWindowHandle", - 'class: "org.openqa.selenium.chromium.ChromiumDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_chromium_ChromiumDriver_getWindowHandles(handle receiver) returns handle = @java:Method { - name: "getWindowHandles", - 'class: "org.openqa.selenium.chromium.ChromiumDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_chromium_ChromiumDriver_hashCode(handle receiver) returns int = @java:Method { - name: "hashCode", - 'class: "org.openqa.selenium.chromium.ChromiumDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_chromium_ChromiumDriver_launchApp(handle receiver, handle id) = @java:Method { - name: "launchApp", - 'class: "org.openqa.selenium.chromium.ChromiumDriver", - paramTypes: ["java.lang.String"] -} external; - -isolated function org_openqa_selenium_chromium_ChromiumDriver_location(handle receiver) returns handle = @java:Method { - name: "location", - 'class: "org.openqa.selenium.chromium.ChromiumDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_chromium_ChromiumDriver_manage(handle receiver) returns handle = @java:Method { - name: "manage", - 'class: "org.openqa.selenium.chromium.ChromiumDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_chromium_ChromiumDriver_maybeGetBiDi(handle receiver) returns handle = @java:Method { - name: "maybeGetBiDi", - 'class: "org.openqa.selenium.chromium.ChromiumDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_chromium_ChromiumDriver_maybeGetDevTools(handle receiver) returns handle = @java:Method { - name: "maybeGetDevTools", - 'class: "org.openqa.selenium.chromium.ChromiumDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_chromium_ChromiumDriver_navigate(handle receiver) returns handle = @java:Method { - name: "navigate", - 'class: "org.openqa.selenium.chromium.ChromiumDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_chromium_ChromiumDriver_network(handle receiver) returns handle = @java:Method { - name: "network", - 'class: "org.openqa.selenium.chromium.ChromiumDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_chromium_ChromiumDriver_notify(handle receiver) = @java:Method { - name: "notify", - 'class: "org.openqa.selenium.chromium.ChromiumDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_chromium_ChromiumDriver_notifyAll(handle receiver) = @java:Method { - name: "notifyAll", - 'class: "org.openqa.selenium.chromium.ChromiumDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_chromium_ChromiumDriver_onLogEvent(handle receiver, handle kind) = @java:Method { - name: "onLogEvent", - 'class: "org.openqa.selenium.chromium.ChromiumDriver", - paramTypes: ["org.openqa.selenium.logging.EventType"] -} external; - -isolated function org_openqa_selenium_chromium_ChromiumDriver_perform(handle receiver, handle actions) = @java:Method { - name: "perform", - 'class: "org.openqa.selenium.chromium.ChromiumDriver", - paramTypes: ["java.util.Collection"] -} external; - -isolated function org_openqa_selenium_chromium_ChromiumDriver_pin(handle receiver, handle script) returns handle = @java:Method { - name: "pin", - 'class: "org.openqa.selenium.chromium.ChromiumDriver", - paramTypes: ["java.lang.String"] -} external; - -isolated function org_openqa_selenium_chromium_ChromiumDriver_print(handle receiver, handle printOptions) returns handle = @java:Method { - name: "print", - 'class: "org.openqa.selenium.chromium.ChromiumDriver", - paramTypes: ["org.openqa.selenium.print.PrintOptions"] -} external; - -isolated function org_openqa_selenium_chromium_ChromiumDriver_quit(handle receiver) = @java:Method { - name: "quit", - 'class: "org.openqa.selenium.chromium.ChromiumDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_chromium_ChromiumDriver_register(handle receiver, handle whenThisMatches, handle useTheseCredentials) = @java:Method { - name: "register", - 'class: "org.openqa.selenium.chromium.ChromiumDriver", - paramTypes: ["java.util.function.Predicate", "java.util.function.Supplier"] -} external; - -isolated function org_openqa_selenium_chromium_ChromiumDriver_register2(handle receiver, handle alwaysUseTheseCredentials) = @java:Method { - name: "register", - 'class: "org.openqa.selenium.chromium.ChromiumDriver", - paramTypes: ["java.util.function.Supplier"] -} external; - -isolated function org_openqa_selenium_chromium_ChromiumDriver_removeVirtualAuthenticator(handle receiver, handle authenticator) = @java:Method { - name: "removeVirtualAuthenticator", - 'class: "org.openqa.selenium.chromium.ChromiumDriver", - paramTypes: ["org.openqa.selenium.virtualauthenticator.VirtualAuthenticator"] -} external; - -isolated function org_openqa_selenium_chromium_ChromiumDriver_requireDownloadsEnabled(handle receiver, handle capabilities) = @java:Method { - name: "requireDownloadsEnabled", - 'class: "org.openqa.selenium.chromium.ChromiumDriver", - paramTypes: ["org.openqa.selenium.Capabilities"] -} external; - -isolated function org_openqa_selenium_chromium_ChromiumDriver_resetCooldown(handle receiver) = @java:Method { - name: "resetCooldown", - 'class: "org.openqa.selenium.chromium.ChromiumDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_chromium_ChromiumDriver_resetInputState(handle receiver) = @java:Method { - name: "resetInputState", - 'class: "org.openqa.selenium.chromium.ChromiumDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_chromium_ChromiumDriver_script(handle receiver) returns handle = @java:Method { - name: "script", - 'class: "org.openqa.selenium.chromium.ChromiumDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_chromium_ChromiumDriver_selectCastSink(handle receiver, handle deviceName) = @java:Method { - name: "selectCastSink", - 'class: "org.openqa.selenium.chromium.ChromiumDriver", - paramTypes: ["java.lang.String"] -} external; - -isolated function org_openqa_selenium_chromium_ChromiumDriver_setDelayEnabled(handle receiver, boolean enabled) = @java:Method { - name: "setDelayEnabled", - 'class: "org.openqa.selenium.chromium.ChromiumDriver", - paramTypes: ["boolean"] -} external; - -isolated function org_openqa_selenium_chromium_ChromiumDriver_setErrorHandler(handle receiver, handle handler) = @java:Method { - name: "setErrorHandler", - 'class: "org.openqa.selenium.chromium.ChromiumDriver", - paramTypes: ["org.openqa.selenium.remote.ErrorHandler"] -} external; - -isolated function org_openqa_selenium_chromium_ChromiumDriver_setFileDetector(handle receiver, handle detector) = @java:Method { - name: "setFileDetector", - 'class: "org.openqa.selenium.chromium.ChromiumDriver", - paramTypes: ["org.openqa.selenium.remote.FileDetector"] -} external; - -isolated function org_openqa_selenium_chromium_ChromiumDriver_setLocation(handle receiver, handle location) = @java:Method { - name: "setLocation", - 'class: "org.openqa.selenium.chromium.ChromiumDriver", - paramTypes: ["org.openqa.selenium.html5.Location"] -} external; - -isolated function org_openqa_selenium_chromium_ChromiumDriver_setLogLevel(handle receiver, handle level) = @java:Method { - name: "setLogLevel", - 'class: "org.openqa.selenium.chromium.ChromiumDriver", - paramTypes: ["java.util.logging.Level"] -} external; - -isolated function org_openqa_selenium_chromium_ChromiumDriver_setNetworkConditions(handle receiver, handle networkConditions) = @java:Method { - name: "setNetworkConditions", - 'class: "org.openqa.selenium.chromium.ChromiumDriver", - paramTypes: ["org.openqa.selenium.chromium.ChromiumNetworkConditions"] -} external; - -isolated function org_openqa_selenium_chromium_ChromiumDriver_setNetworkConnection(handle receiver, handle 'type) returns handle = @java:Method { - name: "setNetworkConnection", - 'class: "org.openqa.selenium.chromium.ChromiumDriver", - paramTypes: ["org.openqa.selenium.mobile.NetworkConnection$ConnectionType"] -} external; - -isolated function org_openqa_selenium_chromium_ChromiumDriver_setPermission(handle receiver, handle name, handle value) = @java:Method { - name: "setPermission", - 'class: "org.openqa.selenium.chromium.ChromiumDriver", - paramTypes: ["java.lang.String", "java.lang.String"] -} external; - -isolated function org_openqa_selenium_chromium_ChromiumDriver_startDesktopMirroring(handle receiver, handle deviceName) = @java:Method { - name: "startDesktopMirroring", - 'class: "org.openqa.selenium.chromium.ChromiumDriver", - paramTypes: ["java.lang.String"] -} external; - -isolated function org_openqa_selenium_chromium_ChromiumDriver_startTabMirroring(handle receiver, handle deviceName) = @java:Method { - name: "startTabMirroring", - 'class: "org.openqa.selenium.chromium.ChromiumDriver", - paramTypes: ["java.lang.String"] -} external; - -isolated function org_openqa_selenium_chromium_ChromiumDriver_stopCasting(handle receiver, handle deviceName) = @java:Method { - name: "stopCasting", - 'class: "org.openqa.selenium.chromium.ChromiumDriver", - paramTypes: ["java.lang.String"] -} external; - -isolated function org_openqa_selenium_chromium_ChromiumDriver_switchTo(handle receiver) returns handle = @java:Method { - name: "switchTo", - 'class: "org.openqa.selenium.chromium.ChromiumDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_chromium_ChromiumDriver_unpin(handle receiver, handle 'key) = @java:Method { - name: "unpin", - 'class: "org.openqa.selenium.chromium.ChromiumDriver", - paramTypes: ["org.openqa.selenium.ScriptKey"] -} external; - -isolated function org_openqa_selenium_chromium_ChromiumDriver_wait(handle receiver) returns error? = @java:Method { - name: "wait", - 'class: "org.openqa.selenium.chromium.ChromiumDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_chromium_ChromiumDriver_wait2(handle receiver, int arg0) returns error? = @java:Method { - name: "wait", - 'class: "org.openqa.selenium.chromium.ChromiumDriver", - paramTypes: ["long"] -} external; - -isolated function org_openqa_selenium_chromium_ChromiumDriver_wait3(handle receiver, int arg0, int arg1) returns error? = @java:Method { - name: "wait", - 'class: "org.openqa.selenium.chromium.ChromiumDriver", - paramTypes: ["long", "int"] -} external; - -isolated function org_openqa_selenium_chromium_ChromiumDriver_getIS_CHROMIUM_BROWSER() returns handle = @java:FieldGet { - name: "IS_CHROMIUM_BROWSER", - 'class: "org.openqa.selenium.chromium.ChromiumDriver" -} external; - diff --git a/ballerina/modules/org.openqa.selenium.chromium/ChromiumNetworkConditions.bal b/ballerina/modules/org.openqa.selenium.chromium/ChromiumNetworkConditions.bal deleted file mode 100644 index ee7fb33..0000000 --- a/ballerina/modules/org.openqa.selenium.chromium/ChromiumNetworkConditions.bal +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). -// -// WSO2 LLC. licenses this file to you under the Apache License, -// Version 2.0 (the "License"); you may not use this file except -// in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -import ballerina/jballerina.java; - -# Ballerina class mapping for the Java `org.openqa.selenium.chromium.ChromiumNetworkConditions` class. -@java:Binding {'class: "org.openqa.selenium.chromium.ChromiumNetworkConditions"} -public distinct class ChromiumNetworkConditions { - - *java:JObject; - - # The `handle` field that stores the reference to the `org.openqa.selenium.chromium.ChromiumNetworkConditions` object. - public handle jObj; - - # The init function of the Ballerina class mapping the `org.openqa.selenium.chromium.ChromiumNetworkConditions` Java class. - # - # + obj - The `handle` value containing the Java reference of the object. - public isolated function init(handle obj) { - self.jObj = obj; - } - - # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.chromium.ChromiumNetworkConditions` Java class. - # - # + return - The `string` form of the Java object instance. - public isolated function toString() returns string { - return java:toString(self.jObj) ?: ""; - } - -} - diff --git a/ballerina/modules/org.openqa.selenium.devtools/DevTools.bal b/ballerina/modules/org.openqa.selenium.devtools/DevTools.bal deleted file mode 100644 index 9a6d6ae..0000000 --- a/ballerina/modules/org.openqa.selenium.devtools/DevTools.bal +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). -// -// WSO2 LLC. licenses this file to you under the Apache License, -// Version 2.0 (the "License"); you may not use this file except -// in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -import ballerina/jballerina.java; - -# Ballerina class mapping for the Java `org.openqa.selenium.devtools.DevTools` class. -@java:Binding {'class: "org.openqa.selenium.devtools.DevTools"} -public distinct class DevTools { - - *java:JObject; - - # The `handle` field that stores the reference to the `org.openqa.selenium.devtools.DevTools` object. - public handle jObj; - - # The init function of the Ballerina class mapping the `org.openqa.selenium.devtools.DevTools` Java class. - # - # + obj - The `handle` value containing the Java reference of the object. - public isolated function init(handle obj) { - self.jObj = obj; - } - - # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.devtools.DevTools` Java class. - # - # + return - The `string` form of the Java object instance. - public isolated function toString() returns string { - return java:toString(self.jObj) ?: ""; - } - -} - diff --git a/ballerina/modules/org.openqa.selenium.federatedcredentialmanagement/FederatedCredentialManagementDialog.bal b/ballerina/modules/org.openqa.selenium.federatedcredentialmanagement/FederatedCredentialManagementDialog.bal deleted file mode 100644 index 9d4333c..0000000 --- a/ballerina/modules/org.openqa.selenium.federatedcredentialmanagement/FederatedCredentialManagementDialog.bal +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). -// -// WSO2 LLC. licenses this file to you under the Apache License, -// Version 2.0 (the "License"); you may not use this file except -// in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -import ballerina/jballerina.java; - -# Ballerina class mapping for the Java `org.openqa.selenium.federatedcredentialmanagement.FederatedCredentialManagementDialog` interface. -@java:Binding {'class: "org.openqa.selenium.federatedcredentialmanagement.FederatedCredentialManagementDialog"} -public distinct class FederatedCredentialManagementDialog { - - *java:JObject; - - # The `handle` field that stores the reference to the `org.openqa.selenium.federatedcredentialmanagement.FederatedCredentialManagementDialog` object. - public handle jObj; - - # The init function of the Ballerina class mapping the `org.openqa.selenium.federatedcredentialmanagement.FederatedCredentialManagementDialog` Java interface. - # - # + obj - The `handle` value containing the Java reference of the object. - public isolated function init(handle obj) { - self.jObj = obj; - } - - # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.federatedcredentialmanagement.FederatedCredentialManagementDialog` Java interface. - # - # + return - The `string` form of the Java object instance. - public isolated function toString() returns string { - return java:toString(self.jObj) ?: ""; - } - -} - diff --git a/ballerina/modules/org.openqa.selenium.html5/LocalStorage.bal b/ballerina/modules/org.openqa.selenium.html5/LocalStorage.bal deleted file mode 100644 index 7f9e648..0000000 --- a/ballerina/modules/org.openqa.selenium.html5/LocalStorage.bal +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). -// -// WSO2 LLC. licenses this file to you under the Apache License, -// Version 2.0 (the "License"); you may not use this file except -// in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -import ballerina/jballerina.java; - -# Ballerina class mapping for the Java `org.openqa.selenium.html5.LocalStorage` interface. -@java:Binding {'class: "org.openqa.selenium.html5.LocalStorage"} -public distinct class LocalStorage { - - *java:JObject; - - # The `handle` field that stores the reference to the `org.openqa.selenium.html5.LocalStorage` object. - public handle jObj; - - # The init function of the Ballerina class mapping the `org.openqa.selenium.html5.LocalStorage` Java interface. - # - # + obj - The `handle` value containing the Java reference of the object. - public isolated function init(handle obj) { - self.jObj = obj; - } - - # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.html5.LocalStorage` Java interface. - # - # + return - The `string` form of the Java object instance. - public isolated function toString() returns string { - return java:toString(self.jObj) ?: ""; - } - -} - diff --git a/ballerina/modules/org.openqa.selenium.html5/Location.bal b/ballerina/modules/org.openqa.selenium.html5/Location.bal deleted file mode 100644 index b85f92d..0000000 --- a/ballerina/modules/org.openqa.selenium.html5/Location.bal +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). -// -// WSO2 LLC. licenses this file to you under the Apache License, -// Version 2.0 (the "License"); you may not use this file except -// in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -import ballerina/jballerina.java; - -# Ballerina class mapping for the Java `org.openqa.selenium.html5.Location` class. -@java:Binding {'class: "org.openqa.selenium.html5.Location"} -public distinct class Location { - - *java:JObject; - - # The `handle` field that stores the reference to the `org.openqa.selenium.html5.Location` object. - public handle jObj; - - # The init function of the Ballerina class mapping the `org.openqa.selenium.html5.Location` Java class. - # - # + obj - The `handle` value containing the Java reference of the object. - public isolated function init(handle obj) { - self.jObj = obj; - } - - # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.html5.Location` Java class. - # - # + return - The `string` form of the Java object instance. - public isolated function toString() returns string { - return java:toString(self.jObj) ?: ""; - } - -} - diff --git a/ballerina/modules/org.openqa.selenium.html5/SessionStorage.bal b/ballerina/modules/org.openqa.selenium.html5/SessionStorage.bal deleted file mode 100644 index 3c202e3..0000000 --- a/ballerina/modules/org.openqa.selenium.html5/SessionStorage.bal +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). -// -// WSO2 LLC. licenses this file to you under the Apache License, -// Version 2.0 (the "License"); you may not use this file except -// in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -import ballerina/jballerina.java; - -# Ballerina class mapping for the Java `org.openqa.selenium.html5.SessionStorage` interface. -@java:Binding {'class: "org.openqa.selenium.html5.SessionStorage"} -public distinct class SessionStorage { - - *java:JObject; - - # The `handle` field that stores the reference to the `org.openqa.selenium.html5.SessionStorage` object. - public handle jObj; - - # The init function of the Ballerina class mapping the `org.openqa.selenium.html5.SessionStorage` Java interface. - # - # + obj - The `handle` value containing the Java reference of the object. - public isolated function init(handle obj) { - self.jObj = obj; - } - - # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.html5.SessionStorage` Java interface. - # - # + return - The `string` form of the Java object instance. - public isolated function toString() returns string { - return java:toString(self.jObj) ?: ""; - } - -} - diff --git a/ballerina/modules/org.openqa.selenium.logging/EventType.bal b/ballerina/modules/org.openqa.selenium.logging/EventType.bal deleted file mode 100644 index b51b399..0000000 --- a/ballerina/modules/org.openqa.selenium.logging/EventType.bal +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). -// -// WSO2 LLC. licenses this file to you under the Apache License, -// Version 2.0 (the "License"); you may not use this file except -// in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -import ballerina/jballerina.java; - -# Ballerina class mapping for the Java `org.openqa.selenium.logging.EventType` interface. -@java:Binding {'class: "org.openqa.selenium.logging.EventType"} -public distinct class EventType { - - *java:JObject; - - # The `handle` field that stores the reference to the `org.openqa.selenium.logging.EventType` object. - public handle jObj; - - # The init function of the Ballerina class mapping the `org.openqa.selenium.logging.EventType` Java interface. - # - # + obj - The `handle` value containing the Java reference of the object. - public isolated function init(handle obj) { - self.jObj = obj; - } - - # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.logging.EventType` Java interface. - # - # + return - The `string` form of the Java object instance. - public isolated function toString() returns string { - return java:toString(self.jObj) ?: ""; - } - -} - diff --git a/ballerina/modules/org.openqa.selenium.mobile/ConnectionType.bal b/ballerina/modules/org.openqa.selenium.mobile/ConnectionType.bal deleted file mode 100644 index 2687bae..0000000 --- a/ballerina/modules/org.openqa.selenium.mobile/ConnectionType.bal +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). -// -// WSO2 LLC. licenses this file to you under the Apache License, -// Version 2.0 (the "License"); you may not use this file except -// in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -import ballerina/jballerina.java; - -# Ballerina class mapping for the Java `org.openqa.selenium.mobile.NetworkConnection$ConnectionType` class. -@java:Binding {'class: "org.openqa.selenium.mobile.NetworkConnection$ConnectionType"} -public distinct class ConnectionType { - - *java:JObject; - - # The `handle` field that stores the reference to the `org.openqa.selenium.mobile.NetworkConnection$ConnectionType` object. - public handle jObj; - - # The init function of the Ballerina class mapping the `org.openqa.selenium.mobile.NetworkConnection$ConnectionType` Java class. - # - # + obj - The `handle` value containing the Java reference of the object. - public isolated function init(handle obj) { - self.jObj = obj; - } - - # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.mobile.NetworkConnection$ConnectionType` Java class. - # - # + return - The `string` form of the Java object instance. - public isolated function toString() returns string { - return java:toString(self.jObj) ?: ""; - } - -} - diff --git a/ballerina/modules/org.openqa.selenium.print/PrintOptions.bal b/ballerina/modules/org.openqa.selenium.print/PrintOptions.bal deleted file mode 100644 index fbc50a2..0000000 --- a/ballerina/modules/org.openqa.selenium.print/PrintOptions.bal +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). -// -// WSO2 LLC. licenses this file to you under the Apache License, -// Version 2.0 (the "License"); you may not use this file except -// in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -import ballerina/jballerina.java; - -# Ballerina class mapping for the Java `org.openqa.selenium.print.PrintOptions` class. -@java:Binding {'class: "org.openqa.selenium.print.PrintOptions"} -public distinct class PrintOptions { - - *java:JObject; - - # The `handle` field that stores the reference to the `org.openqa.selenium.print.PrintOptions` object. - public handle jObj; - - # The init function of the Ballerina class mapping the `org.openqa.selenium.print.PrintOptions` Java class. - # - # + obj - The `handle` value containing the Java reference of the object. - public isolated function init(handle obj) { - self.jObj = obj; - } - - # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.print.PrintOptions` Java class. - # - # + return - The `string` form of the Java object instance. - public isolated function toString() returns string { - return java:toString(self.jObj) ?: ""; - } - -} - diff --git a/ballerina/modules/org.openqa.selenium.remote.http/ClientConfig.bal b/ballerina/modules/org.openqa.selenium.remote.http/ClientConfig.bal deleted file mode 100644 index ea88945..0000000 --- a/ballerina/modules/org.openqa.selenium.remote.http/ClientConfig.bal +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). -// -// WSO2 LLC. licenses this file to you under the Apache License, -// Version 2.0 (the "License"); you may not use this file except -// in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -import ballerina/jballerina.java; - -# Ballerina class mapping for the Java `org.openqa.selenium.remote.http.ClientConfig` class. -@java:Binding {'class: "org.openqa.selenium.remote.http.ClientConfig"} -public distinct class ClientConfig { - - *java:JObject; - - # The `handle` field that stores the reference to the `org.openqa.selenium.remote.http.ClientConfig` object. - public handle jObj; - - # The init function of the Ballerina class mapping the `org.openqa.selenium.remote.http.ClientConfig` Java class. - # - # + obj - The `handle` value containing the Java reference of the object. - public isolated function init(handle obj) { - self.jObj = obj; - } - - # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.remote.http.ClientConfig` Java class. - # - # + return - The `string` form of the Java object instance. - public isolated function toString() returns string { - return java:toString(self.jObj) ?: ""; - } - -} - diff --git a/ballerina/modules/org.openqa.selenium.remote.service/DriverService.bal b/ballerina/modules/org.openqa.selenium.remote.service/DriverService.bal deleted file mode 100644 index 5f9b1d8..0000000 --- a/ballerina/modules/org.openqa.selenium.remote.service/DriverService.bal +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). -// -// WSO2 LLC. licenses this file to you under the Apache License, -// Version 2.0 (the "License"); you may not use this file except -// in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -import ballerina/jballerina.java; - -# Ballerina class mapping for the Java `org.openqa.selenium.remote.service.DriverService` class. -@java:Binding {'class: "org.openqa.selenium.remote.service.DriverService"} -public distinct class DriverService { - - *java:JObject; - - # The `handle` field that stores the reference to the `org.openqa.selenium.remote.service.DriverService` object. - public handle jObj; - - # The init function of the Ballerina class mapping the `org.openqa.selenium.remote.service.DriverService` Java class. - # - # + obj - The `handle` value containing the Java reference of the object. - public isolated function init(handle obj) { - self.jObj = obj; - } - - # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.remote.service.DriverService` Java class. - # - # + return - The `string` form of the Java object instance. - public isolated function toString() returns string { - return java:toString(self.jObj) ?: ""; - } - -} - diff --git a/ballerina/modules/org.openqa.selenium.remote/CommandExecutor.bal b/ballerina/modules/org.openqa.selenium.remote/CommandExecutor.bal deleted file mode 100644 index c3c48e6..0000000 --- a/ballerina/modules/org.openqa.selenium.remote/CommandExecutor.bal +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). -// -// WSO2 LLC. licenses this file to you under the Apache License, -// Version 2.0 (the "License"); you may not use this file except -// in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -import ballerina/jballerina.java; - -# Ballerina class mapping for the Java `org.openqa.selenium.remote.CommandExecutor` interface. -@java:Binding {'class: "org.openqa.selenium.remote.CommandExecutor"} -public distinct class CommandExecutor { - - *java:JObject; - - # The `handle` field that stores the reference to the `org.openqa.selenium.remote.CommandExecutor` object. - public handle jObj; - - # The init function of the Ballerina class mapping the `org.openqa.selenium.remote.CommandExecutor` Java interface. - # - # + obj - The `handle` value containing the Java reference of the object. - public isolated function init(handle obj) { - self.jObj = obj; - } - - # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.remote.CommandExecutor` Java interface. - # - # + return - The `string` form of the Java object instance. - public isolated function toString() returns string { - return java:toString(self.jObj) ?: ""; - } - -} - diff --git a/ballerina/modules/org.openqa.selenium.remote/ErrorHandler.bal b/ballerina/modules/org.openqa.selenium.remote/ErrorHandler.bal deleted file mode 100644 index 58c0332..0000000 --- a/ballerina/modules/org.openqa.selenium.remote/ErrorHandler.bal +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). -// -// WSO2 LLC. licenses this file to you under the Apache License, -// Version 2.0 (the "License"); you may not use this file except -// in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -import ballerina/jballerina.java; - -# Ballerina class mapping for the Java `org.openqa.selenium.remote.ErrorHandler` class. -@java:Binding {'class: "org.openqa.selenium.remote.ErrorHandler"} -public distinct class ErrorHandler { - - *java:JObject; - - # The `handle` field that stores the reference to the `org.openqa.selenium.remote.ErrorHandler` object. - public handle jObj; - - # The init function of the Ballerina class mapping the `org.openqa.selenium.remote.ErrorHandler` Java class. - # - # + obj - The `handle` value containing the Java reference of the object. - public isolated function init(handle obj) { - self.jObj = obj; - } - - # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.remote.ErrorHandler` Java class. - # - # + return - The `string` form of the Java object instance. - public isolated function toString() returns string { - return java:toString(self.jObj) ?: ""; - } - -} - diff --git a/ballerina/modules/org.openqa.selenium.remote/FileDetector.bal b/ballerina/modules/org.openqa.selenium.remote/FileDetector.bal deleted file mode 100644 index 13b60f0..0000000 --- a/ballerina/modules/org.openqa.selenium.remote/FileDetector.bal +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). -// -// WSO2 LLC. licenses this file to you under the Apache License, -// Version 2.0 (the "License"); you may not use this file except -// in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -import ballerina/jballerina.java; - -# Ballerina class mapping for the Java `org.openqa.selenium.remote.FileDetector` interface. -@java:Binding {'class: "org.openqa.selenium.remote.FileDetector"} -public distinct class FileDetector { - - *java:JObject; - - # The `handle` field that stores the reference to the `org.openqa.selenium.remote.FileDetector` object. - public handle jObj; - - # The init function of the Ballerina class mapping the `org.openqa.selenium.remote.FileDetector` Java interface. - # - # + obj - The `handle` value containing the Java reference of the object. - public isolated function init(handle obj) { - self.jObj = obj; - } - - # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.remote.FileDetector` Java interface. - # - # + return - The `string` form of the Java object instance. - public isolated function toString() returns string { - return java:toString(self.jObj) ?: ""; - } - -} - diff --git a/ballerina/modules/org.openqa.selenium.remote/Network.bal b/ballerina/modules/org.openqa.selenium.remote/Network.bal deleted file mode 100644 index 040c1dc..0000000 --- a/ballerina/modules/org.openqa.selenium.remote/Network.bal +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). -// -// WSO2 LLC. licenses this file to you under the Apache License, -// Version 2.0 (the "License"); you may not use this file except -// in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -import ballerina/jballerina.java; - -# Ballerina class mapping for the Java `org.openqa.selenium.remote.Network` interface. -@java:Binding {'class: "org.openqa.selenium.remote.Network"} -public distinct class Network { - - *java:JObject; - - # The `handle` field that stores the reference to the `org.openqa.selenium.remote.Network` object. - public handle jObj; - - # The init function of the Ballerina class mapping the `org.openqa.selenium.remote.Network` Java interface. - # - # + obj - The `handle` value containing the Java reference of the object. - public isolated function init(handle obj) { - self.jObj = obj; - } - - # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.remote.Network` Java interface. - # - # + return - The `string` form of the Java object instance. - public isolated function toString() returns string { - return java:toString(self.jObj) ?: ""; - } - -} - diff --git a/ballerina/modules/org.openqa.selenium.remote/RemoteWebDriver.bal b/ballerina/modules/org.openqa.selenium.remote/RemoteWebDriver.bal deleted file mode 100644 index b1d5ffa..0000000 --- a/ballerina/modules/org.openqa.selenium.remote/RemoteWebDriver.bal +++ /dev/null @@ -1,903 +0,0 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). -// -// WSO2 LLC. licenses this file to you under the Apache License, -// Version 2.0 (the "License"); you may not use this file except -// in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -import selenium.java.io as javaio; -import selenium.java.lang as javalang; -import selenium.java.net as javanet; -import selenium.java.nio.file as javaniofile; -import selenium.java.util as javautil; -import selenium.java.util.'function as javautilfunction; -import selenium.java.util.logging as javautillogging; -import selenium.web as orgopenqaselenium; -import selenium.org.openqa.selenium.federatedcredentialmanagement as orgopenqaseleniumfederatedcredentialmanagement; -import selenium.org.openqa.selenium.print as orgopenqaseleniumprint; -import selenium.org.openqa.selenium.virtualauthenticator as orgopenqaseleniumvirtualauthenticator; - -import ballerina/jballerina.java; -import ballerina/jballerina.java.arrays as jarrays; - -# Ballerina class mapping for the Java `org.openqa.selenium.remote.RemoteWebDriver` class. -@java:Binding {'class: "org.openqa.selenium.remote.RemoteWebDriver"} -public distinct class RemoteWebDriver { - - *java:JObject; - *javalang:Object; - - # The `handle` field that stores the reference to the `org.openqa.selenium.remote.RemoteWebDriver` object. - public handle jObj; - - # The init function of the Ballerina class mapping the `org.openqa.selenium.remote.RemoteWebDriver` Java class. - # - # + obj - The `handle` value containing the Java reference of the object. - public isolated function init(handle obj) { - self.jObj = obj; - } - - # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.remote.RemoteWebDriver` Java class. - # - # + return - The `string` form of the Java object instance. - public isolated function toString() returns string { - return java:toString(self.jObj) ?: ""; - } - - # The function that maps to the `addVirtualAuthenticator` method of `org.openqa.selenium.remote.RemoteWebDriver`. - # - # + options - The `orgopenqaseleniumvirtualauthenticator:VirtualAuthenticatorOptions` value required to map with the Java method parameter. - # + return - The `orgopenqaseleniumvirtualauthenticator:VirtualAuthenticator` value returning from the Java mapping. - public isolated function addVirtualAuthenticator(orgopenqaseleniumvirtualauthenticator:VirtualAuthenticatorOptions options) returns orgopenqaseleniumvirtualauthenticator:VirtualAuthenticator { - handle externalObj = org_openqa_selenium_remote_RemoteWebDriver_addVirtualAuthenticator(self.jObj, options.jObj); - orgopenqaseleniumvirtualauthenticator:VirtualAuthenticator newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `close` method of `org.openqa.selenium.remote.RemoteWebDriver`. - public isolated function close() { - org_openqa_selenium_remote_RemoteWebDriver_close(self.jObj); - } - - # The function that maps to the `deleteDownloadableFiles` method of `org.openqa.selenium.remote.RemoteWebDriver`. - public isolated function deleteDownloadableFiles() { - org_openqa_selenium_remote_RemoteWebDriver_deleteDownloadableFiles(self.jObj); - } - - # The function that maps to the `downloadFile` method of `org.openqa.selenium.remote.RemoteWebDriver`. - # - # + fileName - The `string` value required to map with the Java method parameter. - # + targetLocation - The `javaniofile:Path` value required to map with the Java method parameter. - # + return - The `javaio:IOException` value returning from the Java mapping. - public isolated function downloadFile(string fileName, javaniofile:Path targetLocation) returns javaio:IOException? { - error|() externalObj = org_openqa_selenium_remote_RemoteWebDriver_downloadFile(self.jObj, java:fromString(fileName), targetLocation.jObj); - if (externalObj is error) { - javaio:IOException e = error javaio:IOException(javaio:IOEXCEPTION, externalObj, message = externalObj.message()); - return e; - } - } - - # The function that maps to the `equals` method of `org.openqa.selenium.remote.RemoteWebDriver`. - # - # + arg0 - The `javalang:Object` value required to map with the Java method parameter. - # + return - The `boolean` value returning from the Java mapping. - public isolated function 'equals(javalang:Object arg0) returns boolean { - return org_openqa_selenium_remote_RemoteWebDriver_equals(self.jObj, arg0.jObj); - } - - # The function that maps to the `executeAsyncScript` method of `org.openqa.selenium.remote.RemoteWebDriver`. - # - # + script - The `string` value required to map with the Java method parameter. - # + args - The `javalang:Object[]` value required to map with the Java method parameter. - # + return - The `javalang:Object` value returning from the Java mapping. - public isolated function executeAsyncScript(string script, javalang:Object[] args) returns javalang:Object|error { - handle externalObj = org_openqa_selenium_remote_RemoteWebDriver_executeAsyncScript(self.jObj, java:fromString(script), check jarrays:toHandle(args, "java.lang.Object")); - javalang:Object newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `executeScript` method of `org.openqa.selenium.remote.RemoteWebDriver`. - # - # + 'key - The `orgopenqaselenium:ScriptKey` value required to map with the Java method parameter. - # + args - The `javalang:Object[]` value required to map with the Java method parameter. - # + return - The `javalang:Object` value returning from the Java mapping. - public isolated function executeScript(orgopenqaselenium:ScriptKey 'key, javalang:Object[] args) returns javalang:Object|error { - handle externalObj = org_openqa_selenium_remote_RemoteWebDriver_executeScript(self.jObj, 'key.jObj, check jarrays:toHandle(args, "java.lang.Object")); - javalang:Object newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `executeScript` method of `org.openqa.selenium.remote.RemoteWebDriver`. - # - # + script - The `string` value required to map with the Java method parameter. - # + args - The `javalang:Object[]` value required to map with the Java method parameter. - # + return - The `javalang:Object` value returning from the Java mapping. - public isolated function executeScript2(string script, javalang:Object[] args) returns javalang:Object|error { - handle externalObj = org_openqa_selenium_remote_RemoteWebDriver_executeScript2(self.jObj, java:fromString(script), check jarrays:toHandle(args, "java.lang.Object")); - javalang:Object newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `findElement` method of `org.openqa.selenium.remote.RemoteWebDriver`. - # - # + locator - The `orgopenqaselenium:By` value required to map with the Java method parameter. - # + return - The `orgopenqaselenium:WebElement` value returning from the Java mapping. - public isolated function findElement(orgopenqaselenium:By locator) returns orgopenqaselenium:WebElement { - handle externalObj = org_openqa_selenium_remote_RemoteWebDriver_findElement(self.jObj, locator.jObj); - orgopenqaselenium:WebElement newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `findElements` method of `org.openqa.selenium.remote.RemoteWebDriver`. - # - # + locator - The `orgopenqaselenium:By` value required to map with the Java method parameter. - # + return - The `javautil:List` value returning from the Java mapping. - public isolated function findElements(orgopenqaselenium:By locator) returns javautil:List { - handle externalObj = org_openqa_selenium_remote_RemoteWebDriver_findElements(self.jObj, locator.jObj); - javautil:List newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `findElements` method of `org.openqa.selenium.chrome.ChromeDriver`. - # - # + locator - The `orgopenqaselenium:By` value required to map with the Java method parameter. - # + return - The `orgopenqaselenium:WebElement[]` value returning from the Java mapping. - public isolated function findAllElements(orgopenqaselenium:By locator) returns orgopenqaselenium:WebElement[]|error { - handle externalObj = org_openqa_selenium_remote_RemoteWebDriver_findElements(self.jObj, locator.jObj); - javautil:List newObj = new (externalObj); - orgopenqaselenium:WebElement[] elements = []; - javalang:Object[] arr = check newObj.toArray(); - foreach var item in arr { - elements.push(check java:cast(item, orgopenqaselenium:WebElement)); - } - return elements; - } - - # The function that maps to the `findElements` method of `org.openqa.selenium.remote.RemoteWebDriver`. - # - # + context - The `orgopenqaselenium:SearchContext` value required to map with the Java method parameter. - # + findCommand - The `javautilfunction:BiFunction` value required to map with the Java method parameter. - # + locator - The `orgopenqaselenium:By` value required to map with the Java method parameter. - # + return - The `javautil:List` value returning from the Java mapping. - public isolated function findElements2(orgopenqaselenium:SearchContext context, javautilfunction:BiFunction findCommand, orgopenqaselenium:By locator) returns javautil:List { - handle externalObj = org_openqa_selenium_remote_RemoteWebDriver_findElements2(self.jObj, context.jObj, findCommand.jObj, locator.jObj); - javautil:List newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `get` method of `org.openqa.selenium.remote.RemoteWebDriver`. - # - # + url - The `string` value required to map with the Java method parameter. - public isolated function get(string url) { - org_openqa_selenium_remote_RemoteWebDriver_get(self.jObj, java:fromString(url)); - } - - # The function that maps to the `getCapabilities` method of `org.openqa.selenium.remote.RemoteWebDriver`. - # - # + return - The `orgopenqaselenium:Capabilities` value returning from the Java mapping. - public isolated function getCapabilities() returns orgopenqaselenium:Capabilities { - handle externalObj = org_openqa_selenium_remote_RemoteWebDriver_getCapabilities(self.jObj); - orgopenqaselenium:Capabilities newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getClass` method of `org.openqa.selenium.remote.RemoteWebDriver`. - # - # + return - The `javalang:Class` value returning from the Java mapping. - public isolated function getClass() returns javalang:Class { - handle externalObj = org_openqa_selenium_remote_RemoteWebDriver_getClass(self.jObj); - javalang:Class newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getCommandExecutor` method of `org.openqa.selenium.remote.RemoteWebDriver`. - # - # + return - The `CommandExecutor` value returning from the Java mapping. - public isolated function getCommandExecutor() returns CommandExecutor { - handle externalObj = org_openqa_selenium_remote_RemoteWebDriver_getCommandExecutor(self.jObj); - CommandExecutor newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getCurrentUrl` method of `org.openqa.selenium.remote.RemoteWebDriver`. - # - # + return - The `string` value returning from the Java mapping. - public isolated function getCurrentUrl() returns string { - return java:toString(org_openqa_selenium_remote_RemoteWebDriver_getCurrentUrl(self.jObj)) ?: ""; - } - - # The function that maps to the `getDownloadableFiles` method of `org.openqa.selenium.remote.RemoteWebDriver`. - # - # + return - The `javautil:List` value returning from the Java mapping. - public isolated function getDownloadableFiles() returns javautil:List { - handle externalObj = org_openqa_selenium_remote_RemoteWebDriver_getDownloadableFiles(self.jObj); - javautil:List newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getErrorHandler` method of `org.openqa.selenium.remote.RemoteWebDriver`. - # - # + return - The `ErrorHandler` value returning from the Java mapping. - public isolated function getErrorHandler() returns ErrorHandler { - handle externalObj = org_openqa_selenium_remote_RemoteWebDriver_getErrorHandler(self.jObj); - ErrorHandler newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getFederatedCredentialManagementDialog` method of `org.openqa.selenium.remote.RemoteWebDriver`. - # - # + return - The `orgopenqaseleniumfederatedcredentialmanagement:FederatedCredentialManagementDialog` value returning from the Java mapping. - public isolated function getFederatedCredentialManagementDialog() returns orgopenqaseleniumfederatedcredentialmanagement:FederatedCredentialManagementDialog { - handle externalObj = org_openqa_selenium_remote_RemoteWebDriver_getFederatedCredentialManagementDialog(self.jObj); - orgopenqaseleniumfederatedcredentialmanagement:FederatedCredentialManagementDialog newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getFileDetector` method of `org.openqa.selenium.remote.RemoteWebDriver`. - # - # + return - The `FileDetector` value returning from the Java mapping. - public isolated function getFileDetector() returns FileDetector { - handle externalObj = org_openqa_selenium_remote_RemoteWebDriver_getFileDetector(self.jObj); - FileDetector newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getPageSource` method of `org.openqa.selenium.remote.RemoteWebDriver`. - # - # + return - The `string` value returning from the Java mapping. - public isolated function getPageSource() returns string { - return java:toString(org_openqa_selenium_remote_RemoteWebDriver_getPageSource(self.jObj)) ?: ""; - } - - # The function that maps to the `getPinnedScripts` method of `org.openqa.selenium.remote.RemoteWebDriver`. - # - # + return - The `javautil:Set` value returning from the Java mapping. - public isolated function getPinnedScripts() returns javautil:Set { - handle externalObj = org_openqa_selenium_remote_RemoteWebDriver_getPinnedScripts(self.jObj); - javautil:Set newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getScreenshotAs` method of `org.openqa.selenium.remote.RemoteWebDriver`. - # - # + outputType - The `orgopenqaselenium:OutputType` value required to map with the Java method parameter. - # + return - The `javalang:Object` value returning from the Java mapping. - public isolated function getScreenshotAs(orgopenqaselenium:OutputType outputType) returns javalang:Object { - handle externalObj = org_openqa_selenium_remote_RemoteWebDriver_getScreenshotAs(self.jObj, outputType.jObj); - javalang:Object newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getSessionId` method of `org.openqa.selenium.remote.RemoteWebDriver`. - # - # + return - The `SessionId` value returning from the Java mapping. - public isolated function getSessionId() returns SessionId { - handle externalObj = org_openqa_selenium_remote_RemoteWebDriver_getSessionId(self.jObj); - SessionId newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getTitle` method of `org.openqa.selenium.remote.RemoteWebDriver`. - # - # + return - The `string` value returning from the Java mapping. - public isolated function getTitle() returns string { - return java:toString(org_openqa_selenium_remote_RemoteWebDriver_getTitle(self.jObj)) ?: ""; - } - - # The function that maps to the `getWindowHandle` method of `org.openqa.selenium.remote.RemoteWebDriver`. - # - # + return - The `string` value returning from the Java mapping. - public isolated function getWindowHandle() returns string { - return java:toString(org_openqa_selenium_remote_RemoteWebDriver_getWindowHandle(self.jObj)) ?: ""; - } - - # The function that maps to the `getWindowHandles` method of `org.openqa.selenium.remote.RemoteWebDriver`. - # - # + return - The `javautil:Set` value returning from the Java mapping. - public isolated function getWindowHandles() returns javautil:Set { - handle externalObj = org_openqa_selenium_remote_RemoteWebDriver_getWindowHandles(self.jObj); - javautil:Set newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `hashCode` method of `org.openqa.selenium.remote.RemoteWebDriver`. - # - # + return - The `int` value returning from the Java mapping. - public isolated function hashCode() returns int { - return org_openqa_selenium_remote_RemoteWebDriver_hashCode(self.jObj); - } - - # The function that maps to the `manage` method of `org.openqa.selenium.remote.RemoteWebDriver`. - # - # + return - The `orgopenqaselenium:Options` value returning from the Java mapping. - public isolated function manage() returns orgopenqaselenium:Options { - handle externalObj = org_openqa_selenium_remote_RemoteWebDriver_manage(self.jObj); - orgopenqaselenium:Options newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `navigate` method of `org.openqa.selenium.remote.RemoteWebDriver`. - # - # + return - The `orgopenqaselenium:Navigation` value returning from the Java mapping. - public isolated function navigate() returns orgopenqaselenium:Navigation { - handle externalObj = org_openqa_selenium_remote_RemoteWebDriver_navigate(self.jObj); - orgopenqaselenium:Navigation newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `network` method of `org.openqa.selenium.remote.RemoteWebDriver`. - # - # + return - The `Network` value returning from the Java mapping. - public isolated function network() returns Network { - handle externalObj = org_openqa_selenium_remote_RemoteWebDriver_network(self.jObj); - Network newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `notify` method of `org.openqa.selenium.remote.RemoteWebDriver`. - public isolated function notify() { - org_openqa_selenium_remote_RemoteWebDriver_notify(self.jObj); - } - - # The function that maps to the `notifyAll` method of `org.openqa.selenium.remote.RemoteWebDriver`. - public isolated function notifyAll() { - org_openqa_selenium_remote_RemoteWebDriver_notifyAll(self.jObj); - } - - # The function that maps to the `perform` method of `org.openqa.selenium.remote.RemoteWebDriver`. - # - # + actions - The `javautil:Collection` value required to map with the Java method parameter. - public isolated function perform(javautil:Collection actions) { - org_openqa_selenium_remote_RemoteWebDriver_perform(self.jObj, actions.jObj); - } - - # The function that maps to the `pin` method of `org.openqa.selenium.remote.RemoteWebDriver`. - # - # + script - The `string` value required to map with the Java method parameter. - # + return - The `orgopenqaselenium:ScriptKey` value returning from the Java mapping. - public isolated function pin(string script) returns orgopenqaselenium:ScriptKey { - handle externalObj = org_openqa_selenium_remote_RemoteWebDriver_pin(self.jObj, java:fromString(script)); - orgopenqaselenium:ScriptKey newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `print` method of `org.openqa.selenium.remote.RemoteWebDriver`. - # - # + printOptions - The `orgopenqaseleniumprint:PrintOptions` value required to map with the Java method parameter. - # + return - The `orgopenqaselenium:Pdf` value returning from the Java mapping. - public isolated function print(orgopenqaseleniumprint:PrintOptions printOptions) returns orgopenqaselenium:Pdf { - handle externalObj = org_openqa_selenium_remote_RemoteWebDriver_print(self.jObj, printOptions.jObj); - orgopenqaselenium:Pdf newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `quit` method of `org.openqa.selenium.remote.RemoteWebDriver`. - public isolated function quit() { - org_openqa_selenium_remote_RemoteWebDriver_quit(self.jObj); - } - - # The function that maps to the `removeVirtualAuthenticator` method of `org.openqa.selenium.remote.RemoteWebDriver`. - # - # + authenticator - The `orgopenqaseleniumvirtualauthenticator:VirtualAuthenticator` value required to map with the Java method parameter. - public isolated function removeVirtualAuthenticator(orgopenqaseleniumvirtualauthenticator:VirtualAuthenticator authenticator) { - org_openqa_selenium_remote_RemoteWebDriver_removeVirtualAuthenticator(self.jObj, authenticator.jObj); - } - - # The function that maps to the `requireDownloadsEnabled` method of `org.openqa.selenium.remote.RemoteWebDriver`. - # - # + capabilities - The `orgopenqaselenium:Capabilities` value required to map with the Java method parameter. - public isolated function requireDownloadsEnabled(orgopenqaselenium:Capabilities capabilities) { - org_openqa_selenium_remote_RemoteWebDriver_requireDownloadsEnabled(self.jObj, capabilities.jObj); - } - - # The function that maps to the `resetCooldown` method of `org.openqa.selenium.remote.RemoteWebDriver`. - public isolated function resetCooldown() { - org_openqa_selenium_remote_RemoteWebDriver_resetCooldown(self.jObj); - } - - # The function that maps to the `resetInputState` method of `org.openqa.selenium.remote.RemoteWebDriver`. - public isolated function resetInputState() { - org_openqa_selenium_remote_RemoteWebDriver_resetInputState(self.jObj); - } - - # The function that maps to the `script` method of `org.openqa.selenium.remote.RemoteWebDriver`. - # - # + return - The `Script` value returning from the Java mapping. - public isolated function script() returns Script { - handle externalObj = org_openqa_selenium_remote_RemoteWebDriver_script(self.jObj); - Script newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `setDelayEnabled` method of `org.openqa.selenium.remote.RemoteWebDriver`. - # - # + enabled - The `boolean` value required to map with the Java method parameter. - public isolated function setDelayEnabled(boolean enabled) { - org_openqa_selenium_remote_RemoteWebDriver_setDelayEnabled(self.jObj, enabled); - } - - # The function that maps to the `setErrorHandler` method of `org.openqa.selenium.remote.RemoteWebDriver`. - # - # + handler - The `ErrorHandler` value required to map with the Java method parameter. - public isolated function setErrorHandler(ErrorHandler handler) { - org_openqa_selenium_remote_RemoteWebDriver_setErrorHandler(self.jObj, handler.jObj); - } - - # The function that maps to the `setFileDetector` method of `org.openqa.selenium.remote.RemoteWebDriver`. - # - # + detector - The `FileDetector` value required to map with the Java method parameter. - public isolated function setFileDetector(FileDetector detector) { - org_openqa_selenium_remote_RemoteWebDriver_setFileDetector(self.jObj, detector.jObj); - } - - # The function that maps to the `setLogLevel` method of `org.openqa.selenium.remote.RemoteWebDriver`. - # - # + level - The `javautillogging:Level` value required to map with the Java method parameter. - public isolated function setLogLevel(javautillogging:Level level) { - org_openqa_selenium_remote_RemoteWebDriver_setLogLevel(self.jObj, level.jObj); - } - - # The function that maps to the `switchTo` method of `org.openqa.selenium.remote.RemoteWebDriver`. - # - # + return - The `orgopenqaselenium:TargetLocator` value returning from the Java mapping. - public isolated function switchTo() returns orgopenqaselenium:TargetLocator { - handle externalObj = org_openqa_selenium_remote_RemoteWebDriver_switchTo(self.jObj); - orgopenqaselenium:TargetLocator newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `unpin` method of `org.openqa.selenium.remote.RemoteWebDriver`. - # - # + 'key - The `orgopenqaselenium:ScriptKey` value required to map with the Java method parameter. - public isolated function unpin(orgopenqaselenium:ScriptKey 'key) { - org_openqa_selenium_remote_RemoteWebDriver_unpin(self.jObj, 'key.jObj); - } - - # The function that maps to the `wait` method of `org.openqa.selenium.remote.RemoteWebDriver`. - # - # + return - The `javalang:InterruptedException` value returning from the Java mapping. - public isolated function 'wait() returns javalang:InterruptedException? { - error|() externalObj = org_openqa_selenium_remote_RemoteWebDriver_wait(self.jObj); - if (externalObj is error) { - javalang:InterruptedException e = error javalang:InterruptedException(javalang:INTERRUPTEDEXCEPTION, externalObj, message = externalObj.message()); - return e; - } - } - - # The function that maps to the `wait` method of `org.openqa.selenium.remote.RemoteWebDriver`. - # - # + arg0 - The `int` value required to map with the Java method parameter. - # + return - The `javalang:InterruptedException` value returning from the Java mapping. - public isolated function wait2(int arg0) returns javalang:InterruptedException? { - error|() externalObj = org_openqa_selenium_remote_RemoteWebDriver_wait2(self.jObj, arg0); - if (externalObj is error) { - javalang:InterruptedException e = error javalang:InterruptedException(javalang:INTERRUPTEDEXCEPTION, externalObj, message = externalObj.message()); - return e; - } - } - - # The function that maps to the `wait` method of `org.openqa.selenium.remote.RemoteWebDriver`. - # - # + arg0 - The `int` value required to map with the Java method parameter. - # + arg1 - The `int` value required to map with the Java method parameter. - # + return - The `javalang:InterruptedException` value returning from the Java mapping. - public isolated function wait3(int arg0, int arg1) returns javalang:InterruptedException? { - error|() externalObj = org_openqa_selenium_remote_RemoteWebDriver_wait3(self.jObj, arg0, arg1); - if (externalObj is error) { - javalang:InterruptedException e = error javalang:InterruptedException(javalang:INTERRUPTEDEXCEPTION, externalObj, message = externalObj.message()); - return e; - } - } - -} - -# The constructor function to generate an object of `org.openqa.selenium.remote.RemoteWebDriver`. -# -# + capabilities - The `orgopenqaselenium:Capabilities` value required to map with the Java constructor parameter. -# + return - The new `RemoteWebDriver` class generated. -public isolated function newRemoteWebDriver1(orgopenqaselenium:Capabilities capabilities) returns RemoteWebDriver { - handle externalObj = org_openqa_selenium_remote_RemoteWebDriver_newRemoteWebDriver1(capabilities.jObj); - RemoteWebDriver newObj = new (externalObj); - return newObj; -} - -# The constructor function to generate an object of `org.openqa.selenium.remote.RemoteWebDriver`. -# -# + capabilities - The `orgopenqaselenium:Capabilities` value required to map with the Java constructor parameter. -# + enableTracing - The `boolean` value required to map with the Java constructor parameter. -# + return - The new `RemoteWebDriver` class generated. -public isolated function newRemoteWebDriver2(orgopenqaselenium:Capabilities capabilities, boolean enableTracing) returns RemoteWebDriver { - handle externalObj = org_openqa_selenium_remote_RemoteWebDriver_newRemoteWebDriver2(capabilities.jObj, enableTracing); - RemoteWebDriver newObj = new (externalObj); - return newObj; -} - -# The constructor function to generate an object of `org.openqa.selenium.remote.RemoteWebDriver`. -# -# + executor - The `CommandExecutor` value required to map with the Java constructor parameter. -# + capabilities - The `orgopenqaselenium:Capabilities` value required to map with the Java constructor parameter. -# + return - The new `RemoteWebDriver` class generated. -public isolated function newRemoteWebDriver3(CommandExecutor executor, orgopenqaselenium:Capabilities capabilities) returns RemoteWebDriver { - handle externalObj = org_openqa_selenium_remote_RemoteWebDriver_newRemoteWebDriver3(executor.jObj, capabilities.jObj); - RemoteWebDriver newObj = new (externalObj); - return newObj; -} - -# The constructor function to generate an object of `org.openqa.selenium.remote.RemoteWebDriver`. -# -# + remoteAddress - The `javanet:URL` value required to map with the Java constructor parameter. -# + capabilities - The `orgopenqaselenium:Capabilities` value required to map with the Java constructor parameter. -# + return - The new `RemoteWebDriver` class generated. -public isolated function newRemoteWebDriver4(javanet:URL remoteAddress, orgopenqaselenium:Capabilities capabilities) returns RemoteWebDriver { - handle externalObj = org_openqa_selenium_remote_RemoteWebDriver_newRemoteWebDriver4(remoteAddress.jObj, capabilities.jObj); - RemoteWebDriver newObj = new (externalObj); - return newObj; -} - -# The constructor function to generate an object of `org.openqa.selenium.remote.RemoteWebDriver`. -# -# + remoteAddress - The `javanet:URL` value required to map with the Java constructor parameter. -# + capabilities - The `orgopenqaselenium:Capabilities` value required to map with the Java constructor parameter. -# + enableTracing - The `boolean` value required to map with the Java constructor parameter. -# + return - The new `RemoteWebDriver` class generated. -public isolated function newRemoteWebDriver5(javanet:URL remoteAddress, orgopenqaselenium:Capabilities capabilities, boolean enableTracing) returns RemoteWebDriver { - handle externalObj = org_openqa_selenium_remote_RemoteWebDriver_newRemoteWebDriver5(remoteAddress.jObj, capabilities.jObj, enableTracing); - RemoteWebDriver newObj = new (externalObj); - return newObj; -} - -# The function that maps to the `builder` method of `org.openqa.selenium.remote.RemoteWebDriver`. -# -# + return - The `RemoteWebDriverBuilder` value returning from the Java mapping. -public isolated function RemoteWebDriver_builder() returns RemoteWebDriverBuilder { - handle externalObj = org_openqa_selenium_remote_RemoteWebDriver_builder(); - RemoteWebDriverBuilder newObj = new (externalObj); - return newObj; -} - -isolated function org_openqa_selenium_remote_RemoteWebDriver_addVirtualAuthenticator(handle receiver, handle options) returns handle = @java:Method { - name: "addVirtualAuthenticator", - 'class: "org.openqa.selenium.remote.RemoteWebDriver", - paramTypes: ["org.openqa.selenium.virtualauthenticator.VirtualAuthenticatorOptions"] -} external; - -isolated function org_openqa_selenium_remote_RemoteWebDriver_builder() returns handle = @java:Method { - name: "builder", - 'class: "org.openqa.selenium.remote.RemoteWebDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_remote_RemoteWebDriver_close(handle receiver) = @java:Method { - name: "close", - 'class: "org.openqa.selenium.remote.RemoteWebDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_remote_RemoteWebDriver_deleteDownloadableFiles(handle receiver) = @java:Method { - name: "deleteDownloadableFiles", - 'class: "org.openqa.selenium.remote.RemoteWebDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_remote_RemoteWebDriver_downloadFile(handle receiver, handle fileName, handle targetLocation) returns error? = @java:Method { - name: "downloadFile", - 'class: "org.openqa.selenium.remote.RemoteWebDriver", - paramTypes: ["java.lang.String", "java.nio.file.Path"] -} external; - -isolated function org_openqa_selenium_remote_RemoteWebDriver_equals(handle receiver, handle arg0) returns boolean = @java:Method { - name: "equals", - 'class: "org.openqa.selenium.remote.RemoteWebDriver", - paramTypes: ["java.lang.Object"] -} external; - -isolated function org_openqa_selenium_remote_RemoteWebDriver_executeAsyncScript(handle receiver, handle script, handle args) returns handle = @java:Method { - name: "executeAsyncScript", - 'class: "org.openqa.selenium.remote.RemoteWebDriver", - paramTypes: ["java.lang.String", "[Ljava.lang.Object;"] -} external; - -isolated function org_openqa_selenium_remote_RemoteWebDriver_executeScript(handle receiver, handle 'key, handle args) returns handle = @java:Method { - name: "executeScript", - 'class: "org.openqa.selenium.remote.RemoteWebDriver", - paramTypes: ["org.openqa.selenium.ScriptKey", "[Ljava.lang.Object;"] -} external; - -isolated function org_openqa_selenium_remote_RemoteWebDriver_executeScript2(handle receiver, handle script, handle args) returns handle = @java:Method { - name: "executeScript", - 'class: "org.openqa.selenium.remote.RemoteWebDriver", - paramTypes: ["java.lang.String", "[Ljava.lang.Object;"] -} external; - -isolated function org_openqa_selenium_remote_RemoteWebDriver_findElement(handle receiver, handle locator) returns handle = @java:Method { - name: "findElement", - 'class: "org.openqa.selenium.remote.RemoteWebDriver", - paramTypes: ["org.openqa.selenium.By"] -} external; - -isolated function org_openqa_selenium_remote_RemoteWebDriver_findElements(handle receiver, handle locator) returns handle = @java:Method { - name: "findElements", - 'class: "org.openqa.selenium.remote.RemoteWebDriver", - paramTypes: ["org.openqa.selenium.By"] -} external; - -isolated function org_openqa_selenium_remote_RemoteWebDriver_findElements2(handle receiver, handle context, handle findCommand, handle locator) returns handle = @java:Method { - name: "findElements", - 'class: "org.openqa.selenium.remote.RemoteWebDriver", - paramTypes: ["org.openqa.selenium.SearchContext", "java.util.function.BiFunction", "org.openqa.selenium.By"] -} external; - -isolated function org_openqa_selenium_remote_RemoteWebDriver_get(handle receiver, handle url) = @java:Method { - name: "get", - 'class: "org.openqa.selenium.remote.RemoteWebDriver", - paramTypes: ["java.lang.String"] -} external; - -isolated function org_openqa_selenium_remote_RemoteWebDriver_getCapabilities(handle receiver) returns handle = @java:Method { - name: "getCapabilities", - 'class: "org.openqa.selenium.remote.RemoteWebDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_remote_RemoteWebDriver_getClass(handle receiver) returns handle = @java:Method { - name: "getClass", - 'class: "org.openqa.selenium.remote.RemoteWebDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_remote_RemoteWebDriver_getCommandExecutor(handle receiver) returns handle = @java:Method { - name: "getCommandExecutor", - 'class: "org.openqa.selenium.remote.RemoteWebDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_remote_RemoteWebDriver_getCurrentUrl(handle receiver) returns handle = @java:Method { - name: "getCurrentUrl", - 'class: "org.openqa.selenium.remote.RemoteWebDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_remote_RemoteWebDriver_getDownloadableFiles(handle receiver) returns handle = @java:Method { - name: "getDownloadableFiles", - 'class: "org.openqa.selenium.remote.RemoteWebDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_remote_RemoteWebDriver_getErrorHandler(handle receiver) returns handle = @java:Method { - name: "getErrorHandler", - 'class: "org.openqa.selenium.remote.RemoteWebDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_remote_RemoteWebDriver_getFederatedCredentialManagementDialog(handle receiver) returns handle = @java:Method { - name: "getFederatedCredentialManagementDialog", - 'class: "org.openqa.selenium.remote.RemoteWebDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_remote_RemoteWebDriver_getFileDetector(handle receiver) returns handle = @java:Method { - name: "getFileDetector", - 'class: "org.openqa.selenium.remote.RemoteWebDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_remote_RemoteWebDriver_getPageSource(handle receiver) returns handle = @java:Method { - name: "getPageSource", - 'class: "org.openqa.selenium.remote.RemoteWebDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_remote_RemoteWebDriver_getPinnedScripts(handle receiver) returns handle = @java:Method { - name: "getPinnedScripts", - 'class: "org.openqa.selenium.remote.RemoteWebDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_remote_RemoteWebDriver_getScreenshotAs(handle receiver, handle outputType) returns handle = @java:Method { - name: "getScreenshotAs", - 'class: "org.openqa.selenium.remote.RemoteWebDriver", - paramTypes: ["org.openqa.selenium.OutputType"] -} external; - -isolated function org_openqa_selenium_remote_RemoteWebDriver_getSessionId(handle receiver) returns handle = @java:Method { - name: "getSessionId", - 'class: "org.openqa.selenium.remote.RemoteWebDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_remote_RemoteWebDriver_getTitle(handle receiver) returns handle = @java:Method { - name: "getTitle", - 'class: "org.openqa.selenium.remote.RemoteWebDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_remote_RemoteWebDriver_getWindowHandle(handle receiver) returns handle = @java:Method { - name: "getWindowHandle", - 'class: "org.openqa.selenium.remote.RemoteWebDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_remote_RemoteWebDriver_getWindowHandles(handle receiver) returns handle = @java:Method { - name: "getWindowHandles", - 'class: "org.openqa.selenium.remote.RemoteWebDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_remote_RemoteWebDriver_hashCode(handle receiver) returns int = @java:Method { - name: "hashCode", - 'class: "org.openqa.selenium.remote.RemoteWebDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_remote_RemoteWebDriver_manage(handle receiver) returns handle = @java:Method { - name: "manage", - 'class: "org.openqa.selenium.remote.RemoteWebDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_remote_RemoteWebDriver_navigate(handle receiver) returns handle = @java:Method { - name: "navigate", - 'class: "org.openqa.selenium.remote.RemoteWebDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_remote_RemoteWebDriver_network(handle receiver) returns handle = @java:Method { - name: "network", - 'class: "org.openqa.selenium.remote.RemoteWebDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_remote_RemoteWebDriver_notify(handle receiver) = @java:Method { - name: "notify", - 'class: "org.openqa.selenium.remote.RemoteWebDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_remote_RemoteWebDriver_notifyAll(handle receiver) = @java:Method { - name: "notifyAll", - 'class: "org.openqa.selenium.remote.RemoteWebDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_remote_RemoteWebDriver_perform(handle receiver, handle actions) = @java:Method { - name: "perform", - 'class: "org.openqa.selenium.remote.RemoteWebDriver", - paramTypes: ["java.util.Collection"] -} external; - -isolated function org_openqa_selenium_remote_RemoteWebDriver_pin(handle receiver, handle script) returns handle = @java:Method { - name: "pin", - 'class: "org.openqa.selenium.remote.RemoteWebDriver", - paramTypes: ["java.lang.String"] -} external; - -isolated function org_openqa_selenium_remote_RemoteWebDriver_print(handle receiver, handle printOptions) returns handle = @java:Method { - name: "print", - 'class: "org.openqa.selenium.remote.RemoteWebDriver", - paramTypes: ["org.openqa.selenium.print.PrintOptions"] -} external; - -isolated function org_openqa_selenium_remote_RemoteWebDriver_quit(handle receiver) = @java:Method { - name: "quit", - 'class: "org.openqa.selenium.remote.RemoteWebDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_remote_RemoteWebDriver_removeVirtualAuthenticator(handle receiver, handle authenticator) = @java:Method { - name: "removeVirtualAuthenticator", - 'class: "org.openqa.selenium.remote.RemoteWebDriver", - paramTypes: ["org.openqa.selenium.virtualauthenticator.VirtualAuthenticator"] -} external; - -isolated function org_openqa_selenium_remote_RemoteWebDriver_requireDownloadsEnabled(handle receiver, handle capabilities) = @java:Method { - name: "requireDownloadsEnabled", - 'class: "org.openqa.selenium.remote.RemoteWebDriver", - paramTypes: ["org.openqa.selenium.Capabilities"] -} external; - -isolated function org_openqa_selenium_remote_RemoteWebDriver_resetCooldown(handle receiver) = @java:Method { - name: "resetCooldown", - 'class: "org.openqa.selenium.remote.RemoteWebDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_remote_RemoteWebDriver_resetInputState(handle receiver) = @java:Method { - name: "resetInputState", - 'class: "org.openqa.selenium.remote.RemoteWebDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_remote_RemoteWebDriver_script(handle receiver) returns handle = @java:Method { - name: "script", - 'class: "org.openqa.selenium.remote.RemoteWebDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_remote_RemoteWebDriver_setDelayEnabled(handle receiver, boolean enabled) = @java:Method { - name: "setDelayEnabled", - 'class: "org.openqa.selenium.remote.RemoteWebDriver", - paramTypes: ["boolean"] -} external; - -isolated function org_openqa_selenium_remote_RemoteWebDriver_setErrorHandler(handle receiver, handle handler) = @java:Method { - name: "setErrorHandler", - 'class: "org.openqa.selenium.remote.RemoteWebDriver", - paramTypes: ["org.openqa.selenium.remote.ErrorHandler"] -} external; - -isolated function org_openqa_selenium_remote_RemoteWebDriver_setFileDetector(handle receiver, handle detector) = @java:Method { - name: "setFileDetector", - 'class: "org.openqa.selenium.remote.RemoteWebDriver", - paramTypes: ["org.openqa.selenium.remote.FileDetector"] -} external; - -isolated function org_openqa_selenium_remote_RemoteWebDriver_setLogLevel(handle receiver, handle level) = @java:Method { - name: "setLogLevel", - 'class: "org.openqa.selenium.remote.RemoteWebDriver", - paramTypes: ["java.util.logging.Level"] -} external; - -isolated function org_openqa_selenium_remote_RemoteWebDriver_switchTo(handle receiver) returns handle = @java:Method { - name: "switchTo", - 'class: "org.openqa.selenium.remote.RemoteWebDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_remote_RemoteWebDriver_unpin(handle receiver, handle 'key) = @java:Method { - name: "unpin", - 'class: "org.openqa.selenium.remote.RemoteWebDriver", - paramTypes: ["org.openqa.selenium.ScriptKey"] -} external; - -isolated function org_openqa_selenium_remote_RemoteWebDriver_wait(handle receiver) returns error? = @java:Method { - name: "wait", - 'class: "org.openqa.selenium.remote.RemoteWebDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_remote_RemoteWebDriver_wait2(handle receiver, int arg0) returns error? = @java:Method { - name: "wait", - 'class: "org.openqa.selenium.remote.RemoteWebDriver", - paramTypes: ["long"] -} external; - -isolated function org_openqa_selenium_remote_RemoteWebDriver_wait3(handle receiver, int arg0, int arg1) returns error? = @java:Method { - name: "wait", - 'class: "org.openqa.selenium.remote.RemoteWebDriver", - paramTypes: ["long", "int"] -} external; - -isolated function org_openqa_selenium_remote_RemoteWebDriver_newRemoteWebDriver1(handle capabilities) returns handle = @java:Constructor { - 'class: "org.openqa.selenium.remote.RemoteWebDriver", - paramTypes: ["org.openqa.selenium.Capabilities"] -} external; - -isolated function org_openqa_selenium_remote_RemoteWebDriver_newRemoteWebDriver2(handle capabilities, boolean enableTracing) returns handle = @java:Constructor { - 'class: "org.openqa.selenium.remote.RemoteWebDriver", - paramTypes: ["org.openqa.selenium.Capabilities", "boolean"] -} external; - -isolated function org_openqa_selenium_remote_RemoteWebDriver_newRemoteWebDriver3(handle executor, handle capabilities) returns handle = @java:Constructor { - 'class: "org.openqa.selenium.remote.RemoteWebDriver", - paramTypes: ["org.openqa.selenium.remote.CommandExecutor", "org.openqa.selenium.Capabilities"] -} external; - -isolated function org_openqa_selenium_remote_RemoteWebDriver_newRemoteWebDriver4(handle remoteAddress, handle capabilities) returns handle = @java:Constructor { - 'class: "org.openqa.selenium.remote.RemoteWebDriver", - paramTypes: ["java.net.URL", "org.openqa.selenium.Capabilities"] -} external; - -isolated function org_openqa_selenium_remote_RemoteWebDriver_newRemoteWebDriver5(handle remoteAddress, handle capabilities, boolean enableTracing) returns handle = @java:Constructor { - 'class: "org.openqa.selenium.remote.RemoteWebDriver", - paramTypes: ["java.net.URL", "org.openqa.selenium.Capabilities", "boolean"] -} external; - diff --git a/ballerina/modules/org.openqa.selenium.remote/RemoteWebDriverBuilder.bal b/ballerina/modules/org.openqa.selenium.remote/RemoteWebDriverBuilder.bal deleted file mode 100644 index b92de78..0000000 --- a/ballerina/modules/org.openqa.selenium.remote/RemoteWebDriverBuilder.bal +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). -// -// WSO2 LLC. licenses this file to you under the Apache License, -// Version 2.0 (the "License"); you may not use this file except -// in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -import ballerina/jballerina.java; - -# Ballerina class mapping for the Java `org.openqa.selenium.remote.RemoteWebDriverBuilder` class. -@java:Binding {'class: "org.openqa.selenium.remote.RemoteWebDriverBuilder"} -public distinct class RemoteWebDriverBuilder { - - *java:JObject; - - # The `handle` field that stores the reference to the `org.openqa.selenium.remote.RemoteWebDriverBuilder` object. - public handle jObj; - - # The init function of the Ballerina class mapping the `org.openqa.selenium.remote.RemoteWebDriverBuilder` Java class. - # - # + obj - The `handle` value containing the Java reference of the object. - public isolated function init(handle obj) { - self.jObj = obj; - } - - # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.remote.RemoteWebDriverBuilder` Java class. - # - # + return - The `string` form of the Java object instance. - public isolated function toString() returns string { - return java:toString(self.jObj) ?: ""; - } - -} - diff --git a/ballerina/modules/org.openqa.selenium.remote/Script.bal b/ballerina/modules/org.openqa.selenium.remote/Script.bal deleted file mode 100644 index 030905a..0000000 --- a/ballerina/modules/org.openqa.selenium.remote/Script.bal +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). -// -// WSO2 LLC. licenses this file to you under the Apache License, -// Version 2.0 (the "License"); you may not use this file except -// in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -import ballerina/jballerina.java; - -# Ballerina class mapping for the Java `org.openqa.selenium.remote.Script` interface. -@java:Binding {'class: "org.openqa.selenium.remote.Script"} -public distinct class Script { - - *java:JObject; - - # The `handle` field that stores the reference to the `org.openqa.selenium.remote.Script` object. - public handle jObj; - - # The init function of the Ballerina class mapping the `org.openqa.selenium.remote.Script` Java interface. - # - # + obj - The `handle` value containing the Java reference of the object. - public isolated function init(handle obj) { - self.jObj = obj; - } - - # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.remote.Script` Java interface. - # - # + return - The `string` form of the Java object instance. - public isolated function toString() returns string { - return java:toString(self.jObj) ?: ""; - } - -} - diff --git a/ballerina/modules/org.openqa.selenium.remote/SessionId.bal b/ballerina/modules/org.openqa.selenium.remote/SessionId.bal deleted file mode 100644 index 94e0e7a..0000000 --- a/ballerina/modules/org.openqa.selenium.remote/SessionId.bal +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). -// -// WSO2 LLC. licenses this file to you under the Apache License, -// Version 2.0 (the "License"); you may not use this file except -// in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -import ballerina/jballerina.java; - -# Ballerina class mapping for the Java `org.openqa.selenium.remote.SessionId` class. -@java:Binding {'class: "org.openqa.selenium.remote.SessionId"} -public distinct class SessionId { - - *java:JObject; - - # The `handle` field that stores the reference to the `org.openqa.selenium.remote.SessionId` object. - public handle jObj; - - # The init function of the Ballerina class mapping the `org.openqa.selenium.remote.SessionId` Java class. - # - # + obj - The `handle` value containing the Java reference of the object. - public isolated function init(handle obj) { - self.jObj = obj; - } - - # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.remote.SessionId` Java class. - # - # + return - The `string` form of the Java object instance. - public isolated function toString() returns string { - return java:toString(self.jObj) ?: ""; - } - -} - diff --git a/ballerina/modules/org.openqa.selenium.virtualauthenticator/VirtualAuthenticator.bal b/ballerina/modules/org.openqa.selenium.virtualauthenticator/VirtualAuthenticator.bal deleted file mode 100644 index bee5483..0000000 --- a/ballerina/modules/org.openqa.selenium.virtualauthenticator/VirtualAuthenticator.bal +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). -// -// WSO2 LLC. licenses this file to you under the Apache License, -// Version 2.0 (the "License"); you may not use this file except -// in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -import ballerina/jballerina.java; - -# Ballerina class mapping for the Java `org.openqa.selenium.virtualauthenticator.VirtualAuthenticator` interface. -@java:Binding {'class: "org.openqa.selenium.virtualauthenticator.VirtualAuthenticator"} -public distinct class VirtualAuthenticator { - - *java:JObject; - - # The `handle` field that stores the reference to the `org.openqa.selenium.virtualauthenticator.VirtualAuthenticator` object. - public handle jObj; - - # The init function of the Ballerina class mapping the `org.openqa.selenium.virtualauthenticator.VirtualAuthenticator` Java interface. - # - # + obj - The `handle` value containing the Java reference of the object. - public isolated function init(handle obj) { - self.jObj = obj; - } - - # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.virtualauthenticator.VirtualAuthenticator` Java interface. - # - # + return - The `string` form of the Java object instance. - public isolated function toString() returns string { - return java:toString(self.jObj) ?: ""; - } - -} - diff --git a/ballerina/modules/org.openqa.selenium.virtualauthenticator/VirtualAuthenticatorOptions.bal b/ballerina/modules/org.openqa.selenium.virtualauthenticator/VirtualAuthenticatorOptions.bal deleted file mode 100644 index 1ada23a..0000000 --- a/ballerina/modules/org.openqa.selenium.virtualauthenticator/VirtualAuthenticatorOptions.bal +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). -// -// WSO2 LLC. licenses this file to you under the Apache License, -// Version 2.0 (the "License"); you may not use this file except -// in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -import ballerina/jballerina.java; - -# Ballerina class mapping for the Java `org.openqa.selenium.virtualauthenticator.VirtualAuthenticatorOptions` class. -@java:Binding {'class: "org.openqa.selenium.virtualauthenticator.VirtualAuthenticatorOptions"} -public distinct class VirtualAuthenticatorOptions { - - *java:JObject; - - # The `handle` field that stores the reference to the `org.openqa.selenium.virtualauthenticator.VirtualAuthenticatorOptions` object. - public handle jObj; - - # The init function of the Ballerina class mapping the `org.openqa.selenium.virtualauthenticator.VirtualAuthenticatorOptions` Java class. - # - # + obj - The `handle` value containing the Java reference of the object. - public isolated function init(handle obj) { - self.jObj = obj; - } - - # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.virtualauthenticator.VirtualAuthenticatorOptions` Java class. - # - # + return - The `string` form of the Java object instance. - public isolated function toString() returns string { - return java:toString(self.jObj) ?: ""; - } - -} - diff --git a/ballerina/modules/safari/SafariDriver.bal b/ballerina/modules/safari/SafariDriver.bal deleted file mode 100644 index 5f59dcb..0000000 --- a/ballerina/modules/safari/SafariDriver.bal +++ /dev/null @@ -1,942 +0,0 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). -// -// WSO2 LLC. licenses this file to you under the Apache License, -// Version 2.0 (the "License"); you may not use this file except -// in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -import selenium.java.io as javaio; -import selenium.java.lang as javalang; -import selenium.java.nio.file as javaniofile; -import selenium.java.util as javautil; -import selenium.java.util.'function as javautilfunction; -import selenium.java.util.logging as javautillogging; -import selenium.web as orgopenqaselenium; -import selenium.org.openqa.selenium.'remote as orgopenqaseleniumremote; -import selenium.org.openqa.selenium.'remote.'service as orgopenqaseleniumremoteservice; -import selenium.org.openqa.selenium.'remote.http as orgopenqaseleniumremotehttp; -import selenium.org.openqa.selenium.federatedcredentialmanagement as orgopenqaseleniumfederatedcredentialmanagement; -import selenium.org.openqa.selenium.print as orgopenqaseleniumprint; -import selenium.org.openqa.selenium.virtualauthenticator as orgopenqaseleniumvirtualauthenticator; - -import ballerina/jballerina.java; -import ballerina/jballerina.java.arrays as jarrays; - -# Ballerina class mapping for the Java `org.openqa.selenium.safari.SafariDriver` class. -@java:Binding {'class: "org.openqa.selenium.safari.SafariDriver"} -public distinct class SafariDriver { - - *java:JObject; - *orgopenqaseleniumremote:RemoteWebDriver; - - # The `handle` field that stores the reference to the `org.openqa.selenium.safari.SafariDriver` object. - public handle jObj; - - # The init function of the Ballerina class mapping the `org.openqa.selenium.safari.SafariDriver` Java class. - # - # + obj - The `handle` value containing the Java reference of the object. - public isolated function init(handle obj) { - self.jObj = obj; - } - - # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.safari.SafariDriver` Java class. - # - # + return - The `string` form of the Java object instance. - public isolated function toString() returns string { - return java:toString(self.jObj) ?: ""; - } - - # The function that maps to the `addVirtualAuthenticator` method of `org.openqa.selenium.safari.SafariDriver`. - # - # + options - The `orgopenqaseleniumvirtualauthenticator:VirtualAuthenticatorOptions` value required to map with the Java method parameter. - # + return - The `orgopenqaseleniumvirtualauthenticator:VirtualAuthenticator` value returning from the Java mapping. - public isolated function addVirtualAuthenticator(orgopenqaseleniumvirtualauthenticator:VirtualAuthenticatorOptions options) returns orgopenqaseleniumvirtualauthenticator:VirtualAuthenticator { - handle externalObj = org_openqa_selenium_safari_SafariDriver_addVirtualAuthenticator(self.jObj, options.jObj); - orgopenqaseleniumvirtualauthenticator:VirtualAuthenticator newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `attachDebugger` method of `org.openqa.selenium.safari.SafariDriver`. - public isolated function attachDebugger() { - org_openqa_selenium_safari_SafariDriver_attachDebugger(self.jObj); - } - - # The function that maps to the `close` method of `org.openqa.selenium.safari.SafariDriver`. - public isolated function close() { - org_openqa_selenium_safari_SafariDriver_close(self.jObj); - } - - # The function that maps to the `deleteDownloadableFiles` method of `org.openqa.selenium.safari.SafariDriver`. - public isolated function deleteDownloadableFiles() { - org_openqa_selenium_safari_SafariDriver_deleteDownloadableFiles(self.jObj); - } - - # The function that maps to the `downloadFile` method of `org.openqa.selenium.safari.SafariDriver`. - # - # + fileName - The `string` value required to map with the Java method parameter. - # + targetLocation - The `javaniofile:Path` value required to map with the Java method parameter. - # + return - The `javaio:IOException` value returning from the Java mapping. - public isolated function downloadFile(string fileName, javaniofile:Path targetLocation) returns javaio:IOException? { - error|() externalObj = org_openqa_selenium_safari_SafariDriver_downloadFile(self.jObj, java:fromString(fileName), targetLocation.jObj); - if (externalObj is error) { - javaio:IOException e = error javaio:IOException(javaio:IOEXCEPTION, externalObj, message = externalObj.message()); - return e; - } - } - - # The function that maps to the `equals` method of `org.openqa.selenium.safari.SafariDriver`. - # - # + arg0 - The `javalang:Object` value required to map with the Java method parameter. - # + return - The `boolean` value returning from the Java mapping. - public isolated function 'equals(javalang:Object arg0) returns boolean { - return org_openqa_selenium_safari_SafariDriver_equals(self.jObj, arg0.jObj); - } - - # The function that maps to the `executeAsyncScript` method of `org.openqa.selenium.safari.SafariDriver`. - # - # + script - The `string` value required to map with the Java method parameter. - # + args - The `javalang:Object[]` value required to map with the Java method parameter. - # + return - The `javalang:Object` value returning from the Java mapping. - public isolated function executeAsyncScript(string script, javalang:Object[] args) returns javalang:Object|error { - handle externalObj = org_openqa_selenium_safari_SafariDriver_executeAsyncScript(self.jObj, java:fromString(script), check jarrays:toHandle(args, "java.lang.Object")); - javalang:Object newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `executeScript` method of `org.openqa.selenium.safari.SafariDriver`. - # - # + 'key - The `orgopenqaselenium:ScriptKey` value required to map with the Java method parameter. - # + args - The `javalang:Object[]` value required to map with the Java method parameter. - # + return - The `javalang:Object` value returning from the Java mapping. - public isolated function executeScript(orgopenqaselenium:ScriptKey 'key, javalang:Object[] args) returns javalang:Object|error { - handle externalObj = org_openqa_selenium_safari_SafariDriver_executeScript(self.jObj, 'key.jObj, check jarrays:toHandle(args, "java.lang.Object")); - javalang:Object newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `executeScript` method of `org.openqa.selenium.safari.SafariDriver`. - # - # + script - The `string` value required to map with the Java method parameter. - # + args - The `javalang:Object[]` value required to map with the Java method parameter. - # + return - The `javalang:Object` value returning from the Java mapping. - public isolated function executeScript2(string script, javalang:Object[] args) returns javalang:Object|error { - handle externalObj = org_openqa_selenium_safari_SafariDriver_executeScript2(self.jObj, java:fromString(script), check jarrays:toHandle(args, "java.lang.Object")); - javalang:Object newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `findElement` method of `org.openqa.selenium.safari.SafariDriver`. - # - # + locator - The `orgopenqaselenium:By` value required to map with the Java method parameter. - # + return - The `orgopenqaselenium:WebElement` value returning from the Java mapping. - public isolated function findElement(orgopenqaselenium:By locator) returns orgopenqaselenium:WebElement { - handle externalObj = org_openqa_selenium_safari_SafariDriver_findElement(self.jObj, locator.jObj); - orgopenqaselenium:WebElement newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `findElements` method of `org.openqa.selenium.safari.SafariDriver`. - # - # + locator - The `orgopenqaselenium:By` value required to map with the Java method parameter. - # + return - The `javautil:List` value returning from the Java mapping. - public isolated function findElements(orgopenqaselenium:By locator) returns javautil:List { - handle externalObj = org_openqa_selenium_safari_SafariDriver_findElements(self.jObj, locator.jObj); - javautil:List newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `findElements` method of `org.openqa.selenium.chrome.ChromeDriver`. - # - # + locator - The `orgopenqaselenium:By` value required to map with the Java method parameter. - # + return - The `orgopenqaselenium:WebElement[]` value returning from the Java mapping. - public isolated function findAllElements(orgopenqaselenium:By locator) returns orgopenqaselenium:WebElement[]|error { - handle externalObj = org_openqa_selenium_safari_SafariDriver_findElements(self.jObj, locator.jObj); - javautil:List newObj = new (externalObj); - orgopenqaselenium:WebElement[] elements = []; - javalang:Object[] arr = check newObj.toArray(); - foreach var item in arr { - elements.push(check java:cast(item, orgopenqaselenium:WebElement)); - } - return elements; - } - - # The function that maps to the `findElements` method of `org.openqa.selenium.safari.SafariDriver`. - # - # + context - The `orgopenqaselenium:SearchContext` value required to map with the Java method parameter. - # + findCommand - The `javautilfunction:BiFunction` value required to map with the Java method parameter. - # + locator - The `orgopenqaselenium:By` value required to map with the Java method parameter. - # + return - The `javautil:List` value returning from the Java mapping. - public isolated function findElements2(orgopenqaselenium:SearchContext context, javautilfunction:BiFunction findCommand, orgopenqaselenium:By locator) returns javautil:List { - handle externalObj = org_openqa_selenium_safari_SafariDriver_findElements2(self.jObj, context.jObj, findCommand.jObj, locator.jObj); - javautil:List newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `get` method of `org.openqa.selenium.safari.SafariDriver`. - # - # + url - The `string` value required to map with the Java method parameter. - public isolated function get(string url) { - org_openqa_selenium_safari_SafariDriver_get(self.jObj, java:fromString(url)); - } - - # The function that maps to the `getCapabilities` method of `org.openqa.selenium.safari.SafariDriver`. - # - # + return - The `orgopenqaselenium:Capabilities` value returning from the Java mapping. - public isolated function getCapabilities() returns orgopenqaselenium:Capabilities { - handle externalObj = org_openqa_selenium_safari_SafariDriver_getCapabilities(self.jObj); - orgopenqaselenium:Capabilities newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getClass` method of `org.openqa.selenium.safari.SafariDriver`. - # - # + return - The `javalang:Class` value returning from the Java mapping. - public isolated function getClass() returns javalang:Class { - handle externalObj = org_openqa_selenium_safari_SafariDriver_getClass(self.jObj); - javalang:Class newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getCommandExecutor` method of `org.openqa.selenium.safari.SafariDriver`. - # - # + return - The `orgopenqaseleniumremote:CommandExecutor` value returning from the Java mapping. - public isolated function getCommandExecutor() returns orgopenqaseleniumremote:CommandExecutor { - handle externalObj = org_openqa_selenium_safari_SafariDriver_getCommandExecutor(self.jObj); - orgopenqaseleniumremote:CommandExecutor newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getCurrentUrl` method of `org.openqa.selenium.safari.SafariDriver`. - # - # + return - The `string` value returning from the Java mapping. - public isolated function getCurrentUrl() returns string { - return java:toString(org_openqa_selenium_safari_SafariDriver_getCurrentUrl(self.jObj)) ?: ""; - } - - # The function that maps to the `getDownloadableFiles` method of `org.openqa.selenium.safari.SafariDriver`. - # - # + return - The `javautil:List` value returning from the Java mapping. - public isolated function getDownloadableFiles() returns javautil:List { - handle externalObj = org_openqa_selenium_safari_SafariDriver_getDownloadableFiles(self.jObj); - javautil:List newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getErrorHandler` method of `org.openqa.selenium.safari.SafariDriver`. - # - # + return - The `orgopenqaseleniumremote:ErrorHandler` value returning from the Java mapping. - public isolated function getErrorHandler() returns orgopenqaseleniumremote:ErrorHandler { - handle externalObj = org_openqa_selenium_safari_SafariDriver_getErrorHandler(self.jObj); - orgopenqaseleniumremote:ErrorHandler newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getFederatedCredentialManagementDialog` method of `org.openqa.selenium.safari.SafariDriver`. - # - # + return - The `orgopenqaseleniumfederatedcredentialmanagement:FederatedCredentialManagementDialog` value returning from the Java mapping. - public isolated function getFederatedCredentialManagementDialog() returns orgopenqaseleniumfederatedcredentialmanagement:FederatedCredentialManagementDialog { - handle externalObj = org_openqa_selenium_safari_SafariDriver_getFederatedCredentialManagementDialog(self.jObj); - orgopenqaseleniumfederatedcredentialmanagement:FederatedCredentialManagementDialog newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getFileDetector` method of `org.openqa.selenium.safari.SafariDriver`. - # - # + return - The `orgopenqaseleniumremote:FileDetector` value returning from the Java mapping. - public isolated function getFileDetector() returns orgopenqaseleniumremote:FileDetector { - handle externalObj = org_openqa_selenium_safari_SafariDriver_getFileDetector(self.jObj); - orgopenqaseleniumremote:FileDetector newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getPageSource` method of `org.openqa.selenium.safari.SafariDriver`. - # - # + return - The `string` value returning from the Java mapping. - public isolated function getPageSource() returns string { - return java:toString(org_openqa_selenium_safari_SafariDriver_getPageSource(self.jObj)) ?: ""; - } - - # The function that maps to the `getPermissions` method of `org.openqa.selenium.safari.SafariDriver`. - # - # + return - The `javautil:Map` value returning from the Java mapping. - public isolated function getPermissions() returns javautil:Map { - handle externalObj = org_openqa_selenium_safari_SafariDriver_getPermissions(self.jObj); - javautil:Map newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getPinnedScripts` method of `org.openqa.selenium.safari.SafariDriver`. - # - # + return - The `javautil:Set` value returning from the Java mapping. - public isolated function getPinnedScripts() returns javautil:Set { - handle externalObj = org_openqa_selenium_safari_SafariDriver_getPinnedScripts(self.jObj); - javautil:Set newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getScreenshotAs` method of `org.openqa.selenium.safari.SafariDriver`. - # - # + outputType - The `orgopenqaselenium:OutputType` value required to map with the Java method parameter. - # + return - The `javalang:Object` value returning from the Java mapping. - public isolated function getScreenshotAs(orgopenqaselenium:OutputType outputType) returns javalang:Object { - handle externalObj = org_openqa_selenium_safari_SafariDriver_getScreenshotAs(self.jObj, outputType.jObj); - javalang:Object newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getSessionId` method of `org.openqa.selenium.safari.SafariDriver`. - # - # + return - The `orgopenqaseleniumremote:SessionId` value returning from the Java mapping. - public isolated function getSessionId() returns orgopenqaseleniumremote:SessionId { - handle externalObj = org_openqa_selenium_safari_SafariDriver_getSessionId(self.jObj); - orgopenqaseleniumremote:SessionId newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getTitle` method of `org.openqa.selenium.safari.SafariDriver`. - # - # + return - The `string` value returning from the Java mapping. - public isolated function getTitle() returns string { - return java:toString(org_openqa_selenium_safari_SafariDriver_getTitle(self.jObj)) ?: ""; - } - - # The function that maps to the `getWindowHandle` method of `org.openqa.selenium.safari.SafariDriver`. - # - # + return - The `string` value returning from the Java mapping. - public isolated function getWindowHandle() returns string { - return java:toString(org_openqa_selenium_safari_SafariDriver_getWindowHandle(self.jObj)) ?: ""; - } - - # The function that maps to the `getWindowHandles` method of `org.openqa.selenium.safari.SafariDriver`. - # - # + return - The `javautil:Set` value returning from the Java mapping. - public isolated function getWindowHandles() returns javautil:Set { - handle externalObj = org_openqa_selenium_safari_SafariDriver_getWindowHandles(self.jObj); - javautil:Set newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `hashCode` method of `org.openqa.selenium.safari.SafariDriver`. - # - # + return - The `int` value returning from the Java mapping. - public isolated function hashCode() returns int { - return org_openqa_selenium_safari_SafariDriver_hashCode(self.jObj); - } - - # The function that maps to the `manage` method of `org.openqa.selenium.safari.SafariDriver`. - # - # + return - The `orgopenqaselenium:Options` value returning from the Java mapping. - public isolated function manage() returns orgopenqaselenium:Options { - handle externalObj = org_openqa_selenium_safari_SafariDriver_manage(self.jObj); - orgopenqaselenium:Options newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `navigate` method of `org.openqa.selenium.safari.SafariDriver`. - # - # + return - The `orgopenqaselenium:Navigation` value returning from the Java mapping. - public isolated function navigate() returns orgopenqaselenium:Navigation { - handle externalObj = org_openqa_selenium_safari_SafariDriver_navigate(self.jObj); - orgopenqaselenium:Navigation newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `network` method of `org.openqa.selenium.safari.SafariDriver`. - # - # + return - The `orgopenqaseleniumremote:Network` value returning from the Java mapping. - public isolated function network() returns orgopenqaseleniumremote:Network { - handle externalObj = org_openqa_selenium_safari_SafariDriver_network(self.jObj); - orgopenqaseleniumremote:Network newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `notify` method of `org.openqa.selenium.safari.SafariDriver`. - public isolated function notify() { - org_openqa_selenium_safari_SafariDriver_notify(self.jObj); - } - - # The function that maps to the `notifyAll` method of `org.openqa.selenium.safari.SafariDriver`. - public isolated function notifyAll() { - org_openqa_selenium_safari_SafariDriver_notifyAll(self.jObj); - } - - # The function that maps to the `perform` method of `org.openqa.selenium.safari.SafariDriver`. - # - # + actions - The `javautil:Collection` value required to map with the Java method parameter. - public isolated function perform(javautil:Collection actions) { - org_openqa_selenium_safari_SafariDriver_perform(self.jObj, actions.jObj); - } - - # The function that maps to the `pin` method of `org.openqa.selenium.safari.SafariDriver`. - # - # + script - The `string` value required to map with the Java method parameter. - # + return - The `orgopenqaselenium:ScriptKey` value returning from the Java mapping. - public isolated function pin(string script) returns orgopenqaselenium:ScriptKey { - handle externalObj = org_openqa_selenium_safari_SafariDriver_pin(self.jObj, java:fromString(script)); - orgopenqaselenium:ScriptKey newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `print` method of `org.openqa.selenium.safari.SafariDriver`. - # - # + printOptions - The `orgopenqaseleniumprint:PrintOptions` value required to map with the Java method parameter. - # + return - The `orgopenqaselenium:Pdf` value returning from the Java mapping. - public isolated function print(orgopenqaseleniumprint:PrintOptions printOptions) returns orgopenqaselenium:Pdf { - handle externalObj = org_openqa_selenium_safari_SafariDriver_print(self.jObj, printOptions.jObj); - orgopenqaselenium:Pdf newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `quit` method of `org.openqa.selenium.safari.SafariDriver`. - public isolated function quit() { - org_openqa_selenium_safari_SafariDriver_quit(self.jObj); - } - - # The function that maps to the `removeVirtualAuthenticator` method of `org.openqa.selenium.safari.SafariDriver`. - # - # + authenticator - The `orgopenqaseleniumvirtualauthenticator:VirtualAuthenticator` value required to map with the Java method parameter. - public isolated function removeVirtualAuthenticator(orgopenqaseleniumvirtualauthenticator:VirtualAuthenticator authenticator) { - org_openqa_selenium_safari_SafariDriver_removeVirtualAuthenticator(self.jObj, authenticator.jObj); - } - - # The function that maps to the `requireDownloadsEnabled` method of `org.openqa.selenium.safari.SafariDriver`. - # - # + capabilities - The `orgopenqaselenium:Capabilities` value required to map with the Java method parameter. - public isolated function requireDownloadsEnabled(orgopenqaselenium:Capabilities capabilities) { - org_openqa_selenium_safari_SafariDriver_requireDownloadsEnabled(self.jObj, capabilities.jObj); - } - - # The function that maps to the `resetCooldown` method of `org.openqa.selenium.safari.SafariDriver`. - public isolated function resetCooldown() { - org_openqa_selenium_safari_SafariDriver_resetCooldown(self.jObj); - } - - # The function that maps to the `resetInputState` method of `org.openqa.selenium.safari.SafariDriver`. - public isolated function resetInputState() { - org_openqa_selenium_safari_SafariDriver_resetInputState(self.jObj); - } - - # The function that maps to the `script` method of `org.openqa.selenium.safari.SafariDriver`. - # - # + return - The `orgopenqaseleniumremote:Script` value returning from the Java mapping. - public isolated function script() returns orgopenqaseleniumremote:Script { - handle externalObj = org_openqa_selenium_safari_SafariDriver_script(self.jObj); - orgopenqaseleniumremote:Script newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `setDelayEnabled` method of `org.openqa.selenium.safari.SafariDriver`. - # - # + enabled - The `boolean` value required to map with the Java method parameter. - public isolated function setDelayEnabled(boolean enabled) { - org_openqa_selenium_safari_SafariDriver_setDelayEnabled(self.jObj, enabled); - } - - # The function that maps to the `setErrorHandler` method of `org.openqa.selenium.safari.SafariDriver`. - # - # + handler - The `orgopenqaseleniumremote:ErrorHandler` value required to map with the Java method parameter. - public isolated function setErrorHandler(orgopenqaseleniumremote:ErrorHandler handler) { - org_openqa_selenium_safari_SafariDriver_setErrorHandler(self.jObj, handler.jObj); - } - - # The function that maps to the `setFileDetector` method of `org.openqa.selenium.safari.SafariDriver`. - # - # + detector - The `orgopenqaseleniumremote:FileDetector` value required to map with the Java method parameter. - public isolated function setFileDetector(orgopenqaseleniumremote:FileDetector detector) { - org_openqa_selenium_safari_SafariDriver_setFileDetector(self.jObj, detector.jObj); - } - - # The function that maps to the `setLogLevel` method of `org.openqa.selenium.safari.SafariDriver`. - # - # + level - The `javautillogging:Level` value required to map with the Java method parameter. - public isolated function setLogLevel(javautillogging:Level level) { - org_openqa_selenium_safari_SafariDriver_setLogLevel(self.jObj, level.jObj); - } - - # The function that maps to the `setPermissions` method of `org.openqa.selenium.safari.SafariDriver`. - # - # + permission - The `string` value required to map with the Java method parameter. - # + value - The `boolean` value required to map with the Java method parameter. - public isolated function setPermissions(string permission, boolean value) { - org_openqa_selenium_safari_SafariDriver_setPermissions(self.jObj, java:fromString(permission), value); - } - - # The function that maps to the `switchTo` method of `org.openqa.selenium.safari.SafariDriver`. - # - # + return - The `orgopenqaselenium:TargetLocator` value returning from the Java mapping. - public isolated function switchTo() returns orgopenqaselenium:TargetLocator { - handle externalObj = org_openqa_selenium_safari_SafariDriver_switchTo(self.jObj); - orgopenqaselenium:TargetLocator newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `unpin` method of `org.openqa.selenium.safari.SafariDriver`. - # - # + 'key - The `orgopenqaselenium:ScriptKey` value required to map with the Java method parameter. - public isolated function unpin(orgopenqaselenium:ScriptKey 'key) { - org_openqa_selenium_safari_SafariDriver_unpin(self.jObj, 'key.jObj); - } - - # The function that maps to the `wait` method of `org.openqa.selenium.safari.SafariDriver`. - # - # + return - The `javalang:InterruptedException` value returning from the Java mapping. - public isolated function 'wait() returns javalang:InterruptedException? { - error|() externalObj = org_openqa_selenium_safari_SafariDriver_wait(self.jObj); - if (externalObj is error) { - javalang:InterruptedException e = error javalang:InterruptedException(javalang:INTERRUPTEDEXCEPTION, externalObj, message = externalObj.message()); - return e; - } - } - - # The function that maps to the `wait` method of `org.openqa.selenium.safari.SafariDriver`. - # - # + arg0 - The `int` value required to map with the Java method parameter. - # + return - The `javalang:InterruptedException` value returning from the Java mapping. - public isolated function wait2(int arg0) returns javalang:InterruptedException? { - error|() externalObj = org_openqa_selenium_safari_SafariDriver_wait2(self.jObj, arg0); - if (externalObj is error) { - javalang:InterruptedException e = error javalang:InterruptedException(javalang:INTERRUPTEDEXCEPTION, externalObj, message = externalObj.message()); - return e; - } - } - - # The function that maps to the `wait` method of `org.openqa.selenium.safari.SafariDriver`. - # - # + arg0 - The `int` value required to map with the Java method parameter. - # + arg1 - The `int` value required to map with the Java method parameter. - # + return - The `javalang:InterruptedException` value returning from the Java mapping. - public isolated function wait3(int arg0, int arg1) returns javalang:InterruptedException? { - error|() externalObj = org_openqa_selenium_safari_SafariDriver_wait3(self.jObj, arg0, arg1); - if (externalObj is error) { - javalang:InterruptedException e = error javalang:InterruptedException(javalang:INTERRUPTEDEXCEPTION, externalObj, message = externalObj.message()); - return e; - } - } - -} - -# The constructor function to generate an object of `org.openqa.selenium.safari.SafariDriver`. -# -# + return - The new `SafariDriver` class generated. -public isolated function newSafariDriver1() returns SafariDriver { - handle externalObj = org_openqa_selenium_safari_SafariDriver_newSafariDriver1(); - SafariDriver newObj = new (externalObj); - return newObj; -} - -# The constructor function to generate an object of `org.openqa.selenium.safari.SafariDriver`. -# -# + 'service - The `orgopenqaseleniumremoteservice:DriverService` value required to map with the Java constructor parameter. -# + options - The `SafariOptions` value required to map with the Java constructor parameter. -# + return - The new `SafariDriver` class generated. -public isolated function newSafariDriver2(orgopenqaseleniumremoteservice:DriverService 'service, SafariOptions options) returns SafariDriver { - handle externalObj = org_openqa_selenium_safari_SafariDriver_newSafariDriver2('service.jObj, options.jObj); - SafariDriver newObj = new (externalObj); - return newObj; -} - -# The constructor function to generate an object of `org.openqa.selenium.safari.SafariDriver`. -# -# + 'service - The `orgopenqaseleniumremoteservice:DriverService` value required to map with the Java constructor parameter. -# + options - The `SafariOptions` value required to map with the Java constructor parameter. -# + clientConfig - The `orgopenqaseleniumremotehttp:ClientConfig` value required to map with the Java constructor parameter. -# + return - The new `SafariDriver` class generated. -public isolated function newSafariDriver3(orgopenqaseleniumremoteservice:DriverService 'service, SafariOptions options, orgopenqaseleniumremotehttp:ClientConfig clientConfig) returns SafariDriver { - handle externalObj = org_openqa_selenium_safari_SafariDriver_newSafariDriver3('service.jObj, options.jObj, clientConfig.jObj); - SafariDriver newObj = new (externalObj); - return newObj; -} - -# The constructor function to generate an object of `org.openqa.selenium.safari.SafariDriver`. -# -# + safariService - The `SafariDriverService` value required to map with the Java constructor parameter. -# + return - The new `SafariDriver` class generated. -public isolated function newSafariDriver4(SafariDriverService safariService) returns SafariDriver { - handle externalObj = org_openqa_selenium_safari_SafariDriver_newSafariDriver4(safariService.jObj); - SafariDriver newObj = new (externalObj); - return newObj; -} - -# The constructor function to generate an object of `org.openqa.selenium.safari.SafariDriver`. -# -# + safariOptions - The `SafariOptions` value required to map with the Java constructor parameter. -# + return - The new `SafariDriver` class generated. -public isolated function newSafariDriver5(SafariOptions safariOptions) returns SafariDriver { - handle externalObj = org_openqa_selenium_safari_SafariDriver_newSafariDriver5(safariOptions.jObj); - SafariDriver newObj = new (externalObj); - return newObj; -} - -# The function that maps to the `builder` method of `org.openqa.selenium.safari.SafariDriver`. -# -# + return - The `orgopenqaseleniumremote:RemoteWebDriverBuilder` value returning from the Java mapping. -public isolated function SafariDriver_builder() returns orgopenqaseleniumremote:RemoteWebDriverBuilder { - handle externalObj = org_openqa_selenium_safari_SafariDriver_builder(); - orgopenqaseleniumremote:RemoteWebDriverBuilder newObj = new (externalObj); - return newObj; -} - -isolated function org_openqa_selenium_safari_SafariDriver_addVirtualAuthenticator(handle receiver, handle options) returns handle = @java:Method { - name: "addVirtualAuthenticator", - 'class: "org.openqa.selenium.safari.SafariDriver", - paramTypes: ["org.openqa.selenium.virtualauthenticator.VirtualAuthenticatorOptions"] -} external; - -isolated function org_openqa_selenium_safari_SafariDriver_attachDebugger(handle receiver) = @java:Method { - name: "attachDebugger", - 'class: "org.openqa.selenium.safari.SafariDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_safari_SafariDriver_builder() returns handle = @java:Method { - name: "builder", - 'class: "org.openqa.selenium.safari.SafariDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_safari_SafariDriver_close(handle receiver) = @java:Method { - name: "close", - 'class: "org.openqa.selenium.safari.SafariDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_safari_SafariDriver_deleteDownloadableFiles(handle receiver) = @java:Method { - name: "deleteDownloadableFiles", - 'class: "org.openqa.selenium.safari.SafariDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_safari_SafariDriver_downloadFile(handle receiver, handle fileName, handle targetLocation) returns error? = @java:Method { - name: "downloadFile", - 'class: "org.openqa.selenium.safari.SafariDriver", - paramTypes: ["java.lang.String", "java.nio.file.Path"] -} external; - -isolated function org_openqa_selenium_safari_SafariDriver_equals(handle receiver, handle arg0) returns boolean = @java:Method { - name: "equals", - 'class: "org.openqa.selenium.safari.SafariDriver", - paramTypes: ["java.lang.Object"] -} external; - -isolated function org_openqa_selenium_safari_SafariDriver_executeAsyncScript(handle receiver, handle script, handle args) returns handle = @java:Method { - name: "executeAsyncScript", - 'class: "org.openqa.selenium.safari.SafariDriver", - paramTypes: ["java.lang.String", "[Ljava.lang.Object;"] -} external; - -isolated function org_openqa_selenium_safari_SafariDriver_executeScript(handle receiver, handle 'key, handle args) returns handle = @java:Method { - name: "executeScript", - 'class: "org.openqa.selenium.safari.SafariDriver", - paramTypes: ["org.openqa.selenium.ScriptKey", "[Ljava.lang.Object;"] -} external; - -isolated function org_openqa_selenium_safari_SafariDriver_executeScript2(handle receiver, handle script, handle args) returns handle = @java:Method { - name: "executeScript", - 'class: "org.openqa.selenium.safari.SafariDriver", - paramTypes: ["java.lang.String", "[Ljava.lang.Object;"] -} external; - -isolated function org_openqa_selenium_safari_SafariDriver_findElement(handle receiver, handle locator) returns handle = @java:Method { - name: "findElement", - 'class: "org.openqa.selenium.safari.SafariDriver", - paramTypes: ["org.openqa.selenium.By"] -} external; - -isolated function org_openqa_selenium_safari_SafariDriver_findElements(handle receiver, handle locator) returns handle = @java:Method { - name: "findElements", - 'class: "org.openqa.selenium.safari.SafariDriver", - paramTypes: ["org.openqa.selenium.By"] -} external; - -isolated function org_openqa_selenium_safari_SafariDriver_findElements2(handle receiver, handle context, handle findCommand, handle locator) returns handle = @java:Method { - name: "findElements", - 'class: "org.openqa.selenium.safari.SafariDriver", - paramTypes: ["org.openqa.selenium.SearchContext", "java.util.function.BiFunction", "org.openqa.selenium.By"] -} external; - -isolated function org_openqa_selenium_safari_SafariDriver_get(handle receiver, handle url) = @java:Method { - name: "get", - 'class: "org.openqa.selenium.safari.SafariDriver", - paramTypes: ["java.lang.String"] -} external; - -isolated function org_openqa_selenium_safari_SafariDriver_getCapabilities(handle receiver) returns handle = @java:Method { - name: "getCapabilities", - 'class: "org.openqa.selenium.safari.SafariDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_safari_SafariDriver_getClass(handle receiver) returns handle = @java:Method { - name: "getClass", - 'class: "org.openqa.selenium.safari.SafariDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_safari_SafariDriver_getCommandExecutor(handle receiver) returns handle = @java:Method { - name: "getCommandExecutor", - 'class: "org.openqa.selenium.safari.SafariDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_safari_SafariDriver_getCurrentUrl(handle receiver) returns handle = @java:Method { - name: "getCurrentUrl", - 'class: "org.openqa.selenium.safari.SafariDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_safari_SafariDriver_getDownloadableFiles(handle receiver) returns handle = @java:Method { - name: "getDownloadableFiles", - 'class: "org.openqa.selenium.safari.SafariDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_safari_SafariDriver_getErrorHandler(handle receiver) returns handle = @java:Method { - name: "getErrorHandler", - 'class: "org.openqa.selenium.safari.SafariDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_safari_SafariDriver_getFederatedCredentialManagementDialog(handle receiver) returns handle = @java:Method { - name: "getFederatedCredentialManagementDialog", - 'class: "org.openqa.selenium.safari.SafariDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_safari_SafariDriver_getFileDetector(handle receiver) returns handle = @java:Method { - name: "getFileDetector", - 'class: "org.openqa.selenium.safari.SafariDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_safari_SafariDriver_getPageSource(handle receiver) returns handle = @java:Method { - name: "getPageSource", - 'class: "org.openqa.selenium.safari.SafariDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_safari_SafariDriver_getPermissions(handle receiver) returns handle = @java:Method { - name: "getPermissions", - 'class: "org.openqa.selenium.safari.SafariDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_safari_SafariDriver_getPinnedScripts(handle receiver) returns handle = @java:Method { - name: "getPinnedScripts", - 'class: "org.openqa.selenium.safari.SafariDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_safari_SafariDriver_getScreenshotAs(handle receiver, handle outputType) returns handle = @java:Method { - name: "getScreenshotAs", - 'class: "org.openqa.selenium.safari.SafariDriver", - paramTypes: ["org.openqa.selenium.OutputType"] -} external; - -isolated function org_openqa_selenium_safari_SafariDriver_getSessionId(handle receiver) returns handle = @java:Method { - name: "getSessionId", - 'class: "org.openqa.selenium.safari.SafariDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_safari_SafariDriver_getTitle(handle receiver) returns handle = @java:Method { - name: "getTitle", - 'class: "org.openqa.selenium.safari.SafariDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_safari_SafariDriver_getWindowHandle(handle receiver) returns handle = @java:Method { - name: "getWindowHandle", - 'class: "org.openqa.selenium.safari.SafariDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_safari_SafariDriver_getWindowHandles(handle receiver) returns handle = @java:Method { - name: "getWindowHandles", - 'class: "org.openqa.selenium.safari.SafariDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_safari_SafariDriver_hashCode(handle receiver) returns int = @java:Method { - name: "hashCode", - 'class: "org.openqa.selenium.safari.SafariDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_safari_SafariDriver_manage(handle receiver) returns handle = @java:Method { - name: "manage", - 'class: "org.openqa.selenium.safari.SafariDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_safari_SafariDriver_navigate(handle receiver) returns handle = @java:Method { - name: "navigate", - 'class: "org.openqa.selenium.safari.SafariDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_safari_SafariDriver_network(handle receiver) returns handle = @java:Method { - name: "network", - 'class: "org.openqa.selenium.safari.SafariDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_safari_SafariDriver_notify(handle receiver) = @java:Method { - name: "notify", - 'class: "org.openqa.selenium.safari.SafariDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_safari_SafariDriver_notifyAll(handle receiver) = @java:Method { - name: "notifyAll", - 'class: "org.openqa.selenium.safari.SafariDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_safari_SafariDriver_perform(handle receiver, handle actions) = @java:Method { - name: "perform", - 'class: "org.openqa.selenium.safari.SafariDriver", - paramTypes: ["java.util.Collection"] -} external; - -isolated function org_openqa_selenium_safari_SafariDriver_pin(handle receiver, handle script) returns handle = @java:Method { - name: "pin", - 'class: "org.openqa.selenium.safari.SafariDriver", - paramTypes: ["java.lang.String"] -} external; - -isolated function org_openqa_selenium_safari_SafariDriver_print(handle receiver, handle printOptions) returns handle = @java:Method { - name: "print", - 'class: "org.openqa.selenium.safari.SafariDriver", - paramTypes: ["org.openqa.selenium.print.PrintOptions"] -} external; - -isolated function org_openqa_selenium_safari_SafariDriver_quit(handle receiver) = @java:Method { - name: "quit", - 'class: "org.openqa.selenium.safari.SafariDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_safari_SafariDriver_removeVirtualAuthenticator(handle receiver, handle authenticator) = @java:Method { - name: "removeVirtualAuthenticator", - 'class: "org.openqa.selenium.safari.SafariDriver", - paramTypes: ["org.openqa.selenium.virtualauthenticator.VirtualAuthenticator"] -} external; - -isolated function org_openqa_selenium_safari_SafariDriver_requireDownloadsEnabled(handle receiver, handle capabilities) = @java:Method { - name: "requireDownloadsEnabled", - 'class: "org.openqa.selenium.safari.SafariDriver", - paramTypes: ["org.openqa.selenium.Capabilities"] -} external; - -isolated function org_openqa_selenium_safari_SafariDriver_resetCooldown(handle receiver) = @java:Method { - name: "resetCooldown", - 'class: "org.openqa.selenium.safari.SafariDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_safari_SafariDriver_resetInputState(handle receiver) = @java:Method { - name: "resetInputState", - 'class: "org.openqa.selenium.safari.SafariDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_safari_SafariDriver_script(handle receiver) returns handle = @java:Method { - name: "script", - 'class: "org.openqa.selenium.safari.SafariDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_safari_SafariDriver_setDelayEnabled(handle receiver, boolean enabled) = @java:Method { - name: "setDelayEnabled", - 'class: "org.openqa.selenium.safari.SafariDriver", - paramTypes: ["boolean"] -} external; - -isolated function org_openqa_selenium_safari_SafariDriver_setErrorHandler(handle receiver, handle handler) = @java:Method { - name: "setErrorHandler", - 'class: "org.openqa.selenium.safari.SafariDriver", - paramTypes: ["org.openqa.selenium.remote.ErrorHandler"] -} external; - -isolated function org_openqa_selenium_safari_SafariDriver_setFileDetector(handle receiver, handle detector) = @java:Method { - name: "setFileDetector", - 'class: "org.openqa.selenium.safari.SafariDriver", - paramTypes: ["org.openqa.selenium.remote.FileDetector"] -} external; - -isolated function org_openqa_selenium_safari_SafariDriver_setLogLevel(handle receiver, handle level) = @java:Method { - name: "setLogLevel", - 'class: "org.openqa.selenium.safari.SafariDriver", - paramTypes: ["java.util.logging.Level"] -} external; - -isolated function org_openqa_selenium_safari_SafariDriver_setPermissions(handle receiver, handle permission, boolean value) = @java:Method { - name: "setPermissions", - 'class: "org.openqa.selenium.safari.SafariDriver", - paramTypes: ["java.lang.String", "boolean"] -} external; - -isolated function org_openqa_selenium_safari_SafariDriver_switchTo(handle receiver) returns handle = @java:Method { - name: "switchTo", - 'class: "org.openqa.selenium.safari.SafariDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_safari_SafariDriver_unpin(handle receiver, handle 'key) = @java:Method { - name: "unpin", - 'class: "org.openqa.selenium.safari.SafariDriver", - paramTypes: ["org.openqa.selenium.ScriptKey"] -} external; - -isolated function org_openqa_selenium_safari_SafariDriver_wait(handle receiver) returns error? = @java:Method { - name: "wait", - 'class: "org.openqa.selenium.safari.SafariDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_safari_SafariDriver_wait2(handle receiver, int arg0) returns error? = @java:Method { - name: "wait", - 'class: "org.openqa.selenium.safari.SafariDriver", - paramTypes: ["long"] -} external; - -isolated function org_openqa_selenium_safari_SafariDriver_wait3(handle receiver, int arg0, int arg1) returns error? = @java:Method { - name: "wait", - 'class: "org.openqa.selenium.safari.SafariDriver", - paramTypes: ["long", "int"] -} external; - -isolated function org_openqa_selenium_safari_SafariDriver_newSafariDriver1() returns handle = @java:Constructor { - 'class: "org.openqa.selenium.safari.SafariDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_safari_SafariDriver_newSafariDriver2(handle 'service, handle options) returns handle = @java:Constructor { - 'class: "org.openqa.selenium.safari.SafariDriver", - paramTypes: ["org.openqa.selenium.remote.service.DriverService", "org.openqa.selenium.safari.SafariOptions"] -} external; - -isolated function org_openqa_selenium_safari_SafariDriver_newSafariDriver3(handle 'service, handle options, handle clientConfig) returns handle = @java:Constructor { - 'class: "org.openqa.selenium.safari.SafariDriver", - paramTypes: ["org.openqa.selenium.remote.service.DriverService", "org.openqa.selenium.safari.SafariOptions", "org.openqa.selenium.remote.http.ClientConfig"] -} external; - -isolated function org_openqa_selenium_safari_SafariDriver_newSafariDriver4(handle safariService) returns handle = @java:Constructor { - 'class: "org.openqa.selenium.safari.SafariDriver", - paramTypes: ["org.openqa.selenium.safari.SafariDriverService"] -} external; - -isolated function org_openqa_selenium_safari_SafariDriver_newSafariDriver5(handle safariOptions) returns handle = @java:Constructor { - 'class: "org.openqa.selenium.safari.SafariDriver", - paramTypes: ["org.openqa.selenium.safari.SafariOptions"] -} external; - diff --git a/ballerina/modules/safari/SafariDriverService.bal b/ballerina/modules/safari/SafariDriverService.bal deleted file mode 100644 index 1d218e5..0000000 --- a/ballerina/modules/safari/SafariDriverService.bal +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). -// -// WSO2 LLC. licenses this file to you under the Apache License, -// Version 2.0 (the "License"); you may not use this file except -// in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -import ballerina/jballerina.java; - -# Ballerina class mapping for the Java `org.openqa.selenium.safari.SafariDriverService` class. -@java:Binding {'class: "org.openqa.selenium.safari.SafariDriverService"} -public distinct class SafariDriverService { - - *java:JObject; - - # The `handle` field that stores the reference to the `org.openqa.selenium.safari.SafariDriverService` object. - public handle jObj; - - # The init function of the Ballerina class mapping the `org.openqa.selenium.safari.SafariDriverService` Java class. - # - # + obj - The `handle` value containing the Java reference of the object. - public isolated function init(handle obj) { - self.jObj = obj; - } - - # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.safari.SafariDriverService` Java class. - # - # + return - The `string` form of the Java object instance. - public isolated function toString() returns string { - return java:toString(self.jObj) ?: ""; - } - -} - diff --git a/ballerina/modules/safari/SafariOptions.bal b/ballerina/modules/safari/SafariOptions.bal deleted file mode 100644 index 73a3cc3..0000000 --- a/ballerina/modules/safari/SafariOptions.bal +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). -// -// WSO2 LLC. licenses this file to you under the Apache License, -// Version 2.0 (the "License"); you may not use this file except -// in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -import ballerina/jballerina.java; - -# Ballerina class mapping for the Java `org.openqa.selenium.safari.SafariOptions` class. -@java:Binding {'class: "org.openqa.selenium.safari.SafariOptions"} -public distinct class SafariOptions { - - *java:JObject; - - # The `handle` field that stores the reference to the `org.openqa.selenium.safari.SafariOptions` object. - public handle jObj; - - # The init function of the Ballerina class mapping the `org.openqa.selenium.safari.SafariOptions` Java class. - # - # + obj - The `handle` value containing the Java reference of the object. - public isolated function init(handle obj) { - self.jObj = obj; - } - - # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.safari.SafariOptions` Java class. - # - # + return - The `string` form of the Java object instance. - public isolated function toString() returns string { - return java:toString(self.jObj) ?: ""; - } - -} - diff --git a/ballerina/modules/web/By.bal b/ballerina/modules/web/By.bal deleted file mode 100644 index b233d26..0000000 --- a/ballerina/modules/web/By.bal +++ /dev/null @@ -1,325 +0,0 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). -// -// WSO2 LLC. licenses this file to you under the Apache License, -// Version 2.0 (the "License"); you may not use this file except -// in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -import selenium.java.lang as javalang; -import selenium.java.util as javautil; - -import ballerina/jballerina.java; - -# Ballerina class mapping for the Java `org.openqa.selenium.By` class. -@java:Binding {'class: "org.openqa.selenium.By"} -public distinct class By { - - *java:JObject; - *javalang:Object; - - # The `handle` field that stores the reference to the `org.openqa.selenium.By` object. - public handle jObj; - - # The init function of the Ballerina class mapping the `org.openqa.selenium.By` Java class. - # - # + obj - The `handle` value containing the Java reference of the object. - public isolated function init(handle obj) { - self.jObj = obj; - } - - # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.By` Java class. - # - # + return - The `string` form of the Java object instance. - public isolated function toString() returns string { - return java:toString(self.jObj) ?: ""; - } - - # The function that maps to the `equals` method of `org.openqa.selenium.By`. - # - # + o - The `javalang:Object` value required to map with the Java method parameter. - # + return - The `boolean` value returning from the Java mapping. - public isolated function 'equals(javalang:Object o) returns boolean { - return org_openqa_selenium_By_equals(self.jObj, o.jObj); - } - - # The function that maps to the `findElement` method of `org.openqa.selenium.By`. - # - # + context - The `SearchContext` value required to map with the Java method parameter. - # + return - The `WebElement` value returning from the Java mapping. - public isolated function findElement(SearchContext context) returns WebElement { - handle externalObj = org_openqa_selenium_By_findElement(self.jObj, context.jObj); - WebElement newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `findElements` method of `org.openqa.selenium.By`. - # - # + context - The `SearchContext` value required to map with the Java method parameter. - # + return - The `javautil:List` value returning from the Java mapping. - public isolated function findElements(SearchContext context) returns javautil:List { - handle externalObj = org_openqa_selenium_By_findElements(self.jObj, context.jObj); - javautil:List newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getClass` method of `org.openqa.selenium.By`. - # - # + return - The `javalang:Class` value returning from the Java mapping. - public isolated function getClass() returns javalang:Class { - handle externalObj = org_openqa_selenium_By_getClass(self.jObj); - javalang:Class newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `hashCode` method of `org.openqa.selenium.By`. - # - # + return - The `int` value returning from the Java mapping. - public isolated function hashCode() returns int { - return org_openqa_selenium_By_hashCode(self.jObj); - } - - # The function that maps to the `notify` method of `org.openqa.selenium.By`. - public isolated function notify() { - org_openqa_selenium_By_notify(self.jObj); - } - - # The function that maps to the `notifyAll` method of `org.openqa.selenium.By`. - public isolated function notifyAll() { - org_openqa_selenium_By_notifyAll(self.jObj); - } - - # The function that maps to the `wait` method of `org.openqa.selenium.By`. - # - # + return - The `javalang:InterruptedException` value returning from the Java mapping. - public isolated function 'wait() returns javalang:InterruptedException? { - error|() externalObj = org_openqa_selenium_By_wait(self.jObj); - if (externalObj is error) { - javalang:InterruptedException e = error javalang:InterruptedException(javalang:INTERRUPTEDEXCEPTION, externalObj, message = externalObj.message()); - return e; - } - } - - # The function that maps to the `wait` method of `org.openqa.selenium.By`. - # - # + arg0 - The `int` value required to map with the Java method parameter. - # + return - The `javalang:InterruptedException` value returning from the Java mapping. - public isolated function wait2(int arg0) returns javalang:InterruptedException? { - error|() externalObj = org_openqa_selenium_By_wait2(self.jObj, arg0); - if (externalObj is error) { - javalang:InterruptedException e = error javalang:InterruptedException(javalang:INTERRUPTEDEXCEPTION, externalObj, message = externalObj.message()); - return e; - } - } - - # The function that maps to the `wait` method of `org.openqa.selenium.By`. - # - # + arg0 - The `int` value required to map with the Java method parameter. - # + arg1 - The `int` value required to map with the Java method parameter. - # + return - The `javalang:InterruptedException` value returning from the Java mapping. - public isolated function wait3(int arg0, int arg1) returns javalang:InterruptedException? { - error|() externalObj = org_openqa_selenium_By_wait3(self.jObj, arg0, arg1); - if (externalObj is error) { - javalang:InterruptedException e = error javalang:InterruptedException(javalang:INTERRUPTEDEXCEPTION, externalObj, message = externalObj.message()); - return e; - } - } - -} - -# The function that maps to the `className` method of `org.openqa.selenium.By`. -# -# + className - The `string` value required to map with the Java method parameter. -# + return - The `By` value returning from the Java mapping. -public isolated function By_className(string className) returns By { - handle externalObj = org_openqa_selenium_By_className(java:fromString(className)); - By newObj = new (externalObj); - return newObj; -} - -# The function that maps to the `cssSelector` method of `org.openqa.selenium.By`. -# -# + cssSelector - The `string` value required to map with the Java method parameter. -# + return - The `By` value returning from the Java mapping. -public isolated function By_cssSelector(string cssSelector) returns By { - handle externalObj = org_openqa_selenium_By_cssSelector(java:fromString(cssSelector)); - By newObj = new (externalObj); - return newObj; -} - -# The function that maps to the `id` method of `org.openqa.selenium.By`. -# -# + id - The `string` value required to map with the Java method parameter. -# + return - The `By` value returning from the Java mapping. -public isolated function By_id(string id) returns By { - handle externalObj = org_openqa_selenium_By_id(java:fromString(id)); - By newObj = new (externalObj); - return newObj; -} - -# The function that maps to the `linkText` method of `org.openqa.selenium.By`. -# -# + linkText - The `string` value required to map with the Java method parameter. -# + return - The `By` value returning from the Java mapping. -public isolated function By_linkText(string linkText) returns By { - handle externalObj = org_openqa_selenium_By_linkText(java:fromString(linkText)); - By newObj = new (externalObj); - return newObj; -} - -# The function that maps to the `name` method of `org.openqa.selenium.By`. -# -# + name - The `string` value required to map with the Java method parameter. -# + return - The `By` value returning from the Java mapping. -public isolated function By_name(string name) returns By { - handle externalObj = org_openqa_selenium_By_name(java:fromString(name)); - By newObj = new (externalObj); - return newObj; -} - -# The function that maps to the `partialLinkText` method of `org.openqa.selenium.By`. -# -# + partialLinkText - The `string` value required to map with the Java method parameter. -# + return - The `By` value returning from the Java mapping. -public isolated function By_partialLinkText(string partialLinkText) returns By { - handle externalObj = org_openqa_selenium_By_partialLinkText(java:fromString(partialLinkText)); - By newObj = new (externalObj); - return newObj; -} - -# The function that maps to the `tagName` method of `org.openqa.selenium.By`. -# -# + tagName - The `string` value required to map with the Java method parameter. -# + return - The `By` value returning from the Java mapping. -public isolated function By_tagName(string tagName) returns By { - handle externalObj = org_openqa_selenium_By_tagName(java:fromString(tagName)); - By newObj = new (externalObj); - return newObj; -} - -# The function that maps to the `xpath` method of `org.openqa.selenium.By`. -# -# + xpathExpression - The `string` value required to map with the Java method parameter. -# + return - The `By` value returning from the Java mapping. -public isolated function By_xpath(string xpathExpression) returns By { - handle externalObj = org_openqa_selenium_By_xpath(java:fromString(xpathExpression)); - By newObj = new (externalObj); - return newObj; -} - -isolated function org_openqa_selenium_By_className(handle className) returns handle = @java:Method { - name: "className", - 'class: "org.openqa.selenium.By", - paramTypes: ["java.lang.String"] -} external; - -isolated function org_openqa_selenium_By_cssSelector(handle cssSelector) returns handle = @java:Method { - name: "cssSelector", - 'class: "org.openqa.selenium.By", - paramTypes: ["java.lang.String"] -} external; - -isolated function org_openqa_selenium_By_equals(handle receiver, handle o) returns boolean = @java:Method { - name: "equals", - 'class: "org.openqa.selenium.By", - paramTypes: ["java.lang.Object"] -} external; - -isolated function org_openqa_selenium_By_findElement(handle receiver, handle context) returns handle = @java:Method { - name: "findElement", - 'class: "org.openqa.selenium.By", - paramTypes: ["org.openqa.selenium.SearchContext"] -} external; - -isolated function org_openqa_selenium_By_findElements(handle receiver, handle context) returns handle = @java:Method { - name: "findElements", - 'class: "org.openqa.selenium.By", - paramTypes: ["org.openqa.selenium.SearchContext"] -} external; - -isolated function org_openqa_selenium_By_getClass(handle receiver) returns handle = @java:Method { - name: "getClass", - 'class: "org.openqa.selenium.By", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_By_hashCode(handle receiver) returns int = @java:Method { - name: "hashCode", - 'class: "org.openqa.selenium.By", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_By_id(handle id) returns handle = @java:Method { - name: "id", - 'class: "org.openqa.selenium.By", - paramTypes: ["java.lang.String"] -} external; - -isolated function org_openqa_selenium_By_linkText(handle linkText) returns handle = @java:Method { - name: "linkText", - 'class: "org.openqa.selenium.By", - paramTypes: ["java.lang.String"] -} external; - -isolated function org_openqa_selenium_By_name(handle name) returns handle = @java:Method { - name: "name", - 'class: "org.openqa.selenium.By", - paramTypes: ["java.lang.String"] -} external; - -isolated function org_openqa_selenium_By_notify(handle receiver) = @java:Method { - name: "notify", - 'class: "org.openqa.selenium.By", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_By_notifyAll(handle receiver) = @java:Method { - name: "notifyAll", - 'class: "org.openqa.selenium.By", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_By_partialLinkText(handle partialLinkText) returns handle = @java:Method { - name: "partialLinkText", - 'class: "org.openqa.selenium.By", - paramTypes: ["java.lang.String"] -} external; - -isolated function org_openqa_selenium_By_tagName(handle tagName) returns handle = @java:Method { - name: "tagName", - 'class: "org.openqa.selenium.By", - paramTypes: ["java.lang.String"] -} external; - -isolated function org_openqa_selenium_By_wait(handle receiver) returns error? = @java:Method { - name: "wait", - 'class: "org.openqa.selenium.By", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_By_wait2(handle receiver, int arg0) returns error? = @java:Method { - name: "wait", - 'class: "org.openqa.selenium.By", - paramTypes: ["long"] -} external; - -isolated function org_openqa_selenium_By_wait3(handle receiver, int arg0, int arg1) returns error? = @java:Method { - name: "wait", - 'class: "org.openqa.selenium.By", - paramTypes: ["long", "int"] -} external; - -isolated function org_openqa_selenium_By_xpath(handle xpathExpression) returns handle = @java:Method { - name: "xpath", - 'class: "org.openqa.selenium.By", - paramTypes: ["java.lang.String"] -} external; - diff --git a/ballerina/modules/web/Capabilities.bal b/ballerina/modules/web/Capabilities.bal deleted file mode 100644 index 8dcc1b4..0000000 --- a/ballerina/modules/web/Capabilities.bal +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). -// -// WSO2 LLC. licenses this file to you under the Apache License, -// Version 2.0 (the "License"); you may not use this file except -// in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -import ballerina/jballerina.java; - -# Ballerina class mapping for the Java `org.openqa.selenium.Capabilities` interface. -@java:Binding {'class: "org.openqa.selenium.Capabilities"} -public distinct class Capabilities { - - *java:JObject; - - # The `handle` field that stores the reference to the `org.openqa.selenium.Capabilities` object. - public handle jObj; - - # The init function of the Ballerina class mapping the `org.openqa.selenium.Capabilities` Java interface. - # - # + obj - The `handle` value containing the Java reference of the object. - public isolated function init(handle obj) { - self.jObj = obj; - } - - # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.Capabilities` Java interface. - # - # + return - The `string` form of the Java object instance. - public isolated function toString() returns string { - return java:toString(self.jObj) ?: ""; - } - -} - diff --git a/ballerina/modules/web/Dimension.bal b/ballerina/modules/web/Dimension.bal deleted file mode 100644 index 0c78a45..0000000 --- a/ballerina/modules/web/Dimension.bal +++ /dev/null @@ -1,206 +0,0 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). -// -// WSO2 LLC. licenses this file to you under the Apache License, -// Version 2.0 (the "License"); you may not use this file except -// in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -import selenium.java.lang as javalang; - -import ballerina/jballerina.java; - -# Ballerina class mapping for the Java `org.openqa.selenium.Dimension` class. -@java:Binding {'class: "org.openqa.selenium.Dimension"} -public distinct class Dimension { - - *java:JObject; - *javalang:Object; - - # The `handle` field that stores the reference to the `org.openqa.selenium.Dimension` object. - public handle jObj; - - # The init function of the Ballerina class mapping the `org.openqa.selenium.Dimension` Java class. - # - # + obj - The `handle` value containing the Java reference of the object. - public isolated function init(handle obj) { - self.jObj = obj; - } - - # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.Dimension` Java class. - # - # + return - The `string` form of the Java object instance. - public isolated function toString() returns string { - return java:toString(self.jObj) ?: ""; - } - - # The function that maps to the `equals` method of `org.openqa.selenium.Dimension`. - # - # + o - The `javalang:Object` value required to map with the Java method parameter. - # + return - The `boolean` value returning from the Java mapping. - public isolated function 'equals(javalang:Object o) returns boolean { - return org_openqa_selenium_Dimension_equals(self.jObj, o.jObj); - } - - # The function that maps to the `getClass` method of `org.openqa.selenium.Dimension`. - # - # + return - The `javalang:Class` value returning from the Java mapping. - public isolated function getClass() returns javalang:Class { - handle externalObj = org_openqa_selenium_Dimension_getClass(self.jObj); - javalang:Class newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getHeight` method of `org.openqa.selenium.Dimension`. - # - # + return - The `int` value returning from the Java mapping. - public isolated function getHeight() returns int { - return org_openqa_selenium_Dimension_getHeight(self.jObj); - } - - # The function that maps to the `getWidth` method of `org.openqa.selenium.Dimension`. - # - # + return - The `int` value returning from the Java mapping. - public isolated function getWidth() returns int { - return org_openqa_selenium_Dimension_getWidth(self.jObj); - } - - # The function that maps to the `hashCode` method of `org.openqa.selenium.Dimension`. - # - # + return - The `int` value returning from the Java mapping. - public isolated function hashCode() returns int { - return org_openqa_selenium_Dimension_hashCode(self.jObj); - } - - # The function that maps to the `notify` method of `org.openqa.selenium.Dimension`. - public isolated function notify() { - org_openqa_selenium_Dimension_notify(self.jObj); - } - - # The function that maps to the `notifyAll` method of `org.openqa.selenium.Dimension`. - public isolated function notifyAll() { - org_openqa_selenium_Dimension_notifyAll(self.jObj); - } - - # The function that maps to the `wait` method of `org.openqa.selenium.Dimension`. - # - # + return - The `javalang:InterruptedException` value returning from the Java mapping. - public isolated function 'wait() returns javalang:InterruptedException? { - error|() externalObj = org_openqa_selenium_Dimension_wait(self.jObj); - if (externalObj is error) { - javalang:InterruptedException e = error javalang:InterruptedException(javalang:INTERRUPTEDEXCEPTION, externalObj, message = externalObj.message()); - return e; - } - } - - # The function that maps to the `wait` method of `org.openqa.selenium.Dimension`. - # - # + arg0 - The `int` value required to map with the Java method parameter. - # + return - The `javalang:InterruptedException` value returning from the Java mapping. - public isolated function wait2(int arg0) returns javalang:InterruptedException? { - error|() externalObj = org_openqa_selenium_Dimension_wait2(self.jObj, arg0); - if (externalObj is error) { - javalang:InterruptedException e = error javalang:InterruptedException(javalang:INTERRUPTEDEXCEPTION, externalObj, message = externalObj.message()); - return e; - } - } - - # The function that maps to the `wait` method of `org.openqa.selenium.Dimension`. - # - # + arg0 - The `int` value required to map with the Java method parameter. - # + arg1 - The `int` value required to map with the Java method parameter. - # + return - The `javalang:InterruptedException` value returning from the Java mapping. - public isolated function wait3(int arg0, int arg1) returns javalang:InterruptedException? { - error|() externalObj = org_openqa_selenium_Dimension_wait3(self.jObj, arg0, arg1); - if (externalObj is error) { - javalang:InterruptedException e = error javalang:InterruptedException(javalang:INTERRUPTEDEXCEPTION, externalObj, message = externalObj.message()); - return e; - } - } - -} - -# The constructor function to generate an object of `org.openqa.selenium.Dimension`. -# -# + width - The `int` value required to map with the Java constructor parameter. -# + height - The `int` value required to map with the Java constructor parameter. -# + return - The new `Dimension` class generated. -public isolated function newDimension1(int width, int height) returns Dimension { - handle externalObj = org_openqa_selenium_Dimension_newDimension1(width, height); - Dimension newObj = new (externalObj); - return newObj; -} - -isolated function org_openqa_selenium_Dimension_equals(handle receiver, handle o) returns boolean = @java:Method { - name: "equals", - 'class: "org.openqa.selenium.Dimension", - paramTypes: ["java.lang.Object"] -} external; - -isolated function org_openqa_selenium_Dimension_getClass(handle receiver) returns handle = @java:Method { - name: "getClass", - 'class: "org.openqa.selenium.Dimension", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_Dimension_getHeight(handle receiver) returns int = @java:Method { - name: "getHeight", - 'class: "org.openqa.selenium.Dimension", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_Dimension_getWidth(handle receiver) returns int = @java:Method { - name: "getWidth", - 'class: "org.openqa.selenium.Dimension", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_Dimension_hashCode(handle receiver) returns int = @java:Method { - name: "hashCode", - 'class: "org.openqa.selenium.Dimension", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_Dimension_notify(handle receiver) = @java:Method { - name: "notify", - 'class: "org.openqa.selenium.Dimension", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_Dimension_notifyAll(handle receiver) = @java:Method { - name: "notifyAll", - 'class: "org.openqa.selenium.Dimension", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_Dimension_wait(handle receiver) returns error? = @java:Method { - name: "wait", - 'class: "org.openqa.selenium.Dimension", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_Dimension_wait2(handle receiver, int arg0) returns error? = @java:Method { - name: "wait", - 'class: "org.openqa.selenium.Dimension", - paramTypes: ["long"] -} external; - -isolated function org_openqa_selenium_Dimension_wait3(handle receiver, int arg0, int arg1) returns error? = @java:Method { - name: "wait", - 'class: "org.openqa.selenium.Dimension", - paramTypes: ["long", "int"] -} external; - -isolated function org_openqa_selenium_Dimension_newDimension1(int width, int height) returns handle = @java:Constructor { - 'class: "org.openqa.selenium.Dimension", - paramTypes: ["int", "int"] -} external; - diff --git a/ballerina/modules/web/Navigation.bal b/ballerina/modules/web/Navigation.bal deleted file mode 100644 index 4ecd77e..0000000 --- a/ballerina/modules/web/Navigation.bal +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). -// -// WSO2 LLC. licenses this file to you under the Apache License, -// Version 2.0 (the "License"); you may not use this file except -// in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -import ballerina/jballerina.java; - -# Ballerina class mapping for the Java `org.openqa.selenium.WebDriver$Navigation` interface. -@java:Binding {'class: "org.openqa.selenium.WebDriver$Navigation"} -public distinct class Navigation { - - *java:JObject; - - # The `handle` field that stores the reference to the `org.openqa.selenium.WebDriver$Navigation` object. - public handle jObj; - - # The init function of the Ballerina class mapping the `org.openqa.selenium.WebDriver$Navigation` Java interface. - # - # + obj - The `handle` value containing the Java reference of the object. - public isolated function init(handle obj) { - self.jObj = obj; - } - - # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.WebDriver$Navigation` Java interface. - # - # + return - The `string` form of the Java object instance. - public isolated function toString() returns string { - return java:toString(self.jObj) ?: ""; - } - -} - diff --git a/ballerina/modules/web/Options.bal b/ballerina/modules/web/Options.bal deleted file mode 100644 index b200a2b..0000000 --- a/ballerina/modules/web/Options.bal +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). -// -// WSO2 LLC. licenses this file to you under the Apache License, -// Version 2.0 (the "License"); you may not use this file except -// in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -import ballerina/jballerina.java; - -# Ballerina class mapping for the Java `org.openqa.selenium.WebDriver$Options` interface. -@java:Binding {'class: "org.openqa.selenium.WebDriver$Options"} -public distinct class Options { - - *java:JObject; - - # The `handle` field that stores the reference to the `org.openqa.selenium.WebDriver$Options` object. - public handle jObj; - - # The init function of the Ballerina class mapping the `org.openqa.selenium.WebDriver$Options` Java interface. - # - # + obj - The `handle` value containing the Java reference of the object. - public isolated function init(handle obj) { - self.jObj = obj; - } - - # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.WebDriver$Options` Java interface. - # - # + return - The `string` form of the Java object instance. - public isolated function toString() returns string { - return java:toString(self.jObj) ?: ""; - } - -} - diff --git a/ballerina/modules/web/OutputType.bal b/ballerina/modules/web/OutputType.bal deleted file mode 100644 index a541cf5..0000000 --- a/ballerina/modules/web/OutputType.bal +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). -// -// WSO2 LLC. licenses this file to you under the Apache License, -// Version 2.0 (the "License"); you may not use this file except -// in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -import ballerina/jballerina.java; - -# Ballerina class mapping for the Java `org.openqa.selenium.OutputType` interface. -@java:Binding {'class: "org.openqa.selenium.OutputType"} -public distinct class OutputType { - - *java:JObject; - - # The `handle` field that stores the reference to the `org.openqa.selenium.OutputType` object. - public handle jObj; - - # The init function of the Ballerina class mapping the `org.openqa.selenium.OutputType` Java interface. - # - # + obj - The `handle` value containing the Java reference of the object. - public isolated function init(handle obj) { - self.jObj = obj; - } - - # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.OutputType` Java interface. - # - # + return - The `string` form of the Java object instance. - public isolated function toString() returns string { - return java:toString(self.jObj) ?: ""; - } - -} - diff --git a/ballerina/modules/web/Pdf.bal b/ballerina/modules/web/Pdf.bal deleted file mode 100644 index 395e007..0000000 --- a/ballerina/modules/web/Pdf.bal +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). -// -// WSO2 LLC. licenses this file to you under the Apache License, -// Version 2.0 (the "License"); you may not use this file except -// in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -import ballerina/jballerina.java; - -# Ballerina class mapping for the Java `org.openqa.selenium.Pdf` class. -@java:Binding {'class: "org.openqa.selenium.Pdf"} -public distinct class Pdf { - - *java:JObject; - - # The `handle` field that stores the reference to the `org.openqa.selenium.Pdf` object. - public handle jObj; - - # The init function of the Ballerina class mapping the `org.openqa.selenium.Pdf` Java class. - # - # + obj - The `handle` value containing the Java reference of the object. - public isolated function init(handle obj) { - self.jObj = obj; - } - - # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.Pdf` Java class. - # - # + return - The `string` form of the Java object instance. - public isolated function toString() returns string { - return java:toString(self.jObj) ?: ""; - } - -} - diff --git a/ballerina/modules/web/Point.bal b/ballerina/modules/web/Point.bal deleted file mode 100644 index 7aedfab..0000000 --- a/ballerina/modules/web/Point.bal +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). -// -// WSO2 LLC. licenses this file to you under the Apache License, -// Version 2.0 (the "License"); you may not use this file except -// in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -import ballerina/jballerina.java; - -# Ballerina class mapping for the Java `org.openqa.selenium.Point` class. -@java:Binding {'class: "org.openqa.selenium.Point"} -public distinct class Point { - - *java:JObject; - - # The `handle` field that stores the reference to the `org.openqa.selenium.Point` object. - public handle jObj; - - # The init function of the Ballerina class mapping the `org.openqa.selenium.Point` Java class. - # - # + obj - The `handle` value containing the Java reference of the object. - public isolated function init(handle obj) { - self.jObj = obj; - } - - # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.Point` Java class. - # - # + return - The `string` form of the Java object instance. - public isolated function toString() returns string { - return java:toString(self.jObj) ?: ""; - } - -} - diff --git a/ballerina/modules/web/Rectangle.bal b/ballerina/modules/web/Rectangle.bal deleted file mode 100644 index 30b4f23..0000000 --- a/ballerina/modules/web/Rectangle.bal +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). -// -// WSO2 LLC. licenses this file to you under the Apache License, -// Version 2.0 (the "License"); you may not use this file except -// in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -import ballerina/jballerina.java; - -# Ballerina class mapping for the Java `org.openqa.selenium.Rectangle` class. -@java:Binding {'class: "org.openqa.selenium.Rectangle"} -public distinct class Rectangle { - - *java:JObject; - - # The `handle` field that stores the reference to the `org.openqa.selenium.Rectangle` object. - public handle jObj; - - # The init function of the Ballerina class mapping the `org.openqa.selenium.Rectangle` Java class. - # - # + obj - The `handle` value containing the Java reference of the object. - public isolated function init(handle obj) { - self.jObj = obj; - } - - # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.Rectangle` Java class. - # - # + return - The `string` form of the Java object instance. - public isolated function toString() returns string { - return java:toString(self.jObj) ?: ""; - } - -} - diff --git a/ballerina/modules/web/ScriptKey.bal b/ballerina/modules/web/ScriptKey.bal deleted file mode 100644 index 89c18f5..0000000 --- a/ballerina/modules/web/ScriptKey.bal +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). -// -// WSO2 LLC. licenses this file to you under the Apache License, -// Version 2.0 (the "License"); you may not use this file except -// in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -import ballerina/jballerina.java; - -# Ballerina class mapping for the Java `org.openqa.selenium.ScriptKey` class. -@java:Binding {'class: "org.openqa.selenium.ScriptKey"} -public distinct class ScriptKey { - - *java:JObject; - - # The `handle` field that stores the reference to the `org.openqa.selenium.ScriptKey` object. - public handle jObj; - - # The init function of the Ballerina class mapping the `org.openqa.selenium.ScriptKey` Java class. - # - # + obj - The `handle` value containing the Java reference of the object. - public isolated function init(handle obj) { - self.jObj = obj; - } - - # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.ScriptKey` Java class. - # - # + return - The `string` form of the Java object instance. - public isolated function toString() returns string { - return java:toString(self.jObj) ?: ""; - } - -} - diff --git a/ballerina/modules/web/SearchContext.bal b/ballerina/modules/web/SearchContext.bal deleted file mode 100644 index ab93dfd..0000000 --- a/ballerina/modules/web/SearchContext.bal +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). -// -// WSO2 LLC. licenses this file to you under the Apache License, -// Version 2.0 (the "License"); you may not use this file except -// in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -import ballerina/jballerina.java; - -# Ballerina class mapping for the Java `org.openqa.selenium.SearchContext` interface. -@java:Binding {'class: "org.openqa.selenium.SearchContext"} -public distinct class SearchContext { - - *java:JObject; - - # The `handle` field that stores the reference to the `org.openqa.selenium.SearchContext` object. - public handle jObj; - - # The init function of the Ballerina class mapping the `org.openqa.selenium.SearchContext` Java interface. - # - # + obj - The `handle` value containing the Java reference of the object. - public isolated function init(handle obj) { - self.jObj = obj; - } - - # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.SearchContext` Java interface. - # - # + return - The `string` form of the Java object instance. - public isolated function toString() returns string { - return java:toString(self.jObj) ?: ""; - } - -} - diff --git a/ballerina/modules/web/TargetLocator.bal b/ballerina/modules/web/TargetLocator.bal deleted file mode 100644 index ed951d6..0000000 --- a/ballerina/modules/web/TargetLocator.bal +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). -// -// WSO2 LLC. licenses this file to you under the Apache License, -// Version 2.0 (the "License"); you may not use this file except -// in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -import ballerina/jballerina.java; - -# Ballerina class mapping for the Java `org.openqa.selenium.WebDriver$TargetLocator` interface. -@java:Binding {'class: "org.openqa.selenium.WebDriver$TargetLocator"} -public distinct class TargetLocator { - - *java:JObject; - - # The `handle` field that stores the reference to the `org.openqa.selenium.WebDriver$TargetLocator` object. - public handle jObj; - - # The init function of the Ballerina class mapping the `org.openqa.selenium.WebDriver$TargetLocator` Java interface. - # - # + obj - The `handle` value containing the Java reference of the object. - public isolated function init(handle obj) { - self.jObj = obj; - } - - # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.WebDriver$TargetLocator` Java interface. - # - # + return - The `string` form of the Java object instance. - public isolated function toString() returns string { - return java:toString(self.jObj) ?: ""; - } - -} - diff --git a/ballerina/modules/web/WebDriver.bal b/ballerina/modules/web/WebDriver.bal deleted file mode 100644 index 6f612a7..0000000 --- a/ballerina/modules/web/WebDriver.bal +++ /dev/null @@ -1,224 +0,0 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). -// -// WSO2 LLC. licenses this file to you under the Apache License, -// Version 2.0 (the "License"); you may not use this file except -// in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -import selenium.java.util as javautil; - -import ballerina/jballerina.java; - -# Ballerina class mapping for the Java `org.openqa.selenium.WebDriver` interface. -@java:Binding {'class: "org.openqa.selenium.WebDriver"} -public distinct class WebDriver { - - *java:JObject; - - # The `handle` field that stores the reference to the `org.openqa.selenium.WebDriver` object. - public handle jObj; - - # The init function of the Ballerina class mapping the `org.openqa.selenium.WebDriver` Java interface. - # - # + obj - The `handle` value containing the Java reference of the object. - public isolated function init(handle obj) { - self.jObj = obj; - } - - # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.WebDriver` Java interface. - # - # + return - The `string` form of the Java object instance. - public isolated function toString() returns string { - return java:toString(self.jObj) ?: ""; - } - - # The function that maps to the `close` method of `org.openqa.selenium.WebDriver`. - public isolated function close() { - org_openqa_selenium_WebDriver_close(self.jObj); - } - - # The function that maps to the `findElement` method of `org.openqa.selenium.WebDriver`. - # - # + arg0 - The `By` value required to map with the Java method parameter. - # + return - The `WebElement` value returning from the Java mapping. - public isolated function findElement(By arg0) returns WebElement { - handle externalObj = org_openqa_selenium_WebDriver_findElement(self.jObj, arg0.jObj); - WebElement newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `findElements` method of `org.openqa.selenium.WebDriver`. - # - # + arg0 - The `By` value required to map with the Java method parameter. - # + return - The `javautil:List` value returning from the Java mapping. - public isolated function findElements(By arg0) returns javautil:List { - handle externalObj = org_openqa_selenium_WebDriver_findElements(self.jObj, arg0.jObj); - javautil:List newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `get` method of `org.openqa.selenium.WebDriver`. - # - # + url - The `string` value required to map with the Java method parameter. - public isolated function get(string url) { - org_openqa_selenium_WebDriver_get(self.jObj, java:fromString(url)); - } - - # The function that maps to the `getCurrentUrl` method of `org.openqa.selenium.WebDriver`. - # - # + return - The `string` value returning from the Java mapping. - public isolated function getCurrentUrl() returns string { - return java:toString(org_openqa_selenium_WebDriver_getCurrentUrl(self.jObj)) ?: ""; - } - - # The function that maps to the `getPageSource` method of `org.openqa.selenium.WebDriver`. - # - # + return - The `string` value returning from the Java mapping. - public isolated function getPageSource() returns string { - return java:toString(org_openqa_selenium_WebDriver_getPageSource(self.jObj)) ?: ""; - } - - # The function that maps to the `getTitle` method of `org.openqa.selenium.WebDriver`. - # - # + return - The `string` value returning from the Java mapping. - public isolated function getTitle() returns string { - return java:toString(org_openqa_selenium_WebDriver_getTitle(self.jObj)) ?: ""; - } - - # The function that maps to the `getWindowHandle` method of `org.openqa.selenium.WebDriver`. - # - # + return - The `string` value returning from the Java mapping. - public isolated function getWindowHandle() returns string { - return java:toString(org_openqa_selenium_WebDriver_getWindowHandle(self.jObj)) ?: ""; - } - - # The function that maps to the `getWindowHandles` method of `org.openqa.selenium.WebDriver`. - # - # + return - The `javautil:Set` value returning from the Java mapping. - public isolated function getWindowHandles() returns javautil:Set { - handle externalObj = org_openqa_selenium_WebDriver_getWindowHandles(self.jObj); - javautil:Set newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `manage` method of `org.openqa.selenium.WebDriver`. - # - # + return - The `Options` value returning from the Java mapping. - public isolated function manage() returns Options { - handle externalObj = org_openqa_selenium_WebDriver_manage(self.jObj); - Options newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `navigate` method of `org.openqa.selenium.WebDriver`. - # - # + return - The `Navigation` value returning from the Java mapping. - public isolated function navigate() returns Navigation { - handle externalObj = org_openqa_selenium_WebDriver_navigate(self.jObj); - Navigation newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `quit` method of `org.openqa.selenium.WebDriver`. - public isolated function quit() { - org_openqa_selenium_WebDriver_quit(self.jObj); - } - - # The function that maps to the `switchTo` method of `org.openqa.selenium.WebDriver`. - # - # + return - The `TargetLocator` value returning from the Java mapping. - public isolated function switchTo() returns TargetLocator { - handle externalObj = org_openqa_selenium_WebDriver_switchTo(self.jObj); - TargetLocator newObj = new (externalObj); - return newObj; - } - -} - -isolated function org_openqa_selenium_WebDriver_close(handle receiver) = @java:Method { - name: "close", - 'class: "org.openqa.selenium.WebDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_WebDriver_findElement(handle receiver, handle arg0) returns handle = @java:Method { - name: "findElement", - 'class: "org.openqa.selenium.WebDriver", - paramTypes: ["org.openqa.selenium.By"] -} external; - -isolated function org_openqa_selenium_WebDriver_findElements(handle receiver, handle arg0) returns handle = @java:Method { - name: "findElements", - 'class: "org.openqa.selenium.WebDriver", - paramTypes: ["org.openqa.selenium.By"] -} external; - -isolated function org_openqa_selenium_WebDriver_get(handle receiver, handle url) = @java:Method { - name: "get", - 'class: "org.openqa.selenium.WebDriver", - paramTypes: ["java.lang.String"] -} external; - -isolated function org_openqa_selenium_WebDriver_getCurrentUrl(handle receiver) returns handle = @java:Method { - name: "getCurrentUrl", - 'class: "org.openqa.selenium.WebDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_WebDriver_getPageSource(handle receiver) returns handle = @java:Method { - name: "getPageSource", - 'class: "org.openqa.selenium.WebDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_WebDriver_getTitle(handle receiver) returns handle = @java:Method { - name: "getTitle", - 'class: "org.openqa.selenium.WebDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_WebDriver_getWindowHandle(handle receiver) returns handle = @java:Method { - name: "getWindowHandle", - 'class: "org.openqa.selenium.WebDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_WebDriver_getWindowHandles(handle receiver) returns handle = @java:Method { - name: "getWindowHandles", - 'class: "org.openqa.selenium.WebDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_WebDriver_manage(handle receiver) returns handle = @java:Method { - name: "manage", - 'class: "org.openqa.selenium.WebDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_WebDriver_navigate(handle receiver) returns handle = @java:Method { - name: "navigate", - 'class: "org.openqa.selenium.WebDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_WebDriver_quit(handle receiver) = @java:Method { - name: "quit", - 'class: "org.openqa.selenium.WebDriver", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_WebDriver_switchTo(handle receiver) returns handle = @java:Method { - name: "switchTo", - 'class: "org.openqa.selenium.WebDriver", - paramTypes: [] -} external; - diff --git a/ballerina/modules/web/WebElement.bal b/ballerina/modules/web/WebElement.bal deleted file mode 100644 index 14559de..0000000 --- a/ballerina/modules/web/WebElement.bal +++ /dev/null @@ -1,364 +0,0 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). -// -// WSO2 LLC. licenses this file to you under the Apache License, -// Version 2.0 (the "License"); you may not use this file except -// in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -import selenium.java.lang as javalang; -import selenium.java.util as javautil; - -import ballerina/jballerina.java; -import ballerina/jballerina.java.arrays as jarrays; - -# Ballerina class mapping for the Java `org.openqa.selenium.WebElement` interface. -@java:Binding {'class: "org.openqa.selenium.WebElement"} -public distinct class WebElement { - - *java:JObject; - - # The `handle` field that stores the reference to the `org.openqa.selenium.WebElement` object. - public handle jObj; - - # The init function of the Ballerina class mapping the `org.openqa.selenium.WebElement` Java interface. - # - # + obj - The `handle` value containing the Java reference of the object. - public isolated function init(handle obj) { - self.jObj = obj; - } - - # The function to retrieve the string representation of the Ballerina class mapping the `org.openqa.selenium.WebElement` Java interface. - # - # + return - The `string` form of the Java object instance. - public isolated function toString() returns string { - return java:toString(self.jObj) ?: ""; - } - - # The function that maps to the `clear` method of `org.openqa.selenium.WebElement`. - public isolated function clear() { - org_openqa_selenium_WebElement_clear(self.jObj); - } - - # The function that maps to the `click` method of `org.openqa.selenium.WebElement`. - public isolated function click() { - org_openqa_selenium_WebElement_click(self.jObj); - } - - # The function that maps to the `findElement` method of `org.openqa.selenium.WebElement`. - # - # + arg0 - The `By` value required to map with the Java method parameter. - # + return - The `WebElement` value returning from the Java mapping. - public isolated function findElement(By arg0) returns WebElement { - handle externalObj = org_openqa_selenium_WebElement_findElement(self.jObj, arg0.jObj); - WebElement newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `findElements` method of `org.openqa.selenium.WebElement`. - # - # + arg0 - The `By` value required to map with the Java method parameter. - # + return - The `javautil:List` value returning from the Java mapping. - public isolated function findElements(By arg0) returns javautil:List { - handle externalObj = org_openqa_selenium_WebElement_findElements(self.jObj, arg0.jObj); - javautil:List newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `findElements` method of `org.openqa.selenium.chrome.ChromeDriver`. - # - # + locator - The `orgopenqaselenium:By` value required to map with the Java method parameter. - # + return - The `orgopenqaselenium:WebElement[]` value returning from the Java mapping. - public isolated function findAllElements(By locator) returns WebElement[]|error { - handle externalObj = org_openqa_selenium_WebElement_findElements(self.jObj, locator.jObj); - javautil:List newObj = new (externalObj); - WebElement[] elements = []; - javalang:Object[] arr = check newObj.toArray(); - foreach var item in arr { - elements.push(check java:cast(item, WebElement)); - } - return elements; - } - - # The function that maps to the `getAccessibleName` method of `org.openqa.selenium.WebElement`. - # - # + return - The `string` value returning from the Java mapping. - public isolated function getAccessibleName() returns string { - return java:toString(org_openqa_selenium_WebElement_getAccessibleName(self.jObj)) ?: ""; - } - - # The function that maps to the `getAriaRole` method of `org.openqa.selenium.WebElement`. - # - # + return - The `string` value returning from the Java mapping. - public isolated function getAriaRole() returns string { - return java:toString(org_openqa_selenium_WebElement_getAriaRole(self.jObj)) ?: ""; - } - - # The function that maps to the `getAttribute` method of `org.openqa.selenium.WebElement`. - # - # + name - The `string` value required to map with the Java method parameter. - # + return - The `string` value returning from the Java mapping. - public isolated function getAttribute(string name) returns string { - return java:toString(org_openqa_selenium_WebElement_getAttribute(self.jObj, java:fromString(name))) ?: ""; - } - - # The function that maps to the `getCssValue` method of `org.openqa.selenium.WebElement`. - # - # + propertyName - The `string` value required to map with the Java method parameter. - # + return - The `string` value returning from the Java mapping. - public isolated function getCssValue(string propertyName) returns string { - return java:toString(org_openqa_selenium_WebElement_getCssValue(self.jObj, java:fromString(propertyName))) ?: ""; - } - - # The function that maps to the `getDomAttribute` method of `org.openqa.selenium.WebElement`. - # - # + name - The `string` value required to map with the Java method parameter. - # + return - The `string` value returning from the Java mapping. - public isolated function getDomAttribute(string name) returns string { - return java:toString(org_openqa_selenium_WebElement_getDomAttribute(self.jObj, java:fromString(name))) ?: ""; - } - - # The function that maps to the `getDomProperty` method of `org.openqa.selenium.WebElement`. - # - # + name - The `string` value required to map with the Java method parameter. - # + return - The `string` value returning from the Java mapping. - public isolated function getDomProperty(string name) returns string { - return java:toString(org_openqa_selenium_WebElement_getDomProperty(self.jObj, java:fromString(name))) ?: ""; - } - - # The function that maps to the `getLocation` method of `org.openqa.selenium.WebElement`. - # - # + return - The `Point` value returning from the Java mapping. - public isolated function getLocation() returns Point { - handle externalObj = org_openqa_selenium_WebElement_getLocation(self.jObj); - Point newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getRect` method of `org.openqa.selenium.WebElement`. - # - # + return - The `Rectangle` value returning from the Java mapping. - public isolated function getRect() returns Rectangle { - handle externalObj = org_openqa_selenium_WebElement_getRect(self.jObj); - Rectangle newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getScreenshotAs` method of `org.openqa.selenium.WebElement`. - # - # + target - The `OutputType` value required to map with the Java method parameter. - # + return - The `javalang:Object` value returning from the Java mapping. - public isolated function getScreenshotAs(OutputType target) returns javalang:Object { - handle externalObj = org_openqa_selenium_WebElement_getScreenshotAs(self.jObj, target.jObj); - javalang:Object newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getShadowRoot` method of `org.openqa.selenium.WebElement`. - # - # + return - The `SearchContext` value returning from the Java mapping. - public isolated function getShadowRoot() returns SearchContext { - handle externalObj = org_openqa_selenium_WebElement_getShadowRoot(self.jObj); - SearchContext newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getSize` method of `org.openqa.selenium.WebElement`. - # - # + return - The `Dimension` value returning from the Java mapping. - public isolated function getSize() returns Dimension { - handle externalObj = org_openqa_selenium_WebElement_getSize(self.jObj); - Dimension newObj = new (externalObj); - return newObj; - } - - # The function that maps to the `getTagName` method of `org.openqa.selenium.WebElement`. - # - # + return - The `string` value returning from the Java mapping. - public isolated function getTagName() returns string { - return java:toString(org_openqa_selenium_WebElement_getTagName(self.jObj)) ?: ""; - } - - # The function that maps to the `getText` method of `org.openqa.selenium.WebElement`. - # - # + return - The `string` value returning from the Java mapping. - public isolated function getText() returns string { - return java:toString(org_openqa_selenium_WebElement_getText(self.jObj)) ?: ""; - } - - # The function that maps to the `isDisplayed` method of `org.openqa.selenium.WebElement`. - # - # + return - The `boolean` value returning from the Java mapping. - public isolated function isDisplayed() returns boolean { - return org_openqa_selenium_WebElement_isDisplayed(self.jObj); - } - - # The function that maps to the `isEnabled` method of `org.openqa.selenium.WebElement`. - # - # + return - The `boolean` value returning from the Java mapping. - public isolated function isEnabled() returns boolean { - return org_openqa_selenium_WebElement_isEnabled(self.jObj); - } - - # The function that maps to the `isSelected` method of `org.openqa.selenium.WebElement`. - # - # + return - The `boolean` value returning from the Java mapping. - public isolated function isSelected() returns boolean { - return org_openqa_selenium_WebElement_isSelected(self.jObj); - } - - # The function that maps to the `sendKeys` method of `org.openqa.selenium.WebElement`. - # - # + keysToSend - The `javalang:CharSequence[]` value required to map with the Java method parameter. - # + return - The `error?` value returning from the Java mapping. - public isolated function sendKeys(string[] keysToSend) returns error? { - org_openqa_selenium_WebElement_sendKeys(self.jObj, check jarrays:toHandle(keysToSend, "java.lang.CharSequence")); - } - - # The function that maps to the `submit` method of `org.openqa.selenium.WebElement`. - public isolated function submit() { - org_openqa_selenium_WebElement_submit(self.jObj); - } - -} - -isolated function org_openqa_selenium_WebElement_clear(handle receiver) = @java:Method { - name: "clear", - 'class: "org.openqa.selenium.WebElement", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_WebElement_click(handle receiver) = @java:Method { - name: "click", - 'class: "org.openqa.selenium.WebElement", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_WebElement_findElement(handle receiver, handle arg0) returns handle = @java:Method { - name: "findElement", - 'class: "org.openqa.selenium.WebElement", - paramTypes: ["org.openqa.selenium.By"] -} external; - -isolated function org_openqa_selenium_WebElement_findElements(handle receiver, handle arg0) returns handle = @java:Method { - name: "findElements", - 'class: "org.openqa.selenium.WebElement", - paramTypes: ["org.openqa.selenium.By"] -} external; - -isolated function org_openqa_selenium_WebElement_getAccessibleName(handle receiver) returns handle = @java:Method { - name: "getAccessibleName", - 'class: "org.openqa.selenium.WebElement", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_WebElement_getAriaRole(handle receiver) returns handle = @java:Method { - name: "getAriaRole", - 'class: "org.openqa.selenium.WebElement", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_WebElement_getAttribute(handle receiver, handle name) returns handle = @java:Method { - name: "getAttribute", - 'class: "org.openqa.selenium.WebElement", - paramTypes: ["java.lang.String"] -} external; - -isolated function org_openqa_selenium_WebElement_getCssValue(handle receiver, handle propertyName) returns handle = @java:Method { - name: "getCssValue", - 'class: "org.openqa.selenium.WebElement", - paramTypes: ["java.lang.String"] -} external; - -isolated function org_openqa_selenium_WebElement_getDomAttribute(handle receiver, handle name) returns handle = @java:Method { - name: "getDomAttribute", - 'class: "org.openqa.selenium.WebElement", - paramTypes: ["java.lang.String"] -} external; - -isolated function org_openqa_selenium_WebElement_getDomProperty(handle receiver, handle name) returns handle = @java:Method { - name: "getDomProperty", - 'class: "org.openqa.selenium.WebElement", - paramTypes: ["java.lang.String"] -} external; - -isolated function org_openqa_selenium_WebElement_getLocation(handle receiver) returns handle = @java:Method { - name: "getLocation", - 'class: "org.openqa.selenium.WebElement", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_WebElement_getRect(handle receiver) returns handle = @java:Method { - name: "getRect", - 'class: "org.openqa.selenium.WebElement", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_WebElement_getScreenshotAs(handle receiver, handle target) returns handle = @java:Method { - name: "getScreenshotAs", - 'class: "org.openqa.selenium.WebElement", - paramTypes: ["org.openqa.selenium.OutputType"] -} external; - -isolated function org_openqa_selenium_WebElement_getShadowRoot(handle receiver) returns handle = @java:Method { - name: "getShadowRoot", - 'class: "org.openqa.selenium.WebElement", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_WebElement_getSize(handle receiver) returns handle = @java:Method { - name: "getSize", - 'class: "org.openqa.selenium.WebElement", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_WebElement_getTagName(handle receiver) returns handle = @java:Method { - name: "getTagName", - 'class: "org.openqa.selenium.WebElement", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_WebElement_getText(handle receiver) returns handle = @java:Method { - name: "getText", - 'class: "org.openqa.selenium.WebElement", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_WebElement_isDisplayed(handle receiver) returns boolean = @java:Method { - name: "isDisplayed", - 'class: "org.openqa.selenium.WebElement", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_WebElement_isEnabled(handle receiver) returns boolean = @java:Method { - name: "isEnabled", - 'class: "org.openqa.selenium.WebElement", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_WebElement_isSelected(handle receiver) returns boolean = @java:Method { - name: "isSelected", - 'class: "org.openqa.selenium.WebElement", - paramTypes: [] -} external; - -isolated function org_openqa_selenium_WebElement_sendKeys(handle receiver, handle keysToSend) = @java:Method { - name: "sendKeys", - 'class: "org.openqa.selenium.WebElement", - paramTypes: ["[Ljava.lang.CharSequence;"] -} external; - -isolated function org_openqa_selenium_WebElement_submit(handle receiver) = @java:Method { - name: "submit", - 'class: "org.openqa.selenium.WebElement", - paramTypes: [] -} external; - diff --git a/ballerina/tests/web_driver_test.bal b/ballerina/tests/web_driver_test.bal new file mode 100644 index 0000000..55f9ec3 --- /dev/null +++ b/ballerina/tests/web_driver_test.bal @@ -0,0 +1,501 @@ +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com. + +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 + +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +import ballerina/lang.runtime; +import ballerina/test; + +string url = "https://ballerina-ipa.choreoapps.dev"; +// string url = "http://localhost:5173"; +WebDriver chromeDriver = check new ({ + headlessMode: false, + url: url + "/complex-dom", + browserName: "chrome" +}); +WebDriver firefoxDriver = check new ({ + headlessMode: false, + url: url + "/complex-dom", + browserName: "firefox" +}); + +function driverProvider() returns WebDriver[][] { + return [[chromeDriver], [firefoxDriver]]; +} + +@test:Config +function testInvalidBrowserName() { + WebDriver|error driver = new ({ + headlessMode: true, + url: url + "/complex-dom", + browserName: "invalid-browser" + }); + test:assertTrue(driver is error, "Expected error not thrown"); +} + +@test:Config +function testInvalidURL() { + WebDriver|error driver = new ({ + headlessMode: true, + url: "invalid-url", + browserName: "chrome" + }); + test:assertTrue(driver is error, "Expected error not thrown"); +} + +@test:Config { + dependsOn: [testInvalidURL, testInvalidBrowserName], + dataProvider: driverProvider +} +function testGetTitle(WebDriver driver) { + string|Error actualTitle = driver.getTitle(); + string expectedTitle = "Complex DOM"; + test:assertEquals(actualTitle, expectedTitle, "Web page title mismatched"); +} + +@test:Config { + dependsOn: [testGetTitle], + dataProvider: driverProvider +} +function testGetCurrentUrl(WebDriver driver) { + string|Error actualValue = driver.getCurrentUrl(); + string expectedValue = url + "/complex-dom"; + test:assertEquals(actualValue, expectedValue, "Current URL mismatched"); +} + +@test:Config { + dependsOn: [testGetTitle], + dataProvider: driverProvider +} +function testNavigation(WebDriver driver) { + Error? navigationErr = driver.navigateTo(url + "/student-application"); + if navigationErr is error { + test:assertFail(navigationErr.message()); + } + string|Error actualValue = driver.getTitle(); + string expectedValue = "Student Application Form"; + test:assertEquals(actualValue, expectedValue); + navigationErr = driver.navigateBack(); + if navigationErr is error { + test:assertFail(navigationErr.message()); + } + actualValue = driver.getTitle(); + expectedValue = "Complex DOM"; + test:assertEquals(actualValue, expectedValue); + navigationErr = driver.navigateForward(); + if navigationErr is error { + test:assertFail(navigationErr.message()); + } + actualValue = driver.getTitle(); + expectedValue = "Student Application Form"; + test:assertEquals(actualValue, expectedValue); + navigationErr = driver.navigateBack(); + if navigationErr is error { + test:assertFail(navigationErr.message()); + } + actualValue = driver.getTitle(); + expectedValue = "Complex DOM"; + test:assertEquals(actualValue, expectedValue); +} + +@test:Config { + dependsOn: [testNavigation], + dataProvider: driverProvider +} +function testFindById(WebDriver driver) { + WebElement|Error element = driver.findById("main-heading"); + test:assertTrue(element is WebElement, "Element not found by ID"); + WebElement|Error invalidElement = driver.findById("invalid-id"); + test:assertTrue(invalidElement is Error, "Expected error not thrown"); +} + +@test:Config { + dependsOn: [testFindById], + dataProvider: driverProvider +} +function testFindByClassName(WebDriver driver) { + WebElement|Error element = driver.findByClassName("nav-links"); + test:assertTrue(element is WebElement, "Element not found by class name"); + WebElement|Error invalidElement = driver.findByClassName("invalid-class-name"); + test:assertTrue(invalidElement is Error, "Expected error not thrown"); +} + +@test:Config { + dependsOn: [testFindByClassName], + dataProvider: driverProvider +} +function testFindByTagName(WebDriver driver) { + WebElement|Error element = driver.findByTagName("h1"); + test:assertTrue(element is WebElement, "Element not found by tag name"); + WebElement|Error invalidElement = driver.findByTagName("invalid-tag-name"); + test:assertTrue(invalidElement is Error, "Expected error not thrown"); +} + +@test:Config { + dependsOn: [testFindByTagName], + dataProvider: driverProvider +} +function testFindByXPath(WebDriver driver) { + WebElement|Error element = driver.findByXpath("//section[@id='home']/div/button[1]"); + test:assertTrue(element is WebElement, "Element not found by XPath"); + WebElement|Error invalidElement = driver.findByXpath("//section[@id='home']/invalid-xpath"); + test:assertTrue(invalidElement is Error, "Expected error not thrown"); +} + +@test:Config { + dependsOn: [testFindByXPath], + dataProvider: driverProvider +} +function testFindByLinkText(WebDriver driver) { + WebElement|Error element = driver.findByLinkText("Home"); + test:assertTrue(element is WebElement, "Element not found by link text"); + WebElement|Error invalidElement = driver.findByLinkText("invalid-link-text"); + test:assertTrue(invalidElement is Error, "Expected error not thrown"); +} + +@test:Config { + dependsOn: [testFindByLinkText], + dataProvider: driverProvider +} +function testFindByPartialLinkText(WebDriver driver) { + WebElement|Error element = driver.findByPartialLinkText("Conta"); + test:assertTrue(element is WebElement, "Element not found by partial link text"); + WebElement|Error invalidElement = driver.findByPartialLinkText("invalid-partial-link-text"); + test:assertTrue(invalidElement is Error, "Expected error not thrown"); +} + +@test:Config { + dependsOn: [testFindByPartialLinkText], + dataProvider: driverProvider +} +function testFindByCssSelector(WebDriver driver) { + WebElement|Error element = driver.findByCssSelector(".nav-links > li:nth-child(1) > a"); + test:assertTrue(element is WebElement, "Element not found by CSS selector"); + WebElement|Error invalidElement = driver.findByCssSelector(".nav-links > #invalid-css-selector"); + test:assertTrue(invalidElement is Error, "Expected error not thrown"); +} + +@test:Config { + dependsOn: [testFindByCssSelector], + dataProvider: driverProvider +} +function testFindByName(WebDriver driver) { + WebElement|Error element = driver.findByName("email"); + test:assertTrue(element is WebElement, "Element not found by name"); + WebElement|Error invalidElement = driver.findByName("invalid-name"); + test:assertTrue(invalidElement is Error, "Expected error not thrown"); +} + +@test:Config { + dependsOn: [testFindByName], + dataProvider: driverProvider +} +function testFindAllByClassName(WebDriver driver) { + WebElement[]|Error elements = driver.findAllByClassName("nav-link"); + validateFindAll(elements, 3); + WebElement[]|Error invalidElements = driver.findAllByClassName("invalid-class-name"); + validateFindAll(invalidElements, 0); +} + +@test:Config { + dependsOn: [testFindAllByClassName], + dataProvider: driverProvider +} +function testFindAllByTagName(WebDriver driver) { + WebElement[]|Error elements = driver.findAllByTagName("section"); + validateFindAll(elements, 3); + WebElement[]|Error invalidElements = driver.findAllByTagName("invalid-tag-name"); + validateFindAll(invalidElements, 0); +} + +@test:Config { + dependsOn: [testFindAllByTagName], + dataProvider: driverProvider +} +function testFindAllByXPath(WebDriver driver) { + WebElement[]|Error elements = driver.findAllByXpath("//section"); + validateFindAll(elements, 3); + WebElement[]|Error invalidElements = driver.findAllByXpath("//invalid-xpath"); + validateFindAll(invalidElements, 0); +} + +@test:Config { + dependsOn: [testFindAllByXPath], + dataProvider: driverProvider +} +function testFindAllByLinkText(WebDriver driver) { + WebElement[]|Error elements = driver.findAllByLinkText("Home"); + validateFindAll(elements, 1); + WebElement[]|Error invalidElements = driver.findAllByLinkText("invalid-link-text"); + validateFindAll(invalidElements, 0); +} + +@test:Config { + dependsOn: [testFindAllByLinkText], + dataProvider: driverProvider +} +function testFindAllByPartialLinkText(WebDriver driver) { + WebElement[]|Error elements = driver.findAllByPartialLinkText("Conta"); + validateFindAll(elements, 1); + WebElement[]|Error invalidElements = driver.findAllByPartialLinkText("invalid-partial-link-text"); + validateFindAll(invalidElements, 0); +} + +@test:Config { + dependsOn: [testFindAllByPartialLinkText], + dataProvider: driverProvider +} +function testFindAllByCssSelector(WebDriver driver) { + WebElement[]|Error elements = driver.findAllByCssSelector(".nav-links > li"); + validateFindAll(elements, 3); + WebElement[]|Error invalidElements = driver.findAllByCssSelector(".nav-links > #invalid-css-selector"); + validateFindAll(invalidElements, 0); +} + +@test:Config { + dependsOn: [testFindAllByCssSelector], + dataProvider: driverProvider +} +function testFindAllByName(WebDriver driver) { + WebElement[]|Error elements = driver.findAllByName("email"); + validateFindAll(elements, 1); + WebElement[]|Error invalidElements = driver.findAllByName("invalid-name"); + validateFindAll(invalidElements, 0); +} + +@test:Config { + dependsOn: [testFindAllByName], + dataProvider: driverProvider +} +function testGetText(WebDriver driver) returns Error? { + string|Error actualValue = (check driver.findById("main-heading")).getText(); + string expectedValue = "Complex DOM"; + test:assertEquals(actualValue, expectedValue, "Element text mismatched"); +} + +@test:Config { + dependsOn: [testGetText], + dataProvider: driverProvider +} +function testGetTagName(WebDriver driver) returns Error? { + string|Error actualValue = (check driver.findById("main-heading")).getTagName(); + string expectedValue = "h1"; + test:assertEquals(actualValue, expectedValue, "Element tag name mismatched"); +} + +@test:Config { + dependsOn: [testGetTagName], + dataProvider: driverProvider +} +function testGetDomAttribute(WebDriver driver) returns Error? { + string|Error actualValue = (check driver.findByCssSelector(".nav-links > li:nth-child(1) > a")).getDomAttribute("href"); + string expectedValue = "#home"; + test:assertEquals(actualValue, expectedValue, "Element attribute mismatched"); +} + +@test:Config { + dependsOn: [testGetDomAttribute], + dataProvider: driverProvider +} +function testClick(WebDriver driver) returns Error? { + WebElement element = check driver.findById("home-button2"); + Error? clickErr = element.click(); + if clickErr is Error { + test:assertFail("Failed to click the element"); + } + string|Error actualValue = element.getText(); + string expectedValue = "Click 1"; + test:assertEquals(actualValue, expectedValue, "Element text mismatched"); +} + +@test:Config { + dependsOn: [testClick], + dataProvider: driverProvider +} +function testIsDisplayed(WebDriver driver) returns Error? { + boolean|Error actualValue = (check driver.findById("home-button2")).isDisplayed(); + if actualValue is Error { + test:assertFail("Failed to check element display status"); + } + test:assertTrue(actualValue, "Element not displayed. Expected to be displayed"); + actualValue = (check driver.findById("hidden-element")).isDisplayed(); + if actualValue is Error { + test:assertFail("Failed to check element display status"); + } + test:assertFalse(actualValue, "Element is displayed. Expected not to be displayed"); +} + +@test:Config { + dependsOn: [testFindByName], + dataProvider: driverProvider +} +function testIsEnabled(WebDriver driver) returns Error? { + boolean|Error actualValue = (check driver.findByName("email")).isEnabled(); + if actualValue is Error { + test:assertFail("Failed to check element enabled status"); + } + test:assertTrue(actualValue, "Element not enabled. Expected to be enabled"); + actualValue = (check driver.findByName("disabled-element")).isEnabled(); + if actualValue is Error { + test:assertFail("Failed to check element enabled status"); + } + test:assertFalse(actualValue, "Element is enabled. Expected not to be enabled"); +} + +@test:Config { + dependsOn: [testIsEnabled], + dataProvider: driverProvider +} +function testIsSelected(WebDriver driver) returns Error? { + WebElement element = check driver.findByName("select-example"); + boolean|Error actualValue = element.isSelected(); + if actualValue is Error { + test:assertFail("Failed to check element selected status"); + } + test:assertFalse(actualValue, "Element is selected. Expected not to be selected"); + check element.click(); + actualValue = element.isSelected(); + if actualValue is Error { + test:assertFail("Failed to check element selected status"); + } + test:assertTrue(actualValue, "Element not selected. Expected to be selected"); +} + +@test:Config { + dependsOn: [testIsSelected], + dataProvider: driverProvider +} +function testSendKeys(WebDriver driver) returns Error? { + WebElement element = check driver.findByName("email"); + Error? sendKeysErr = element.sendKeys("example@abc.com"); + if sendKeysErr is Error { + test:assertFail("Failed to send keys to the element"); + } + string actualValue = check element.getDomAttribute("value"); + string expectedValue = "example@abc.com"; + test:assertEquals(actualValue, expectedValue, "Element value mismatched"); +} + +@test:Config { + dependsOn: [testSendKeys], + dataProvider: driverProvider +} +function testAlert(WebDriver driver) returns Error? { + WebElement element = check driver.findById("home-button"); + check element.click(); + Error? alertAcceptError = driver.acceptAlert(); + if (alertAcceptError is Error) { + test:assertFail(alertAcceptError.message()); + } else { + string actualValue = check element.getText(); + string expectedValue = "Happy"; + test:assertEquals(actualValue, expectedValue); + check element.click(); + Error? alertDismissError = driver.dismissAlert(); + if (alertDismissError is Error) { + test:assertFail(alertDismissError.message()); + } else { + actualValue = check element.getText(); + expectedValue = "Sad"; + test:assertEquals(actualValue, expectedValue); + } + } +} + +@test:Config { + dependsOn: [testAlert], + dataProvider: driverProvider +} +function testWindowHandle(WebDriver driver) returns Error? { + check (check driver.findByLinkText("Learn more")).click(); + string|Error firstWindow = driver.getCurrentWindowHandle(); + string[]|Error allWindows = driver.getAllWindowHandles(); + if allWindows is Error || firstWindow is Error { + test:assertFail("Failed to get window handles"); + } + test:assertEquals(allWindows.length(), 2); + test:assertEquals(allWindows[0], firstWindow); + Error? handleError = driver.switchToWindowHandle(allWindows[1]); + if (handleError is Error) { + test:assertFail("Failed to switch to new window"); + } else { + runtime:sleep(2); + string|Error actualValue = driver.getTitle(); + string expectedValue = "New Window"; + test:assertEquals(actualValue, expectedValue); + Error? closeErr = driver.closeCurrentWindowHandle(); + if closeErr is Error { + test:assertFail("Failed to close new window"); + } + handleError = driver.switchToWindowHandle(firstWindow); + if (handleError is Error) { + test:assertFail("Failed to switch to first window"); + } else { + actualValue = driver.getTitle(); + expectedValue = "Complex DOM"; + test:assertEquals(actualValue, expectedValue); + } + + } + +} + +@test:Config { + dependsOn: [testWindowHandle], + dataProvider: driverProvider +} +function testRefresh(WebDriver driver) returns Error? { + Error? refresh = driver.refresh(); + if refresh is Error { + test:assertFail("Failed to refresh the page"); + } + string actualValue = check (check driver.findById("home-button2")).getText(); + string expectedValue = "Click Me"; + test:assertEquals(actualValue, expectedValue, "Element text mismatched"); +} + +@test:Config { + dependsOn: [testRefresh], + dataProvider: driverProvider +} +function testExecuteJavascript(WebDriver driver) returns Error? { + string script = "document.getElementById('home-button2').click();"; + Error? jsError = driver.executeJavascript(script); + if jsError is Error { + test:assertFail("Failed to execute JavaScript"); + } + string actualValue = check (check driver.findById("home-button2")).getText(); + string expectedValue = "Click 1"; + test:assertEquals(actualValue, expectedValue, "Element text mismatched"); +} + +@test:AfterSuite +function teardown() { + Error? chromeQuitErr = chromeDriver.quit(); + Error? firefoxQuitErr = firefoxDriver.quit(); + if chromeQuitErr is Error { + test:assertFail("Failed to quit Chrome driver"); + } + if firefoxQuitErr is Error { + test:assertFail("Failed to quit Firefox driver"); + } +} + +function validateFindAll(WebElement[]|Error elements, int expectedCount) { + if (elements is Error) { + test:assertFail(elements.message()); + } else { + test:assertEquals(elements.length(), expectedCount, "Element count mismatched"); + } +} diff --git a/ballerina/web_driver.bal b/ballerina/web_driver.bal new file mode 100644 index 0000000..5920e19 --- /dev/null +++ b/ballerina/web_driver.bal @@ -0,0 +1,334 @@ +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com. +// +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +import ballerina/jballerina.java; + +type Browser "chrome" | "firefox"; + +# Represents the options for configuring the WebDriver instance. +# +# + browserName - The type of browser to open (either "chrome" or "firefox"). The default is "chrome". +# + url - The URL of the web application to open in the browser. +# + headlessMode - A boolean value indicating whether to run the browser in headless mode (without a GUI). The default is `false`. +# + incognitoMode - A boolean value indicating whether to run the browser in incognito mode. The default is `false`. +public type BrowserOptions record { + string browserName = "chrome"; + string url; + boolean headlessMode = false; + boolean incognitoMode = false; +}; + +public class WebDriver { + + public isolated function init(BrowserOptions options) returns error? { + if (options.browserName == "chrome") { + check self.openChrome(options.url, options.headlessMode, options.incognitoMode); + } else if (options.browserName == "firefox") { + check self.openFirefox(options.url, options.headlessMode, options.incognitoMode); + } else { + return error("Invalid browser type. Supported browsers are 'chrome' and 'firefox'."); + } + } + + # Opens a new Chrome browser instance and navigates to the specified URL. + # + # + url - The URL of the web application to open in the browser. + # + headless - A boolean value indicating whether to run the browser in headless mode (without a GUI). + # + incognito - A boolean value indicating whether to run the browser in incognito mode. + # + return - Returns an `Error?` if the browser fails to open or navigate to the specified URL. + isolated function openChrome(string url, boolean headless, boolean incognito) returns Error? = @java:Method { + 'class: "io.xlibb.selenium.SeleniumWebDriver" + } external; + + # Opens a new Firefox browser instance and navigates to the specified URL. + # + # + url - The URL of the web application to open in the browser. + # + headless - A boolean value indicating whether to run the browser in headless mode (without a GUI). + # + incognito - A boolean value indicating whether to run the browser in incognito mode. + # + return - Returns an `Error?` if the browser fails to open or navigate to the specified URL. + isolated function openFirefox(string url, boolean headless, boolean incognito) returns Error? = @java:Method { + 'class: "io.xlibb.selenium.SeleniumWebDriver" + } external; + + # Retrieves the title of the current web page opened in the browser. + # + # + return - Returns a `string` representing the title of the web page, or an `Error` if an error occurs. + public isolated function getTitle() returns string|Error = @java:Method { + 'class: "io.xlibb.selenium.SeleniumWebDriver" + } external; + + # Maximizes the browser window to fill the screen. + # + # + return - Returns `()` if the operation is successful, otherwise an `Error`. + public isolated function maximize() returns Error? = @java:Method { + 'class: "io.xlibb.selenium.SeleniumWebDriver" + } external; + + # Minimizes the browser window. + # + # + return - Returns `()` if the operation is successful, otherwise an `Error`. + public isolated function minimize() returns Error? = @java:Method { + 'class: "io.xlibb.selenium.SeleniumWebDriver" + } external; + + # Sets the size of the browser window to the specified width and height. + # + # + width - The desired width of the browser window in pixels. + # + height - The desired height of the browser window in pixels. + # + return - Returns `()` if the operation is successful, otherwise an `Error`. + public isolated function setSize(int width, int height) returns Error? = @java:Method { + 'class: "io.xlibb.selenium.SeleniumWebDriver" + } external; + + # Navigates the browser to the specified URL. + # + # + url - The URL to navigate to. + # + return - Returns `()` if the operation is successful, otherwise an `Error`. + public isolated function navigateTo(string url) returns Error? = @java:Method { + 'class: "io.xlibb.selenium.SeleniumWebDriver" + } external; + + # Navigates the browser back to the previous page in the browsing history. + # + # + return - Returns `()` if the operation is successful, otherwise an `Error`. + public isolated function navigateBack() returns Error? = @java:Method { + 'class: "io.xlibb.selenium.SeleniumWebDriver" + } external; + + # Navigates the browser forward to the next page in the browsing history (if available). + # + # + return - Returns `()` if the operation is successful, otherwise an `Error`. + public isolated function navigateForward() returns Error? = @java:Method { + 'class: "io.xlibb.selenium.SeleniumWebDriver" + } external; + + # Refreshes the current web page in the browser. + # + # + return - Returns `()` if the operation is successful, otherwise an `Error`. + public isolated function refresh() returns Error? = @java:Method { + 'class: "io.xlibb.selenium.SeleniumWebDriver" + } external; + + # Retrieves the current URL of the web page opened in the browser. + # + # + return - Returns a `string` representing the current URL, or an `Error` if an error occurs. + public isolated function getCurrentUrl() returns string|Error = @java:Method { + 'class: "io.xlibb.selenium.SeleniumWebDriver" + } external; + + # Finds an HTML element on the web page using its unique `id` attribute. + # + # + id - The unique `id` attribute of the HTML element to find. + # + return - A `WebElement` representing the found element, or an `Error` if the element is not found. + public isolated function findById(string id) returns WebElement|Error = @java:Method { + 'class: "io.xlibb.selenium.SeleniumWebDriver" + } external; + + # Finds an HTML element on the web page using its `class` attribute. + # + # + className - The `class` attribute of the HTML element to find. + # + return - A `WebElement` representing the found element, or an `Error` if the element is not found. + public isolated function findByClassName(string className) returns WebElement|Error = @java:Method { + 'class: "io.xlibb.selenium.SeleniumWebDriver" + } external; + + # Finds an HTML element on the web page using its tag name. + # + # + tagName - The tag name of the HTML element to find (e.g., "div", "input"). + # + return - A `WebElement` representing the found element, or an `Error` if the element is not found. + public isolated function findByTagName(string tagName) returns WebElement|Error = @java:Method { + 'class: "io.xlibb.selenium.SeleniumWebDriver" + } external; + + # Finds an HTML element on the web page using an XPath expression. + # + # + xpath - The XPath expression used to locate the HTML element. + # + return - A `WebElement` representing the found element, or an `Error` if the element is not found. + public isolated function findByXpath(string xpath) returns WebElement|Error = @java:Method { + 'class: "io.xlibb.selenium.SeleniumWebDriver" + } external; + + # Finds an HTML element on the web page using a CSS selector. + # + # + cssSelector - The CSS selector used to locate the HTML element. + # + return - A `WebElement` representing the found element, or an `Error` if the element is not found. + public isolated function findByCssSelector(string cssSelector) returns WebElement|Error = @java:Method { + 'class: "io.xlibb.selenium.SeleniumWebDriver" + } external; + + # Finds an HTML element on the web page using its name attribute. + # + # + name - The `name` attribute of the HTML element to find. + # + return - A `WebElement` representing the found element, or an `Error` if the element is not found. + public isolated function findByName(string name) returns WebElement|Error = @java:Method { + 'class: "io.xlibb.selenium.SeleniumWebDriver" + } external; + + # Finds an HTML element on the web page using the visible text of a link. + # + # + linkText - The exact visible text of the link element to find. + # + return - A `WebElement` representing the found link element, or an `Error` if the element is not found. + public isolated function findByLinkText(string linkText) returns WebElement|Error = @java:Method { + 'class: "io.xlibb.selenium.SeleniumWebDriver" + } external; + + # Finds an HTML element on the web page using partial visible text of a link. + # + # + partialLinkText - The partial visible text of the link element to find. + # + return - A `WebElement` representing the found link element, or an `Error` if the element is not found. + public isolated function findByPartialLinkText(string partialLinkText) returns WebElement|Error = @java:Method { + 'class: "io.xlibb.selenium.SeleniumWebDriver" + } external; + + # Finds all HTML elements on the web page with the specified class name. + # + # + className - The `class` attribute of the HTML elements to find. + # + return - Returns `WebElement[]` representing the found elements, or an `Error` if an error occurs. + public isolated function findAllByClassName(string className) returns WebElement[]|Error = @java:Method { + 'class: "io.xlibb.selenium.SeleniumWebDriver" + } external; + + # Finds all HTML elements on the web page with the specified tag name. + # + # + tagName - The tag name of the HTML elements to find (e.g., "div", "input"). + # + return - Returns `WebElement[]` representing the found elements, or an `Error` if an error occurs. + public isolated function findAllByTagName(string tagName) returns WebElement[]|Error = @java:Method { + 'class: "io.xlibb.selenium.SeleniumWebDriver" + } external; + + # Finds all HTML elements on the web page using an XPath expression. + # + # + xpath - The XPath expression used to locate the HTML elements. + # + return - Returns `WebElement[]` representing the found elements, or an `Error` if an error occurs. + public isolated function findAllByXpath(string xpath) returns WebElement[]|Error = @java:Method { + 'class: "io.xlibb.selenium.SeleniumWebDriver" + } external; + + # Finds all HTML elements on the web page using a CSS selector. + # + # + cssSelector - The CSS selector used to locate the HTML elements. + # + return - Returns `WebElement[]` representing the found elements, or an `Error` if an error occurs. + public isolated function findAllByCssSelector(string cssSelector) returns WebElement[]|Error = @java:Method { + 'class: "io.xlibb.selenium.SeleniumWebDriver" + } external; + + # Finds all HTML elements on the web page using their name attribute. + # + # + name - The `name` attribute of the HTML elements to find. + # + return - Returns `WebElement[]` representing the found elements, or an `Error` if an error occurs. + public isolated function findAllByName(string name) returns WebElement[]|Error = @java:Method { + 'class: "io.xlibb.selenium.SeleniumWebDriver" + } external; + + # Finds all HTML link elements on the web page using the exact visible text. + # + # + linkText - The exact visible text of the link elements to find. + # + return - Returns `WebElement[]` representing the found elements, or an `Error` if an error occurs. + public isolated function findAllByLinkText(string linkText) returns WebElement[]|Error = @java:Method { + 'class: "io.xlibb.selenium.SeleniumWebDriver" + } external; + + # Finds all HTML link elements on the web page using partial visible text. + # + # + partialLinkText - The partial visible text of the link elements to find. + # + return - Returns `WebElement[]` representing the found elements, or an `Error` if an error occurs. + public isolated function findAllByPartialLinkText(string partialLinkText) returns WebElement[]|Error = @java:Method { + 'class: "io.xlibb.selenium.SeleniumWebDriver" + } external; + + # Accepts an alert popup in the browser. + # + # This method clicks the "OK" button on an alert dialog box (e.g., JavaScript alerts, confirmations, or prompts). + # + # + return - Returns `()` if the alert is accepted successfully, otherwise an `Error`. + public isolated function acceptAlert() returns Error? = @java:Method { + 'class: "io.xlibb.selenium.SeleniumWebDriver" + } external; + + # Dismisses an alert popup in the browser. + # + # This method clicks the "Cancel" button or dismisses an alert dialog box (e.g., JavaScript alerts, confirmations, or prompts). + # + # + return - Returns an `()` if the alert is dismissed successfully, otherwise an `Error`. + public isolated function dismissAlert() returns Error? = @java:Method { + 'class: "io.xlibb.selenium.SeleniumWebDriver" + } external; + + # Sends input text to an alert popup with a text box in the browser. + # + # This method inputs a specified value into a prompt alert dialog box. Note that this method only works on alerts that accept user input. + # + # + value - The input text to send to the alert's text box. + # + return - Returns `()` if the input is sent successfully, otherwise an `Error`. + public isolated function sendKeysToAlert(string value) returns Error? = @java:Method { + 'class: "io.xlibb.selenium.SeleniumWebDriver" + } external; + + # Retrieves the handle of the current active browser window. + # + # The handle is a unique identifier for the currently active browser window. + # + # + return - Returns a `string` representing the window handle, or an `Error` if an error occurs. + public isolated function getCurrentWindowHandle() returns string|Error = @java:Method { + 'class: "io.xlibb.selenium.SeleniumWebDriver" + } external; + + # Retrieves the handles of all open browser windows. + # + # The method returns a list of unique identifiers for all the currently open browser windows. + # + # + return - Returns a `string[]` representing the window handles, or an `Error` if an error occurs. + public isolated function getAllWindowHandles() returns string[]|Error = @java:Method { + 'class: "io.xlibb.selenium.SeleniumWebDriver" + } external; + + # Switches the context to the specified browser window handle. + # + # This method allows switching focus to a specific browser window identified by its handle. + # + # + windowHandle - The unique identifier of the browser window to switch to. + # + return - Returns an `()` if the switch is successful, otherwise an `Error`. + public isolated function switchToWindowHandle(string windowHandle) returns Error? = @java:Method { + 'class: "io.xlibb.selenium.SeleniumWebDriver" + } external; + + # Closes the currently active browser window. + # + # This method closes the window that is currently in focus. If there are multiple windows open, the other windows will remain open. + # + # + return - Returns `()` if the window is closed successfully, otherwise an `Error`. + public isolated function closeCurrentWindowHandle() returns Error? = @java:Method { + 'class: "io.xlibb.selenium.SeleniumWebDriver" + } external; + + # Executes a JavaScript script on the current page in the Selenium WebDriver session. + # + # + script - The JavaScript script to execute. + # + return - Returns `()` if the script is executed successfully, otherwise an `Error`. + public isolated function executeJavascript(string script) returns Error? = @java:Method { + 'class: "io.xlibb.selenium.SeleniumWebDriver" + } external; + + # Quits the browser session and closes all open browser windows. + # + # This method ends the current WebDriver session and closes all associated browser windows. + # + # + return - Returns `()` if the session is closed successfully, otherwise an `Error`. + public isolated function quit() returns Error? = @java:Method { + 'class: "io.xlibb.selenium.SeleniumWebDriver" + } external; + +} diff --git a/ballerina/web_element.bal b/ballerina/web_element.bal new file mode 100644 index 0000000..7c1e7d3 --- /dev/null +++ b/ballerina/web_element.bal @@ -0,0 +1,206 @@ +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com. +// +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +import ballerina/jballerina.java; + +public class WebElement { + + # Performs a click action on the specified web element. + # + # + return - Returns `()` if the click action is successful, otherwise an `Error`. + public isolated function click() returns Error? = @java:Method { + 'class: "io.xlibb.selenium.SeleniumWebElement" + } external; + + # Clears the value of an input field or text area. + # + # + return - Returns `()` if the clear action is successful, otherwise an `Error`. + public isolated function clear() returns Error? = @java:Method { + 'class: "io.xlibb.selenium.SeleniumWebElement" + } external; + + # Sends input text to the specified web element. + # + # + value - The text to input into the web element. + # + return - Returns `()` if the text input is successful, otherwise an `Error`. + public isolated function sendKeys(string value) returns Error? = @java:Method { + 'class: "io.xlibb.selenium.SeleniumWebElement" + } external; + + # Retrieves the tag name of the web element. + # + # + return - Returns `string` representing the tag name of the web element, or `Error` if an error occurs. + public isolated function getTagName() returns string|Error = @java:Method { + 'class: "io.xlibb.selenium.SeleniumWebElement" + } external; + + # Retrieves the visible text of the web element. + # + # + return - Returns `string` containing the visible text of the element, or `Error` if an error occurs. + public isolated function getText() returns string|Error = @java:Method { + 'class: "io.xlibb.selenium.SeleniumWebElement" + } external; + + # Retrieves the value of a specified DOM attribute for a web element. + # + # + attribute - The name of the attribute whose value needs to be fetched (e.g., `href`, `src`, `class`, etc.). + # + return - Returns string representing the value of the specified DOM attribute, or an `Error` if the attribute is not found. + public isolated function getDomAttribute(string attribute) returns string|Error = @java:Method { + 'class: "io.xlibb.selenium.SeleniumWebElement" + } external; + + # Checks if the web element is displayed on the page. + # + # + return - Returns `boolean` value: `true` if the element is displayed, otherwise `false`. + public isolated function isDisplayed() returns boolean|Error = @java:Method { + 'class: "io.xlibb.selenium.SeleniumWebElement" + } external; + + # Checks if the web element is enabled. + # + # + return - Returns `boolean` value: `true` if the element is enabled, otherwise `false`. + public isolated function isEnabled() returns boolean|Error = @java:Method { + 'class: "io.xlibb.selenium.SeleniumWebElement" + } external; + + # Checks if the web element is selected. Typically used for checkboxes, radio buttons, or options in a dropdown. + # + # + return - Returns `boolean` value: `true` if the element is selected, otherwise `false`. + public isolated function isSelected() returns boolean|Error = @java:Method { + 'class: "io.xlibb.selenium.SeleniumWebElement" + } external; + + # Locates a web element by its unique ID attribute inside another web element. + # + # + id - The unique identifier of the web element. + # + return - Returns `WebElement` representing the located element, or an `Error` if the element cannot be found. + public isolated function findById(string id) returns WebElement|Error = @java:Method { + 'class: "io.xlibb.selenium.SeleniumWebElement" + } external; + + # Locates a web element by its class name inside another web element. + # + # + className - The class name of the web element. + # + return - Returns `WebElement` representing the located element, or an `Error` if the element cannot be found. + public isolated function findByClassName(string className) returns WebElement|Error = @java:Method { + 'class: "io.xlibb.selenium.SeleniumWebElement" + } external; + + # Locates a web element by its tag name inside another web element. + # + # + tagName - The tag name of the web element (e.g., `div`, `input`, `button`). + # + return - Returns `WebElement` representing the located element, or an `Error` if the element cannot be found. + public isolated function findByTagName(string tagName) returns WebElement|Error = @java:Method { + 'class: "io.xlibb.selenium.SeleniumWebElement" + } external; + + # Locates a web element using an XPath expression inside another web element. + # + # + xpath - The XPath expression used to locate the element. + # + return - Returns `WebElement` representing the located element, or an `Error` if the element cannot be found. + public isolated function findByXpath(string xpath) returns WebElement|Error = @java:Method { + 'class: "io.xlibb.selenium.SeleniumWebElement" + } external; + + # Locates a web element using a CSS selector inside another web element. + # + # + cssSelector - The CSS selector used to locate the element. + # + return - Returns `WebElement` representing the located element, or an `Error` if the element cannot be found. + public isolated function findByCssSelector(string cssSelector) returns WebElement|Error = @java:Method { + 'class: "io.xlibb.selenium.SeleniumWebElement" + } external; + + # Locates a web element by its `name` attribute inside another web element. + # + # + name - The name attribute of the web element. + # + return - Returns `WebElement` representing the located element, or an `Error` if the element cannot be found. + public isolated function findByName(string name) returns WebElement|Error = @java:Method { + 'class: "io.xlibb.selenium.SeleniumWebElement" + } external; + + # Locates a web element by its exact link text inside another web element. + # + # + linkText - The exact text of the link. + # + return - Returns `WebElement` representing the located element, or an `Error` if the element cannot be found. + public isolated function findByLinkText(string linkText) returns WebElement|Error = @java:Method { + 'class: "io.xlibb.selenium.SeleniumWebElement" + } external; + + # Locates a web element by its partial link text inside another web element. + # + # + partialLinkText - The partial text of the link. + # + return - Returns `WebElement` representing the located element, or an `Error` if the element cannot be found. + public isolated function findByPartialLinkText(string partialLinkText) returns WebElement|Error = @java:Method { + 'class: "io.xlibb.selenium.SeleniumWebElement" + } external; + + # Locates all web elements by their class name. + # + # + className - The class name of the web elements. + # + return - Returnsn array of `WebElement` representing all the located elements, or `Error` if an error occurs. + public isolated function findAllByClassName(string className) returns WebElement[]|Error = @java:Method { + 'class: "io.xlibb.selenium.SeleniumWebElement" + } external; + + # Locates all web elements by their tag name inside another web element. + # + # + tagName - The tag name of the web elements (e.g., `div`, `input`, `button`). + # + return - Returnsn array of `WebElement` representing all the located elements, or `Error` if an error occurs. + public isolated function findAllByTagName(string tagName) returns WebElement[]|Error = @java:Method { + 'class: "io.xlibb.selenium.SeleniumWebElement" + } external; + + # Locates all web elements using an XPath expression inside another web element. + # + # + xpath - The XPath expression used to locate the elements. + # + return - Returnsn array of `WebElement` representing all the located elements, or `Error` if an error occurs. + public isolated function findAllByXpath(string xpath) returns WebElement[]|Error = @java:Method { + 'class: "io.xlibb.selenium.SeleniumWebElement" + } external; + + # Locates all web elements using a CSS selector inside another web element. + # + # + cssSelector - The CSS selector used to locate the elements. + # + return - Returnsn array of `WebElement` representing all the located elements, or `Error` if an error occurs. + public isolated function findAllByCssSelector(string cssSelector) returns WebElement[]|Error = @java:Method { + 'class: "io.xlibb.selenium.SeleniumWebElement" + } external; + + # Locates all web elements by their `name` attribute inside another web element. + # + # + name - The `name` attribute of the web elements. + # + return - Returnsn array of `WebElement` representing all the located elements, or `Error` if an error occurs. + public isolated function findAllByName(string name) returns WebElement[]|Error = @java:Method { + 'class: "io.xlibb.selenium.SeleniumWebElement" + } external; + + # Locates all web elements by their exact link text inside another web element. + # + # + linkText - The exact text of the links. + # + return - Returnsn array of `WebElement` representing all the located elements, or `Error` if an error occurs. + public isolated function findAllByLinkText(string linkText) returns WebElement[]|Error = @java:Method { + 'class: "io.xlibb.selenium.SeleniumWebElement" + } external; + + # Locates all web elements by their partial link text inside another web element. + # + # + partialLinkText - The partial text of the links. + # + return - Returnsn array of `WebElement` representing all the located elements, or `Error` if an error occurs. + public isolated function findAllByPartialLinkText(string partialLinkText) returns WebElement[]|Error = @java:Method { + 'class: "io.xlibb.selenium.SeleniumWebElement" + } external; + +} diff --git a/build-config/checkstyle/build.gradle b/build-config/checkstyle/build.gradle new file mode 100644 index 0000000..f2ef7a6 --- /dev/null +++ b/build-config/checkstyle/build.gradle @@ -0,0 +1,49 @@ +/* + * Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). + * + * WSO2 LLC. licenses this file to you under the Apache License, + * Version 2.0 (the "License"); you may not use this file except + * in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +plugins { + id "de.undercouch.download" +} + +apply plugin: 'java' + +task downloadCheckstyleRuleFiles(type: Download) { + src([ + 'https://raw.githubusercontent.com/wso2/code-quality-tools/v1.4/checkstyle/jdk-17/checkstyle.xml', + 'https://raw.githubusercontent.com/wso2/code-quality-tools/v1.4/checkstyle/jdk-17/suppressions.xml' + ]) + overwrite false + onlyIfNewer true + dest buildDir +} + +jar { + enabled = false +} + +clean { + enabled = false +} + +artifacts.add('default', file("$project.buildDir/checkstyle.xml")) { + builtBy('downloadCheckstyleRuleFiles') +} + +artifacts.add('default', file("$project.buildDir/suppressions.xml")) { + builtBy('downloadCheckstyleRuleFiles') +} \ No newline at end of file diff --git a/build-config/resources/Ballerina.toml b/build-config/resources/Ballerina.toml index 991c8e0..66f7494 100644 --- a/build-config/resources/Ballerina.toml +++ b/build-config/resources/Ballerina.toml @@ -5,8 +5,8 @@ name = "selenium" version = "@toml.version@" license = ["Apache-2.0"] authors = ["Ballerina"] -keywords = [] # TODO: Add keywords -# icon = "icon.png" # TODO: Add icon +keywords = ["selenium", "web-automation"] +icon = "icon.png" repository = "https://github.com/xlibb/module-selenium" [build-options] @@ -14,3 +14,260 @@ observabilityIncluded = true [platform.java17] graalvmCompatible = true + +[[platform.java17.dependency]] +groupId = "io.xlibb.selenium" +artifactId = "selenium-native" +version = "0.1.0" +path = "../native/build/libs/selenium-native-0.1.0-SNAPSHOT.jar" + +[[platform.java17.dependency]] +groupId = "org.seleniumhq.selenium" +artifactId = "selenium-java" +version = "4.27.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-java:4.27.0 +[[platform.java17.dependency]] +groupId = "org.seleniumhq.selenium" +artifactId = "selenium-api" +version = "4.27.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-api:4.27.0 +[[platform.java17.dependency]] +groupId = "org.jspecify" +artifactId = "jspecify" +version = "1.0.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-java:4.27.0 +[[platform.java17.dependency]] +groupId = "org.seleniumhq.selenium" +artifactId = "selenium-chrome-driver" +version = "4.27.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-chrome-driver:4.27.0 +[[platform.java17.dependency]] +groupId = "com.google.auto.service" +artifactId = "auto-service-annotations" +version = "1.1.1" + +# transitive dependency of org.seleniumhq.selenium:selenium-chrome-driver:4.27.0 +[[platform.java17.dependency]] +groupId = "org.seleniumhq.selenium" +artifactId = "selenium-chromium-driver" +version = "4.27.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-chrome-driver:4.27.0 +[[platform.java17.dependency]] +groupId = "org.seleniumhq.selenium" +artifactId = "selenium-json" +version = "4.27.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-chrome-driver:4.27.0 +[[platform.java17.dependency]] +groupId = "org.seleniumhq.selenium" +artifactId = "selenium-manager" +version = "4.27.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-java:4.27.0 +[[platform.java17.dependency]] +groupId = "org.seleniumhq.selenium" +artifactId = "selenium-devtools-v129" +version = "4.27.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-java:4.27.0 +[[platform.java17.dependency]] +groupId = "org.seleniumhq.selenium" +artifactId = "selenium-devtools-v130" +version = "4.27.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-java:4.27.0 +[[platform.java17.dependency]] +groupId = "org.seleniumhq.selenium" +artifactId = "selenium-devtools-v131" +version = "4.27.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-java:4.27.0 +[[platform.java17.dependency]] +groupId = "org.seleniumhq.selenium" +artifactId = "selenium-devtools-v85" +version = "4.27.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-java:4.27.0 +[[platform.java17.dependency]] +groupId = "org.seleniumhq.selenium" +artifactId = "selenium-edge-driver" +version = "4.27.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-java:4.27.0 +[[platform.java17.dependency]] +groupId = "org.seleniumhq.selenium" +artifactId = "selenium-firefox-driver" +version = "4.27.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-firefox-driver:4.27.0 +[[platform.java17.dependency]] +groupId = "org.seleniumhq.selenium" +artifactId = "selenium-http" +version = "4.27.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-firefox-driver:4.27.0 +[[platform.java17.dependency]] +groupId = "dev.failsafe" +artifactId = "failsafe" +version = "3.3.2" + +# transitive dependency of org.seleniumhq.selenium:selenium-java:4.27.0 +[[platform.java17.dependency]] +groupId = "org.seleniumhq.selenium" +artifactId = "selenium-ie-driver" +version = "4.27.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-java:4.27.0 +[[platform.java17.dependency]] +groupId = "org.seleniumhq.selenium" +artifactId = "selenium-remote-driver" +version = "4.27.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.27.0 +[[platform.java17.dependency]] +groupId = "com.google.guava" +artifactId = "guava" +version = "33.3.1-jre" + +# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.27.0 +[[platform.java17.dependency]] +groupId = "com.google.guava" +artifactId = "failureaccess" +version = "1.0.2" + +# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.27.0 +[[platform.java17.dependency]] +groupId = "com.google.guava" +artifactId = "listenablefuture" +version = "9999.0-empty-to-avoid-conflict-with-guava" + +# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.27.0 +[[platform.java17.dependency]] +groupId = "com.google.code.findbugs" +artifactId = "jsr305" +version = "3.0.2" + +# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.27.0 +[[platform.java17.dependency]] +groupId = "org.checkerframework" +artifactId = "checker-qual" +version = "3.43.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.27.0 +[[platform.java17.dependency]] +groupId = "com.google.errorprone" +artifactId = "error_prone_annotations" +version = "2.28.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.27.0 +[[platform.java17.dependency]] +groupId = "com.google.j2objc" +artifactId = "j2objc-annotations" +version = "3.0.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.27.0 +[[platform.java17.dependency]] +groupId = "io.opentelemetry.semconv" +artifactId = "opentelemetry-semconv" +version = "1.25.0-alpha" + +# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.27.0 +[[platform.java17.dependency]] +groupId = "io.opentelemetry" +artifactId = "opentelemetry-api" +version = "1.44.1" + +# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.27.0 +[[platform.java17.dependency]] +groupId = "io.opentelemetry" +artifactId = "opentelemetry-context" +version = "1.44.1" + +# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.27.0 +[[platform.java17.dependency]] +groupId = "io.opentelemetry" +artifactId = "opentelemetry-exporter-logging" +version = "1.44.1" + +# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.27.0 +[[platform.java17.dependency]] +groupId = "io.opentelemetry" +artifactId = "opentelemetry-sdk-common" +version = "1.44.1" + +# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.27.0 +[[platform.java17.dependency]] +groupId = "io.opentelemetry" +artifactId = "opentelemetry-sdk-extension-autoconfigure-spi" +version = "1.44.1" + +# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.27.0 +[[platform.java17.dependency]] +groupId = "io.opentelemetry" +artifactId = "opentelemetry-sdk-extension-autoconfigure" +version = "1.44.1" + +# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.27.0 +[[platform.java17.dependency]] +groupId = "io.opentelemetry" +artifactId = "opentelemetry-api-incubator" +version = "1.44.1-alpha" + +# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.27.0 +[[platform.java17.dependency]] +groupId = "io.opentelemetry" +artifactId = "opentelemetry-sdk-trace" +version = "1.44.1" + +# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.27.0 +[[platform.java17.dependency]] +groupId = "io.opentelemetry" +artifactId = "opentelemetry-sdk" +version = "1.44.1" + +# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.27.0 +[[platform.java17.dependency]] +groupId = "io.opentelemetry" +artifactId = "opentelemetry-sdk-metrics" +version = "1.44.1" + +# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.27.0 +[[platform.java17.dependency]] +groupId = "io.opentelemetry" +artifactId = "opentelemetry-sdk-logs" +version = "1.44.1" + +# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.27.0 +[[platform.java17.dependency]] +groupId = "net.bytebuddy" +artifactId = "byte-buddy" +version = "1.15.10" + +# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.27.0 +[[platform.java17.dependency]] +groupId = "org.seleniumhq.selenium" +artifactId = "selenium-os" +version = "4.27.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-remote-driver:4.27.0 +[[platform.java17.dependency]] +groupId = "org.apache.commons" +artifactId = "commons-exec" +version = "1.4.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-java:4.27.0 +[[platform.java17.dependency]] +groupId = "org.seleniumhq.selenium" +artifactId = "selenium-safari-driver" +version = "4.27.0" + +# transitive dependency of org.seleniumhq.selenium:selenium-java:4.27.0 +[[platform.java17.dependency]] +groupId = "org.seleniumhq.selenium" +artifactId = "selenium-support" +version = "4.27.0" \ No newline at end of file diff --git a/build.gradle b/build.gradle index a100f69..1ff3b40 100644 --- a/build.gradle +++ b/build.gradle @@ -18,6 +18,9 @@ plugins { id 'net.researchgate.release' + id "com.github.spotbugs-base" + id "com.github.johnrengelman.shadow" + id "de.undercouch.download" } allprojects { @@ -25,6 +28,7 @@ allprojects { version = project.version apply plugin: 'maven-publish' + apply plugin: 'jacoco' repositories { mavenLocal() @@ -58,7 +62,22 @@ allprojects { def moduleVersion = project.version.replace("-SNAPSHOT", "") task build { + dependsOn(':selenium-examples:build') dependsOn(':selenium-ballerina:build') + dependsOn(':selenium-native:build') +} + +subprojects { + configurations { + ballerinaStdLibs + jbalTools + } + dependencies { + jbalTools ("org.ballerinalang:jballerina-tools:${ballerinaLangVersion}") { + transitive = false + } + + } } release { diff --git a/examples/student_application_form_filling/.devcontainer.json b/examples/student_application_form_filling/.devcontainer.json deleted file mode 100644 index d0eae35..0000000 --- a/examples/student_application_form_filling/.devcontainer.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "image": "ballerina/ballerina-devcontainer:2201.10.2", - "customizations": { - "vscode": { - "extensions": ["WSO2.ballerina"] - } - } -} diff --git a/examples/student_application_form_filling/.gitignore b/examples/student_application_form_filling/.gitignore deleted file mode 100644 index 2d54267..0000000 --- a/examples/student_application_form_filling/.gitignore +++ /dev/null @@ -1,11 +0,0 @@ -# Ballerina generates this directory during the compilation of a package. -# It contains compiler-generated artifacts and the final executable if this is an application package. -target/ - -# Ballerina maintains the compiler-generated source code here. -# Remove this if you want to commit generated sources. -generated/ - -# Contains configuration values used during development time. -# See https://ballerina.io/learn/provide-values-to-configurable-variables/ for more details. -Config.toml diff --git a/examples/student_application_form_filling/Ballerina.toml b/examples/student_application_form_filling/Ballerina.toml index b4fedc2..76d2adc 100644 --- a/examples/student_application_form_filling/Ballerina.toml +++ b/examples/student_application_form_filling/Ballerina.toml @@ -6,3 +6,9 @@ distribution = "2201.10.2" [build-options] observabilityIncluded = true + +[[dependency]] +org = "xlibb" +name = "selenium" +version = "0.1.0" +repository = "local" diff --git a/examples/student_application_form_filling/Dependencies.toml b/examples/student_application_form_filling/Dependencies.toml index 82628ba..e6c30f9 100644 --- a/examples/student_application_form_filling/Dependencies.toml +++ b/examples/student_application_form_filling/Dependencies.toml @@ -24,6 +24,17 @@ org = "ballerina" name = "jballerina.java" version = "0.0.0" +[[package]] +org = "ballerina" +name = "lang.runtime" +version = "0.0.0" +dependencies = [ + {org = "ballerina", name = "jballerina.java"} +] +modules = [ + {org = "ballerina", packageName = "lang.runtime", moduleName = "lang.runtime"} +] + [[package]] org = "ballerina" name = "lang.value" @@ -52,13 +63,27 @@ modules = [ {org = "ballerinai", packageName = "observe", moduleName = "observe"} ] +[[package]] +org = "xlibb" +name = "selenium" +version = "0.1.0" +dependencies = [ + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerinai", name = "observe"} +] +modules = [ + {org = "xlibb", packageName = "selenium", moduleName = "selenium"} +] + [[package]] org = "xlibb" name = "student_application_form_filling" version = "0.1.0" dependencies = [ {org = "ballerina", name = "io"}, - {org = "ballerinai", name = "observe"} + {org = "ballerina", name = "lang.runtime"}, + {org = "ballerinai", name = "observe"}, + {org = "xlibb", name = "selenium"} ] modules = [ {org = "xlibb", packageName = "student_application_form_filling", moduleName = "student_application_form_filling"}, diff --git a/examples/student_application_form_filling/main.bal b/examples/student_application_form_filling/main.bal index 13b6de8..faa4d5a 100644 --- a/examples/student_application_form_filling/main.bal +++ b/examples/student_application_form_filling/main.bal @@ -1,4 +1,4 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com. // // WSO2 LLC. licenses this file to you under the Apache License, // Version 2.0 (the "License"); you may not use this file except @@ -17,121 +17,85 @@ import ballerina/io; import ballerina/lang.runtime; -import xlibb/selenium.web; -import xlibb/selenium.chrome; +import xlibb/selenium; public function main() returns error? { Data data = check getData(); - chrome:ChromeDriver driver = chrome:newChromeDriver1(); - driver.get("https://bal-selenium.choreoapps.dev/"); + selenium:WebDriver driver = new (); + driver.openChrome("https://ballerina-ipa.choreoapps.dev/student-application"); + driver.maximize(); runtime:sleep(2); - driver.findElement(web:By_id("fullName")).click(); - check driver.findElement(web:By_id("fullName")).sendKeys([data.fullName]); - driver.findElement(web:By_id("nameWithInitials")).click(); - check driver.findElement(web:By_id("nameWithInitials")).sendKeys([data.nameWithInitials]); - driver.findElement(web:By_id("dob")).click(); - check driver.findElement(web:By_id("dob")).sendKeys([data.dob]); - driver.findElement(web:By_id("age")).click(); - check driver.findElement(web:By_id("age")).sendKeys([data.age]); - driver.findElement(web:By_id("nationality")).click(); - check driver.findElement(web:By_id("nationality")).sendKeys([data.nationality]); - driver.findElement(web:By_id(data.gender)).click(); - driver.findElement(web:By_id("address")).click(); - check driver.findElement(web:By_id("address")).sendKeys([data.address]); - driver.findElement(web:By_id("mobile")).click(); - check driver.findElement(web:By_id("mobile")).sendKeys([data.mobile]); - driver.findElement(web:By_id("district")).click(); - check driver.findElement(web:By_id("district")).sendKeys([data.district]); - driver.findElement(web:By_id("gramaSevaka")).click(); - check driver.findElement(web:By_id("gramaSevaka")).sendKeys([data.gramaSevaka]); - driver.findElement(web:By_id("nic")).click(); - check driver.findElement(web:By_id("nic")).sendKeys([data.nic ?: ""]); - driver.findElement(web:By_id("passport")).click(); - check driver.findElement(web:By_id("passport")).sendKeys([data.passport ?: ""]); + (check driver.findById("fullName")).sendKeys(data.fullName); + (check driver.findById("nameWithInitials")).sendKeys(data.nameWithInitials); + (check driver.findById("dob")).sendKeys(data.dob); + (check driver.findById("age")).sendKeys(data.age); + (check driver.findById("nationality")).sendKeys(data.nationality); + (check driver.findById(data.gender)).click(); + (check driver.findById("address")).sendKeys(data.address); + (check driver.findById("mobile")).sendKeys(data.mobile); + (check driver.findById("district")).sendKeys(data.district); + (check driver.findById("gramaSevaka")).sendKeys(data.gramaSevaka); + (check driver.findById("nic")).sendKeys(data.nic ?: ""); + (check driver.findById("passport")).sendKeys(data.passport ?: ""); // 2. Emergency contact - driver.findElement(web:By_id("emer-name")).click(); - check driver.findElement(web:By_id("emer-name")).sendKeys([data.emergency.name]); - driver.findElement(web:By_id("emer-address")).click(); - check driver.findElement(web:By_id("emer-address")).sendKeys([data.emergency.address]); - driver.findElement(web:By_id("emer-mobile")).click(); - check driver.findElement(web:By_id("emer-mobile")).sendKeys([data.emergency.mobile]); - driver.findElement(web:By_id("relationship")).click(); - check driver.findElement(web:By_id("relationship")).sendKeys([data.emergency.relationship]); - driver.findElement(web:By_id("emer-email")).click(); - check driver.findElement(web:By_id("emer-email")).sendKeys([data.emergency.email]); + (check driver.findById("emer-name")).sendKeys(data.emergency.name); + (check driver.findById("emer-address")).sendKeys(data.emergency.address); + (check driver.findById("emer-mobile")).sendKeys(data.emergency.mobile); + (check driver.findById("relationship")).sendKeys(data.emergency.relationship); + (check driver.findById("emer-email")).sendKeys(data.emergency.email); // 3. O/L results - driver.findElement(web:By_id("ol-school")).click(); - check driver.findElement(web:By_id("ol-school")).sendKeys([data.olResults.school]); - driver.findElement(web:By_id("ol-year")).click(); - check driver.findElement(web:By_id("ol-year")).sendKeys([data.olResults.year]); - driver.findElement(web:By_id("ol-index")).click(); - check driver.findElement(web:By_id("ol-index")).sendKeys([data.olResults.index]); + (check driver.findById("ol-school")).sendKeys(data.olResults.school); + (check driver.findById("ol-year")).sendKeys(data.olResults.year); + (check driver.findById("ol-index")).sendKeys(data.olResults.index); foreach ResultsItem item in data.olResults.results { - driver.findElement(web:By_id("ol-subject")).click(); - check driver.findElement(web:By_id("ol-subject")).sendKeys([item.subject]); - driver.findElement(web:By_id("ol-grade")).click(); - check driver.findElement(web:By_id("ol-grade")).sendKeys([item.grade]); - driver.findElement(web:By_id("add-ol-result")).click(); + (check driver.findById("ol-subject")).sendKeys(item.subject); + (check driver.findById("ol-grade")).sendKeys(item.grade); + (check driver.findById("add-ol-result")).click(); } // 4. A/L results - driver.findElement(web:By_id("al-school")).click(); - check driver.findElement(web:By_id("al-school")).sendKeys([data.alResults.school]); - driver.findElement(web:By_id("al-year")).click(); - check driver.findElement(web:By_id("al-year")).sendKeys([data.alResults.year]); - driver.findElement(web:By_id("al-index")).click(); - check driver.findElement(web:By_id("al-index")).sendKeys([data.alResults.index]); - driver.findElement(web:By_id("zScore")).click(); - check driver.findElement(web:By_id("zScore")).sendKeys([data.alResults.zScore]); - driver.findElement(web:By_id("al-subject")).click(); + (check driver.findById("al-school")).sendKeys(data.alResults.school); + (check driver.findById("al-year")).sendKeys(data.alResults.year); + (check driver.findById("al-index")).sendKeys(data.alResults.index); + (check driver.findById("zScore")).sendKeys(data.alResults.zScore); foreach ResultsItem item in data.alResults.results { - check driver.findElement(web:By_id("al-subject")).sendKeys([item.subject]); - driver.findElement(web:By_id("al-grade")).click(); - check driver.findElement(web:By_id("al-grade")).sendKeys([item.grade]); - driver.findElement(web:By_id("add-al-result")).click(); + (check driver.findById("al-subject")).sendKeys(item.subject); + (check driver.findById("al-grade")).sendKeys(item.grade); + (check driver.findById("add-al-result")).click(); } // 5. Other qualifications foreach OtherQualificationsItem item in data.otherQualifications { - driver.findElement(web:By_id("course")).click(); - check driver.findElement(web:By_id("course")).sendKeys([item.course]); - driver.findElement(web:By_id("nvq")).click(); - check driver.findElement(web:By_id("nvq")).sendKeys([item.nvqLevel]); - driver.findElement(web:By_id("institute")).click(); - check driver.findElement(web:By_id("institute")).sendKeys([item.institute]); - driver.findElement(web:By_id("nvq-year")).click(); - check driver.findElement(web:By_id("nvq-year")).sendKeys([item.year]); - driver.findElement(web:By_id("nvq-result")).click(); - check driver.findElement(web:By_id("nvq-result")).sendKeys([item.result]); - driver.findElement(web:By_id("add-nvq-result")).click(); + (check driver.findById("course")).sendKeys(item.course); + (check driver.findById("nvq")).sendKeys(item.nvqLevel); + (check driver.findById("institute")).sendKeys(item.institute); + (check driver.findById("nvq-year")).sendKeys(item.year); + (check driver.findById("nvq-result")).sendKeys(item.result); + (check driver.findById("add-nvq-result")).click(); } // 6. Extra curricular activities - driver.findElement(web:By_id("extra-activities")).click(); - check driver.findElement(web:By_id("extra-activities")).sendKeys([data.extraCurricularActivities]); + (check driver.findById("extra-activities")).sendKeys(data.extraCurricularActivities); // 7. References foreach RefreesItem item in data.refrees { - driver.findElement(web:By_id("refree-name")).click(); - check driver.findElement(web:By_id("refree-name")).sendKeys([item.name]); - driver.findElement(web:By_id("designation")).click(); - check driver.findElement(web:By_id("designation")).sendKeys([item.designation]); - driver.findElement(web:By_id("refree-address")).click(); - check driver.findElement(web:By_id("refree-address")).sendKeys([item.address]); - driver.findElement(web:By_id("refree-mobile")).click(); - check driver.findElement(web:By_id("refree-mobile")).sendKeys([item.mobile]); - driver.findElement(web:By_id("add-refree")).click(); + (check driver.findById("refree-name")).sendKeys(item.name); + (check driver.findById("designation")).sendKeys(item.designation); + (check driver.findById("refree-address")).sendKeys(item.address); + (check driver.findById("refree-mobile")).sendKeys(item.mobile); + (check driver.findById("add-refree")).click(); } // submit button - driver.findElement(web:By_id("submit")).click(); + (check driver.findById("submit")).click(); + + io:println("Data entered successfully!"); - io:println("Data entered successsfully!"); } diff --git a/examples/student_application_form_filling/utils.bal b/examples/student_application_form_filling/utils.bal index 1b216a5..1e41ea7 100644 --- a/examples/student_application_form_filling/utils.bal +++ b/examples/student_application_form_filling/utils.bal @@ -20,4 +20,4 @@ public function getData() returns Data|error { json inputs = check io:fileReadJson("modules/resources/data.json"); Data data = check inputs.cloneWithType(); return data; -} \ No newline at end of file +} diff --git a/examples/web_scrapping/Ballerina.toml b/examples/web_scrapping/Ballerina.toml new file mode 100644 index 0000000..735af03 --- /dev/null +++ b/examples/web_scrapping/Ballerina.toml @@ -0,0 +1,14 @@ +[package] +org = "dharshi" +name = "web_scrapping" +version = "0.1.0" +distribution = "2201.10.2" + +[build-options] +observabilityIncluded = true + +[[dependency]] +org = "xlibb" +name = "selenium" +version = "0.1.0" +repository = "local" diff --git a/examples/web_scrapping/Dependencies.toml b/examples/web_scrapping/Dependencies.toml new file mode 100644 index 0000000..9e35f81 --- /dev/null +++ b/examples/web_scrapping/Dependencies.toml @@ -0,0 +1,91 @@ +# AUTO-GENERATED FILE. DO NOT MODIFY. + +# This file is auto-generated by Ballerina for managing dependency versions. +# It should not be modified by hand. + +[ballerina] +dependencies-toml-version = "2" +distribution-version = "2201.10.2" + +[[package]] +org = "ballerina" +name = "io" +version = "1.6.3" +dependencies = [ + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "lang.value"} +] +modules = [ + {org = "ballerina", packageName = "io", moduleName = "io"} +] + +[[package]] +org = "ballerina" +name = "jballerina.java" +version = "0.0.0" + +[[package]] +org = "ballerina" +name = "lang.runtime" +version = "0.0.0" +dependencies = [ + {org = "ballerina", name = "jballerina.java"} +] +modules = [ + {org = "ballerina", packageName = "lang.runtime", moduleName = "lang.runtime"} +] + +[[package]] +org = "ballerina" +name = "lang.value" +version = "0.0.0" +dependencies = [ + {org = "ballerina", name = "jballerina.java"} +] + +[[package]] +org = "ballerina" +name = "observe" +version = "1.3.0" +dependencies = [ + {org = "ballerina", name = "jballerina.java"} +] + +[[package]] +org = "ballerinai" +name = "observe" +version = "0.0.0" +dependencies = [ + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "observe"} +] +modules = [ + {org = "ballerinai", packageName = "observe", moduleName = "observe"} +] + +[[package]] +org = "dharshi" +name = "web_scrapping" +version = "0.1.0" +dependencies = [ + {org = "ballerina", name = "io"}, + {org = "ballerina", name = "lang.runtime"}, + {org = "ballerinai", name = "observe"}, + {org = "xlibb", name = "selenium"} +] +modules = [ + {org = "dharshi", packageName = "web_scrapping", moduleName = "web_scrapping"} +] + +[[package]] +org = "xlibb" +name = "selenium" +version = "0.1.0" +dependencies = [ + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerinai", name = "observe"} +] +modules = [ + {org = "xlibb", packageName = "selenium", moduleName = "selenium"} +] + diff --git a/examples/web_scrapping/README.md b/examples/web_scrapping/README.md new file mode 100644 index 0000000..461500c --- /dev/null +++ b/examples/web_scrapping/README.md @@ -0,0 +1,11 @@ +# Web Scrapping. + +## Overview +Web scraping is an automated method for extracting large amounts of data from websites. It is one of the most efficient and effective ways to gather data from online sources. This guide demonstrates how to collect information about books from the website http://books.toscrape.com/ using the Selenium module. + +## Run the Example + +```ballerina +cd .\examples\web_scrapping +bal run +``` \ No newline at end of file diff --git a/examples/web_scrapping/main.bal b/examples/web_scrapping/main.bal new file mode 100644 index 0000000..0c146e0 --- /dev/null +++ b/examples/web_scrapping/main.bal @@ -0,0 +1,60 @@ +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). +// +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +import ballerina/io; +import ballerina/lang.runtime; + +import xlibb/selenium; + +public function main() returns error? { + + selenium:WebDriver driver = new (); + driver.openChrome("http://books.toscrape.com/"); + driver.maximize(); + runtime:sleep(2); + + string category = "Science"; + selenium:WebElement|error categoryLink = driver.findByPartialLinkText(category); + if (categoryLink is error) { + io:println(`Invalid category name: ${category}`); + driver.quit(); + return; + } + categoryLink.click(); + runtime:sleep(2); + + selenium:WebElement[] results = driver.findAllByClassName("product_pod"); + if (results.length() == 0) { + io:println("No results found for category " + category); + } + foreach selenium:WebElement result in results { + selenium:WebElement itemPageLink = check result.findByCssSelector("h3 > a"); + itemPageLink.click(); + runtime:sleep(1); + + selenium:WebElement itemContent = check driver.findByClassName("product_main"); + string bookName = (check itemContent.findByTagName("h1")).getText(); + string price = (check itemContent.findByClassName("price_color")).getText(); + string availability = (check itemContent.findByClassName("availability")).getText(); + + io:println(string `Name: ${bookName}, Price: ${price}, Availability: ${availability}` + "\n"); + driver.navigateBack(); + runtime:sleep(1); + } + + driver.quit(); + +} diff --git a/gradle.properties b/gradle.properties index 9b5e365..234b878 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,7 +1,14 @@ org.gradle.caching=true -group=io.ballerina.lib +group=io.xlibb version=0.1.0-SNAPSHOT +checkstylePluginVersion=10.12.0 +spotbugsPluginVersion=5.0.14 +shadowJarPluginVersion=8.1.1 +downloadPluginVersion=5.4.0 +releasePluginVersion=2.8.0 + releasePluginVersion=2.8.0 ballerinaGradlePluginVersion=3.0.0 ballerinaLangVersion=2201.10.2 +seleniumVersion=4.27.0 diff --git a/native/build.gradle b/native/build.gradle new file mode 100644 index 0000000..1e2c3c8 --- /dev/null +++ b/native/build.gradle @@ -0,0 +1,74 @@ +/* + * Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com) + * + * WSO2 LLC. licenses this file to you under the Apache License, + * Version 2.0 (the "License"); you may not use this file except + * in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +plugins { + id 'java' + id 'checkstyle' + id 'com.github.spotbugs' +} + +description = 'Ballerina - Native' + +dependencies { + checkstyle project(':checkstyle') + checkstyle "com.puppycrawl.tools:checkstyle:${checkstylePluginVersion}" + + implementation group: 'org.ballerinalang', name: 'ballerina-lang', version: "${ballerinaLangVersion}" + implementation group: 'org.ballerinalang', name: 'ballerina-runtime', version: "${ballerinaLangVersion}" + implementation group: 'org.seleniumhq.selenium', name: 'selenium-java', version: "${seleniumVersion}" +} + +def excludePattern = '**/module-info.java' +tasks.withType(Checkstyle) { + exclude excludePattern +} + +checkstyle { + toolVersion "${project.checkstylePluginVersion}" + configFile rootProject.file("build-config/checkstyle/build/checkstyle.xml") + configProperties = ["suppressionFile" : file("${rootDir}/build-config/checkstyle/build/suppressions.xml")] +} + +checkstyleMain.dependsOn(":checkstyle:downloadCheckstyleRuleFiles") + +spotbugsMain { + effort "max" + reportLevel "low" + reportsDir = file("$project.buildDir/reports/spotbugs") + reports { + html.enabled true + text.enabled = true + } + def excludeFile = file("${rootDir}/build-config/spotbugs-exclude.xml") + if(excludeFile.exists()) { + excludeFilter = excludeFile + } +} + +spotbugsTest { + enabled = false +} + +compileJava { + doFirst { + options.compilerArgs = [ + '--module-path', classpath.asPath, + ] + classpath = files() + } +} \ No newline at end of file diff --git a/native/src/main/java/io/xlibb/selenium/SeleniumWebDriver.java b/native/src/main/java/io/xlibb/selenium/SeleniumWebDriver.java new file mode 100644 index 0000000..878f372 --- /dev/null +++ b/native/src/main/java/io/xlibb/selenium/SeleniumWebDriver.java @@ -0,0 +1,432 @@ +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). +// +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +package io.xlibb.selenium; + +import io.ballerina.runtime.api.creators.ValueCreator; +import io.ballerina.runtime.api.utils.StringUtils; +import io.ballerina.runtime.api.values.BObject; +import io.ballerina.runtime.api.values.BString; +import io.xlibb.selenium.utils.Utils; +import org.openqa.selenium.By; +import org.openqa.selenium.Dimension; +import org.openqa.selenium.JavascriptExecutor; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.chrome.ChromeDriver; +import org.openqa.selenium.chrome.ChromeOptions; +import org.openqa.selenium.firefox.FirefoxDriver; +import org.openqa.selenium.firefox.FirefoxOptions; + +import java.util.List; +import java.util.Set; + +public class SeleniumWebDriver { + + public static final String DRIVER_OBJECT = "nativeDriverObject"; + public static final String WEB_ELEMENT_OBJECT = "nativeWebElementObject"; + public static final String WEB_ELEMENT_OBJECT_TYPE = "WebElement"; + + public static Object openChrome(BObject webDriver, BString url, boolean headless, boolean incognito) { + if (Utils.getDriverNObject(webDriver) == null) { + try { + ChromeOptions chromeOptions = new ChromeOptions(); + if (headless) { + chromeOptions.addArguments("--headless"); + chromeOptions.addArguments("--disable-gpu"); + } + if (incognito) { + chromeOptions.addArguments("--incognito"); + } + webDriver.addNativeData(DRIVER_OBJECT, new ChromeDriver(chromeOptions)); + Utils.getDriverNObject(webDriver).get(url.toString()); + return null; + } catch (Exception e) { + return Utils.getBError(e.getMessage(), e); + } + } + return Utils.getBError("error: A WebDriver instance is already active. Please quit the current " + + "instance before starting a new one."); + } + + public static Object openFirefox(BObject webDriver, BString url, boolean headless, boolean incognito) { + if (Utils.getDriverNObject(webDriver) == null) { + try { + FirefoxOptions firefoxOptions = new FirefoxOptions(); + if (headless) { + firefoxOptions.addArguments("--headless"); + } + if (incognito) { + firefoxOptions.addArguments("--incognito"); + } + webDriver.addNativeData(DRIVER_OBJECT, new FirefoxDriver(firefoxOptions)); + Utils.getDriverNObject(webDriver).get(url.toString()); + return null; + } catch (Exception e) { + return Utils.getBError(e.getMessage(), e); + } + } + return Utils.getBError("error: A WebDriver instance is already active. Please quit the current " + + "instance before starting a new one."); + } + + public static Object getTitle(BObject webDriver) { + try { + return StringUtils.fromString(Utils.getDriverNObject(webDriver).getTitle()); + } catch (Exception e) { + return Utils.getBError(e.getMessage(), e); + } + } + + public static Object maximize(BObject webDriver) { + try { + Utils.getDriverNObject(webDriver).manage().window().maximize(); + return null; + } catch (Exception e) { + return Utils.getBError(e.getMessage(), e); + } + } + + public static Object minimize(BObject webDriver) { + try { + Utils.getDriverNObject(webDriver).manage().window().minimize(); + return null; + } catch (Exception e) { + return Utils.getBError(e.getMessage(), e); + } + } + + public static Object setSize(BObject webDriver, int width, int height) { + try { + Utils.getDriverNObject(webDriver).manage().window().setSize(new Dimension(width, height)); + return null; + } catch (Exception e) { + return Utils.getBError(e.getMessage(), e); + } + } + + public static Object navigateTo(BObject webDriver, BString url) { + try { + Utils.getDriverNObject(webDriver).navigate().to(url.toString()); + return null; + } catch (Exception e) { + return Utils.getBError(e.getMessage(), e); + } + } + + public static Object navigateBack(BObject webDriver) { + try { + Utils.getDriverNObject(webDriver).navigate().back(); + return null; + } catch (Exception e) { + return Utils.getBError(e.getMessage(), e); + } + } + + public static Object navigateForward(BObject webDriver) { + try { + Utils.getDriverNObject(webDriver).navigate().forward(); + return null; + } catch (Exception e) { + return Utils.getBError(e.getMessage(), e); + } + } + + public static Object refresh(BObject webDriver) { + try { + Utils.getDriverNObject(webDriver).navigate().refresh(); + return null; + } catch (Exception e) { + return Utils.getBError(e.getMessage(), e); + } + } + + public static Object getCurrentUrl(BObject webDriver) { + try { + return StringUtils.fromString(Utils.getDriverNObject(webDriver).getCurrentUrl()); + } catch (Exception e) { + return Utils.getBError(e.getMessage(), e); + } + } + + public static Object findById(BObject webDriver, BString id) { + try { + List webElement = Utils.getDriverNObject(webDriver).findElements(By.id(id.toString())); + if (!webElement.isEmpty()) { + return Utils.getWebElementBObject(webElement.get(0)); + } + return Utils.noSuchElementError("ID", id.toString()); + } catch (Exception e) { + return Utils.getBError(e.getMessage(), e); + } + } + + public static Object findByClassName(BObject webDriver, BString className) { + try { + List webElement = Utils.getDriverNObject(webDriver) + .findElements(By.className(className.toString())); + if (!webElement.isEmpty()) { + return Utils.getWebElementBObject(webElement.get(0)); + } + return Utils.noSuchElementError("CLASS_NAME", className.toString()); + } catch (Exception e) { + return Utils.getBError(e.getMessage(), e); + } + } + + public static Object findByTagName(BObject webDriver, BString tagName) { + try { + List webElement = Utils.getDriverNObject(webDriver) + .findElements(By.tagName(tagName.toString())); + if (!webElement.isEmpty()) { + return Utils.getWebElementBObject(webElement.get(0)); + } + return Utils.noSuchElementError("TAG_NAME", tagName.toString()); + } catch (Exception e) { + return Utils.getBError(e.getMessage(), e); + } + } + + public static Object findByXpath(BObject webDriver, BString xpath) { + try { + List webElement = Utils.getDriverNObject(webDriver).findElements(By.xpath(xpath.toString())); + if (!webElement.isEmpty()) { + return Utils.getWebElementBObject(webElement.get(0)); + } + return Utils.noSuchElementError("XPATH", xpath.toString()); + } catch (Exception e) { + return Utils.getBError(e.getMessage(), e); + } + } + + public static Object findByCssSelector(BObject webDriver, BString cssSelector) { + try { + List webElement = Utils.getDriverNObject(webDriver) + .findElements(By.cssSelector(cssSelector.toString())); + if (!webElement.isEmpty()) { + return Utils.getWebElementBObject(webElement.get(0)); + } + return Utils.noSuchElementError("CSS_SELECTOR", cssSelector.toString()); + } catch (Exception e) { + return Utils.getBError(e.getMessage(), e); + } + } + + public static Object findByName(BObject webDriver, BString name) { + try { + List webElement = Utils.getDriverNObject(webDriver).findElements(By.name(name.toString())); + if (!webElement.isEmpty()) { + return Utils.getWebElementBObject(webElement.get(0)); + } + return Utils.noSuchElementError("NAME", name.toString()); + } catch (Exception e) { + return Utils.getBError(e.getMessage(), e); + } + } + + public static Object findByLinkText(BObject webDriver, BString linkText) { + try { + List webElement = Utils.getDriverNObject(webDriver) + .findElements(By.linkText(linkText.toString())); + if (!webElement.isEmpty()) { + return Utils.getWebElementBObject(webElement.get(0)); + } + return Utils.noSuchElementError("LINK_TEXT", linkText.toString()); + } catch (Exception e) { + return Utils.getBError(e.getMessage(), e); + } + } + + public static Object findByPartialLinkText(BObject webDriver, BString partialLinkText) { + try { + List webElement = Utils.getDriverNObject(webDriver) + .findElements(By.partialLinkText(partialLinkText.toString())); + if (!webElement.isEmpty()) { + return Utils.getWebElementBObject(webElement.get(0)); + } + return Utils.noSuchElementError("PARTIAL_LINK_TEXT", partialLinkText.toString()); + } catch (Exception e) { + return Utils.getBError(e.getMessage(), e); + } + } + + public static Object findAllByTagName(BObject webDriver, BString tagName) { + try { + List webElements = Utils.getDriverNObject(webDriver) + .findElements(By.tagName(tagName.toString())); + return ValueCreator.createArrayValue(Utils.getWebElementBObjectArr(webElements) + , Utils.getArrayType(WEB_ELEMENT_OBJECT_TYPE)); + } catch (Exception e) { + return Utils.getBError(e.getMessage(), e); + } + } + + public static Object findAllByClassName(BObject webDriver, BString className) { + try { + List webElements = Utils.getDriverNObject(webDriver) + .findElements(By.className(className.toString())); + return ValueCreator.createArrayValue(Utils.getWebElementBObjectArr(webElements) + , Utils.getArrayType(WEB_ELEMENT_OBJECT_TYPE)); + } catch (Exception e) { + return Utils.getBError(e.getMessage(), e); + } + } + + public static Object findAllByCssSelector(BObject webDriver, BString cssSelector) { + try { + List webElements = Utils.getDriverNObject(webDriver) + .findElements(By.cssSelector(cssSelector.toString())); + return ValueCreator.createArrayValue(Utils.getWebElementBObjectArr(webElements) + , Utils.getArrayType(WEB_ELEMENT_OBJECT_TYPE)); + } catch (Exception e) { + return Utils.getBError(e.getMessage(), e); + } + } + + public static Object findAllByLinkText(BObject webDriver, BString linkText) { + try { + List webElements = Utils.getDriverNObject(webDriver) + .findElements(By.linkText(linkText.toString())); + return ValueCreator.createArrayValue(Utils.getWebElementBObjectArr(webElements) + , Utils.getArrayType(WEB_ELEMENT_OBJECT_TYPE)); + } catch (Exception e) { + return Utils.getBError(e.getMessage(), e); + } + } + + public static Object findAllByPartialLinkText(BObject webDriver, BString partialLinkText) { + try { + List webElements = Utils.getDriverNObject(webDriver).findElements( + By.partialLinkText(partialLinkText.toString())); + return ValueCreator.createArrayValue(Utils.getWebElementBObjectArr(webElements) + , Utils.getArrayType(WEB_ELEMENT_OBJECT_TYPE)); + } catch (Exception e) { + return Utils.getBError(e.getMessage(), e); + } + } + + public static Object findAllByXpath(BObject webDriver, BString xpath) { + try { + List webElements = Utils.getDriverNObject(webDriver).findElements(By.xpath(xpath.toString())); + return ValueCreator.createArrayValue(Utils.getWebElementBObjectArr(webElements) + , Utils.getArrayType(WEB_ELEMENT_OBJECT_TYPE)); + } catch (Exception e) { + return Utils.getBError(e.getMessage(), e); + } + } + + public static Object findAllByName(BObject webDriver, BString name) { + try { + List webElements = Utils.getDriverNObject(webDriver).findElements(By.name(name.toString())); + return ValueCreator.createArrayValue(Utils.getWebElementBObjectArr(webElements) + , Utils.getArrayType(WEB_ELEMENT_OBJECT_TYPE)); + } catch (Exception e) { + return Utils.getBError(e.getMessage(), e); + } + } + + public static Object acceptAlert(BObject webDriver) { + try { + Utils.getDriverNObject(webDriver).switchTo().alert().accept(); + return null; + } catch (Exception e) { + return Utils.getBError(e.getMessage(), e); + } + } + + public static Object dismissAlert(BObject webDriver) { + try { + Utils.getDriverNObject(webDriver).switchTo().alert().dismiss(); + return null; + } catch (Exception e) { + return Utils.getBError(e.getMessage(), e); + } + } + + public static Object sendKeysToAlert(BObject webDriver, BString value) { + try { + Utils.getDriverNObject(webDriver).switchTo().alert().sendKeys(value.toString()); + return null; + } catch (Exception e) { + return Utils.getBError(e.getMessage(), e); + } + } + + public static Object getCurrentWindowHandle(BObject webDriver) { + try { + return StringUtils.fromString(Utils.getDriverNObject(webDriver).getWindowHandle()); + } catch (Exception e) { + return Utils.getBError(e.getMessage(), e); + } + } + + public static Object getAllWindowHandles(BObject webDriver) { + try { + Set windows = Utils.getDriverNObject(webDriver).getWindowHandles(); + BString[] bStringWindows = new BString[windows.size()]; + int i = 0; + for (String handle : windows) { + bStringWindows[i++] = StringUtils.fromString(handle); + } + return ValueCreator.createArrayValue(bStringWindows); + } catch (Exception e) { + return Utils.getBError(e.getMessage(), e); + } + } + + public static Object switchToWindowHandle(BObject webDriver, BString windowHandle) { + try { + Utils.getDriverNObject(webDriver).switchTo().window(windowHandle.toString()); + return null; + } catch (Exception e) { + return Utils.getBError(e.getMessage(), e); + } + } + + public static Object closeCurrentWindowHandle(BObject webDriver) { + try { + WebDriver driver = Utils.getDriverNObject(webDriver); + if (driver.getWindowHandles().size() > 1) { + Utils.getDriverNObject(webDriver).close(); + } + return null; + } catch (Exception e) { + return Utils.getBError(e.getMessage(), e); + } + } + + public static Object executeJavascript(BObject webDriver, BString script) { + try { + WebDriver driver = Utils.getDriverNObject(webDriver); + JavascriptExecutor js = (JavascriptExecutor) driver; + js.executeScript(script.toString()); + return null; + } catch (Exception e) { + return Utils.getBError(e.getMessage(), e); + } + } + + public static Object quit(BObject webDriver) { + try { + WebDriver driver = Utils.getDriverNObject(webDriver); + driver.quit(); + return null; + } catch (Exception e) { + return Utils.getBError(e.getMessage(), e); + } + } + +} diff --git a/native/src/main/java/io/xlibb/selenium/SeleniumWebElement.java b/native/src/main/java/io/xlibb/selenium/SeleniumWebElement.java new file mode 100644 index 0000000..602b9ce --- /dev/null +++ b/native/src/main/java/io/xlibb/selenium/SeleniumWebElement.java @@ -0,0 +1,305 @@ +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). +// +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +package io.xlibb.selenium; + +import io.ballerina.runtime.api.creators.ValueCreator; +import io.ballerina.runtime.api.utils.StringUtils; +import io.ballerina.runtime.api.values.BObject; +import io.ballerina.runtime.api.values.BString; +import io.xlibb.selenium.utils.Utils; +import org.openqa.selenium.By; +import org.openqa.selenium.WebElement; + +import java.util.List; + +public class SeleniumWebElement { + + public static final String WEB_ELEMENT_OBJECT = "nativeWebElementObject"; + public static final String WEB_ELEMENT_OBJECT_TYPE = "WebElement"; + + public static Object click(BObject element) { + try { + WebElement nativeElement = (WebElement) element.getNativeData(WEB_ELEMENT_OBJECT); + nativeElement.click(); + return null; + } catch (Exception e) { + return Utils.getBError(e.getMessage(), e); + } + } + + public static Object clear(BObject element) { + try { + WebElement nativeElement = (WebElement) element.getNativeData(WEB_ELEMENT_OBJECT); + nativeElement.clear(); + return null; + } catch (Exception e) { + return Utils.getBError(e.getMessage(), e); + } + } + + public static Object sendKeys(BObject element, BString value) { + try { + WebElement nativeElement = (WebElement) element.getNativeData(WEB_ELEMENT_OBJECT); + nativeElement.sendKeys(value.toString()); + return null; + } catch (Exception e) { + return Utils.getBError(e.getMessage(), e); + } + } + + public static Object getTagName(BObject element) { + try { + WebElement nativeElement = (WebElement) element.getNativeData(WEB_ELEMENT_OBJECT); + return StringUtils.fromString(nativeElement.getTagName()); + } catch (Exception e) { + return Utils.getBError(e.getMessage(), e); + } + } + + public static Object getText(BObject element) { + try { + WebElement nativeElement = (WebElement) element.getNativeData(WEB_ELEMENT_OBJECT); + return StringUtils.fromString(nativeElement.getText()); + } catch (Exception e) { + return Utils.getBError(e.getMessage(), e); + } + } + + public static Object getDomAttribute(BObject element, BString value) { + try { + WebElement nativeElement = (WebElement) element.getNativeData(WEB_ELEMENT_OBJECT); + return StringUtils.fromString(nativeElement.getDomAttribute(value.toString())); + } catch (Exception e) { + return Utils.getBError(e.getMessage(), e); + } + } + + public static Object getDomProperty(BObject element, BString value) { + try { + WebElement nativeElement = (WebElement) element.getNativeData(WEB_ELEMENT_OBJECT); + return StringUtils.fromString(nativeElement.getDomProperty(value.toString())); + } catch (Exception e) { + return Utils.getBError(e.getMessage(), e); + } + } + + public static Object isDisplayed(BObject element) { + try { + WebElement nativeElement = (WebElement) element.getNativeData(WEB_ELEMENT_OBJECT); + return nativeElement.isDisplayed(); + } catch (Exception e) { + return Utils.getBError(e.getMessage(), e); + } + } + + public static Object isEnabled(BObject element) { + try { + WebElement nativeElement = (WebElement) element.getNativeData(WEB_ELEMENT_OBJECT); + return nativeElement.isEnabled(); + } catch (Exception e) { + return Utils.getBError(e.getMessage(), e); + } + } + + public static Object isSelected(BObject element) { + try { + WebElement nativeElement = (WebElement) element.getNativeData(WEB_ELEMENT_OBJECT); + return nativeElement.isSelected(); + } catch (Exception e) { + return Utils.getBError(e.getMessage(), e); + } + } + + public static Object findById(BObject element, BString id) { + try { + WebElement nativeElement = (WebElement) element.getNativeData(WEB_ELEMENT_OBJECT); + List nestedElement = nativeElement.findElements(By.id(id.toString())); + if (!nestedElement.isEmpty()) { + return Utils.getWebElementBObject(nestedElement.get(0)); + } + return Utils.noSuchElementError("ID", id.toString()); + } catch (Exception e) { + return Utils.getBError(e.getMessage(), e); + } + } + + public static Object findByClassName(BObject element, BString className) { + try { + WebElement nativeElement = (WebElement) element.getNativeData(WEB_ELEMENT_OBJECT); + List nestedElement = nativeElement.findElements(By.className(className.toString())); + if (!nestedElement.isEmpty()) { + return Utils.getWebElementBObject(nestedElement.get(0)); + } + return Utils.noSuchElementError("CLASS_NAME", className.toString()); + } catch (Exception e) { + return Utils.getBError(e.getMessage(), e); + } + } + + public static Object findByTagName(BObject element, BString tagName) { + try { + WebElement nativeElement = (WebElement) element.getNativeData(WEB_ELEMENT_OBJECT); + List nestedElement = nativeElement.findElements(By.tagName(tagName.toString())); + if (!nestedElement.isEmpty()) { + return Utils.getWebElementBObject(nestedElement.get(0)); + } + return Utils.noSuchElementError("TAG_NAME", tagName.toString()); + } catch (Exception e) { + return Utils.getBError(e.getMessage(), e); + } + } + + public static Object findByXpath(BObject element, BString xpath) { + WebElement nativeElement = (WebElement) element.getNativeData(WEB_ELEMENT_OBJECT); + List nestedElement = nativeElement.findElements(By.xpath(xpath.toString())); + if (!nestedElement.isEmpty()) { + return Utils.getWebElementBObject(nestedElement.get(0)); + } + return Utils.noSuchElementError("XPATH", xpath.toString()); + } + + public static Object findByCssSelector(BObject element, BString cssSelector) { + try { + WebElement nativeElement = (WebElement) element.getNativeData(WEB_ELEMENT_OBJECT); + List nestedElement = nativeElement.findElements(By.cssSelector(cssSelector.toString())); + if (!nestedElement.isEmpty()) { + return Utils.getWebElementBObject(nestedElement.get(0)); + } + return Utils.noSuchElementError("CSS_SELECTOR", cssSelector.toString()); + } catch (Exception e) { + return Utils.getBError(e.getMessage(), e); + } + } + + public static Object findByName(BObject element, BString name) { + try { + WebElement nativeElement = (WebElement) element.getNativeData(WEB_ELEMENT_OBJECT); + List nestedElement = nativeElement.findElements(By.name(name.toString())); + if (!nestedElement.isEmpty()) { + return Utils.getWebElementBObject(nestedElement.get(0)); + } + return Utils.noSuchElementError("NAME", name.toString()); + } catch (Exception e) { + return Utils.getBError(e.getMessage(), e); + } + } + + public static Object findByLinkText(BObject element, BString linkText) { + try { + WebElement nativeElement = (WebElement) element.getNativeData(WEB_ELEMENT_OBJECT); + List nestedElement = nativeElement.findElements(By.linkText(linkText.toString())); + if (!nestedElement.isEmpty()) { + return Utils.getWebElementBObject(nestedElement.get(0)); + } + return Utils.noSuchElementError("LINK_TEXT", linkText.toString()); + } catch (Exception e) { + return Utils.getBError(e.getMessage(), e); + } + } + + public static Object findByPartialLinkText(BObject element, BString partialLinkText) { + try { + WebElement nativeElement = (WebElement) element.getNativeData(WEB_ELEMENT_OBJECT); + List nestedElement = nativeElement.findElements(By.partialLinkText(partialLinkText.toString())); + if (!nestedElement.isEmpty()) { + return Utils.getWebElementBObject(nestedElement.get(0)); + } + return Utils.noSuchElementError("PARTIAL_LINK_TEXT", partialLinkText.toString()); + } catch (Exception e) { + return Utils.getBError(e.getMessage(), e); + } + } + + public static Object findAllByTagName(BObject element, BString tagName) { + try { + WebElement nativeElement = (WebElement) element.getNativeData(WEB_ELEMENT_OBJECT); + List nestedElements = nativeElement.findElements(By.tagName(tagName.toString())); + return ValueCreator.createArrayValue(Utils.getWebElementBObjectArr(nestedElements), + Utils.getArrayType(WEB_ELEMENT_OBJECT_TYPE)); + } catch (Exception e) { + return Utils.getBError(e.getMessage(), e); + } + } + + public static Object findAllByClassName(BObject element, BString className) { + try { + WebElement nativeElement = (WebElement) element.getNativeData(WEB_ELEMENT_OBJECT); + List nestedElements = nativeElement.findElements(By.className(className.toString())); + return ValueCreator.createArrayValue(Utils.getWebElementBObjectArr(nestedElements), + Utils.getArrayType(WEB_ELEMENT_OBJECT_TYPE)); + } catch (Exception e) { + return Utils.getBError(e.getMessage(), e); + } + } + + public static Object findAllByCssSelector(BObject element, BString cssSelector) { + try { + WebElement nativeElement = (WebElement) element.getNativeData(WEB_ELEMENT_OBJECT); + List nestedElements = nativeElement.findElements(By.cssSelector(cssSelector.toString())); + return ValueCreator.createArrayValue(Utils.getWebElementBObjectArr(nestedElements), + Utils.getArrayType(WEB_ELEMENT_OBJECT_TYPE)); + } catch (Exception e) { + return Utils.getBError(e.getMessage(), e); + } + } + + public static Object findAllByLinkText(BObject element, BString linkText) { + try { + WebElement nativeElement = (WebElement) element.getNativeData(WEB_ELEMENT_OBJECT); + List nestedElements = nativeElement.findElements(By.linkText(linkText.toString())); + return ValueCreator.createArrayValue(Utils.getWebElementBObjectArr(nestedElements), + Utils.getArrayType(WEB_ELEMENT_OBJECT_TYPE)); + } catch (Exception e) { + return Utils.getBError(e.getMessage(), e); + } + } + + public static Object findAllByPartialLinkText(BObject element, BString partialLinkText) { + try { + WebElement nativeElement = (WebElement) element.getNativeData(WEB_ELEMENT_OBJECT); + List nestedElements = nativeElement.findElements(By + .partialLinkText(partialLinkText.toString())); + return ValueCreator.createArrayValue(Utils.getWebElementBObjectArr(nestedElements), + Utils.getArrayType(WEB_ELEMENT_OBJECT_TYPE)); + } catch (Exception e) { + return Utils.getBError(e.getMessage(), e); + } + } + + public static Object findAllByXpath(BObject element, BString xpath) { + try { + WebElement nativeElement = (WebElement) element.getNativeData(WEB_ELEMENT_OBJECT); + List nestedElements = nativeElement.findElements(By.xpath(xpath.toString())); + return ValueCreator.createArrayValue(Utils.getWebElementBObjectArr(nestedElements), + Utils.getArrayType(WEB_ELEMENT_OBJECT_TYPE)); + } catch (Exception e) { + return Utils.getBError(e.getMessage(), e); + } + } + + public static Object findAllByName(BObject element, BString name) { + try { + WebElement nativeElement = (WebElement) element.getNativeData(WEB_ELEMENT_OBJECT); + List nestedElements = nativeElement.findElements(By.name(name.toString())); + return ValueCreator.createArrayValue(Utils.getWebElementBObjectArr(nestedElements), + Utils.getArrayType(WEB_ELEMENT_OBJECT_TYPE)); + } catch (Exception e) { + return Utils.getBError(e.getMessage(), e); + } + } + +} diff --git a/native/src/main/java/io/xlibb/selenium/utils/ModuleUtils.java b/native/src/main/java/io/xlibb/selenium/utils/ModuleUtils.java new file mode 100644 index 0000000..c592455 --- /dev/null +++ b/native/src/main/java/io/xlibb/selenium/utils/ModuleUtils.java @@ -0,0 +1,36 @@ +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). +// +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +package io.xlibb.selenium.utils; + +import io.ballerina.runtime.api.Environment; +import io.ballerina.runtime.api.Module; + +public class ModuleUtils { + + private static Module module; + + private ModuleUtils() { + } + + public static Module getModule() { + return module; + } + + public static void setModule(Environment environment) { + module = environment.getCurrentModule(); + } +} diff --git a/native/src/main/java/io/xlibb/selenium/utils/Utils.java b/native/src/main/java/io/xlibb/selenium/utils/Utils.java new file mode 100644 index 0000000..8594ff2 --- /dev/null +++ b/native/src/main/java/io/xlibb/selenium/utils/Utils.java @@ -0,0 +1,79 @@ +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). +// +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +package io.xlibb.selenium.utils; + +import io.ballerina.runtime.api.creators.ErrorCreator; +import io.ballerina.runtime.api.creators.TypeCreator; +import io.ballerina.runtime.api.creators.ValueCreator; +import io.ballerina.runtime.api.types.ArrayType; +import io.ballerina.runtime.api.types.Type; +import io.ballerina.runtime.api.utils.StringUtils; +import io.ballerina.runtime.api.values.BError; +import io.ballerina.runtime.api.values.BObject; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; + +import java.util.List; + +public class Utils { + + public static final String DRIVER_OBJECT = "nativeDriverObject"; + public static final String WEB_ELEMENT_OBJECT = "nativeWebElementObject"; + public static final String WEB_ELEMENT_OBJECT_TYPE = "WebElement"; + public static final String ERROR_TYPE = "Error"; + + public static WebDriver getDriverNObject(BObject object) { + return (WebDriver) object.getNativeData(DRIVER_OBJECT); + } + + public static BObject getWebElementBObject(WebElement webElement) { + BObject elementBObj = ValueCreator.createObjectValue(ModuleUtils.getModule() + , WEB_ELEMENT_OBJECT_TYPE, (Object) null); + elementBObj.addNativeData(WEB_ELEMENT_OBJECT, webElement); + return elementBObj; + } + + public static BObject[] getWebElementBObjectArr(List webElements) { + BObject[] elementArr = new BObject[webElements.size()]; + for (int i = 0; i < webElements.size(); i++) { + elementArr[i] = getWebElementBObject(webElements.get(i)); + } + return elementArr; + } + + public static ArrayType getArrayType(String objectType) { + Type type = TypeCreator.createObjectType(objectType, ModuleUtils.getModule(), 0); + return TypeCreator.createArrayType(type); + } + + public static BError noSuchElementError(String method, String value) { + String message = "Unable to locate element. Provided {method:" + method + ", value: " + + value + "}"; + return getBError(message); + } + + public static BError getBError(String message) { + return ErrorCreator.createError(ModuleUtils.getModule(), ERROR_TYPE, + StringUtils.fromString(message), null, null); + } + + public static BError getBError(String message, Throwable throwable) { + BError cause = ErrorCreator.createError(throwable); + return ErrorCreator.createError(ModuleUtils.getModule(), ERROR_TYPE, + StringUtils.fromString(message), cause, null); + } +} diff --git a/ballerina/modules/java.io/IOException.bal b/native/src/main/java/module-info.java similarity index 71% rename from ballerina/modules/java.io/IOException.bal rename to native/src/main/java/module-info.java index 34c4806..5ce714a 100644 --- a/ballerina/modules/java.io/IOException.bal +++ b/native/src/main/java/module-info.java @@ -14,11 +14,11 @@ // specific language governing permissions and limitations // under the License. -public const IOEXCEPTION = "IOException"; - -type IOExceptionData record { - string message; -}; - -public type IOException distinct error; - +module io.xlibb.selenium { + requires io.ballerina.runtime; + requires io.ballerina.lang; + requires java.desktop; + requires org.seleniumhq.selenium.chrome_driver; + requires org.seleniumhq.selenium.firefox_driver; + exports io.xlibb.selenium; +} \ No newline at end of file diff --git a/settings.gradle b/settings.gradle index 9f5a35b..6a3cb23 100644 --- a/settings.gradle +++ b/settings.gradle @@ -20,6 +20,9 @@ pluginManagement { plugins { id "net.researchgate.release" version "${releasePluginVersion}" id "io.ballerina.plugin" version "${ballerinaGradlePluginVersion}" + id "com.github.spotbugs-base" version "${spotbugsPluginVersion}" + id "com.github.johnrengelman.shadow" version "${shadowJarPluginVersion}" + id "de.undercouch.download" version "${downloadPluginVersion}" } repositories { @@ -40,9 +43,15 @@ plugins { rootProject.name = 'module-selenium' +include ':checkstyle' include ':selenium-ballerina' +include ':selenium-native' +include ':selenium-examples' +project(':checkstyle').projectDir = file("build-config${File.separator}checkstyle") project(':selenium-ballerina').projectDir = file("ballerina") +project(':selenium-native').projectDir = file("native") +project(':selenium-examples').projectDir = file('examples') gradleEnterprise { buildScan { From 87e1849d6282c3b5be7480637f58f139d384c1fb Mon Sep 17 00:00:00 2001 From: dharshi Date: Sat, 28 Dec 2024 15:31:58 +0530 Subject: [PATCH 15/43] format ballerina files --- ballerina/web_driver.bal | 18 +++++++++--------- ballerina/web_element.bal | 4 ++-- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/ballerina/web_driver.bal b/ballerina/web_driver.bal index 5920e19..9696ba8 100644 --- a/ballerina/web_driver.bal +++ b/ballerina/web_driver.bal @@ -16,7 +16,7 @@ import ballerina/jballerina.java; -type Browser "chrome" | "firefox"; +type Browser "chrome"|"firefox"; # Represents the options for configuring the WebDriver instance. # @@ -71,14 +71,14 @@ public class WebDriver { } external; # Maximizes the browser window to fill the screen. - # + # # + return - Returns `()` if the operation is successful, otherwise an `Error`. public isolated function maximize() returns Error? = @java:Method { 'class: "io.xlibb.selenium.SeleniumWebDriver" } external; # Minimizes the browser window. - # + # # + return - Returns `()` if the operation is successful, otherwise an `Error`. public isolated function minimize() returns Error? = @java:Method { 'class: "io.xlibb.selenium.SeleniumWebDriver" @@ -97,26 +97,26 @@ public class WebDriver { # # + url - The URL to navigate to. # + return - Returns `()` if the operation is successful, otherwise an `Error`. - public isolated function navigateTo(string url) returns Error? = @java:Method { + public isolated function navigateTo(string url) returns Error? = @java:Method { 'class: "io.xlibb.selenium.SeleniumWebDriver" } external; # Navigates the browser back to the previous page in the browsing history. - # + # # + return - Returns `()` if the operation is successful, otherwise an `Error`. public isolated function navigateBack() returns Error? = @java:Method { 'class: "io.xlibb.selenium.SeleniumWebDriver" } external; # Navigates the browser forward to the next page in the browsing history (if available). - # + # # + return - Returns `()` if the operation is successful, otherwise an `Error`. public isolated function navigateForward() returns Error? = @java:Method { 'class: "io.xlibb.selenium.SeleniumWebDriver" } external; # Refreshes the current web page in the browser. - # + # # + return - Returns `()` if the operation is successful, otherwise an `Error`. public isolated function refresh() returns Error? = @java:Method { 'class: "io.xlibb.selenium.SeleniumWebDriver" @@ -308,7 +308,7 @@ public class WebDriver { # Closes the currently active browser window. # # This method closes the window that is currently in focus. If there are multiple windows open, the other windows will remain open. - # + # # + return - Returns `()` if the window is closed successfully, otherwise an `Error`. public isolated function closeCurrentWindowHandle() returns Error? = @java:Method { 'class: "io.xlibb.selenium.SeleniumWebDriver" @@ -325,7 +325,7 @@ public class WebDriver { # Quits the browser session and closes all open browser windows. # # This method ends the current WebDriver session and closes all associated browser windows. - # + # # + return - Returns `()` if the session is closed successfully, otherwise an `Error`. public isolated function quit() returns Error? = @java:Method { 'class: "io.xlibb.selenium.SeleniumWebDriver" diff --git a/ballerina/web_element.bal b/ballerina/web_element.bal index 7c1e7d3..6d87d7d 100644 --- a/ballerina/web_element.bal +++ b/ballerina/web_element.bal @@ -19,14 +19,14 @@ import ballerina/jballerina.java; public class WebElement { # Performs a click action on the specified web element. - # + # # + return - Returns `()` if the click action is successful, otherwise an `Error`. public isolated function click() returns Error? = @java:Method { 'class: "io.xlibb.selenium.SeleniumWebElement" } external; # Clears the value of an input field or text area. - # + # # + return - Returns `()` if the clear action is successful, otherwise an `Error`. public isolated function clear() returns Error? = @java:Method { 'class: "io.xlibb.selenium.SeleniumWebElement" From b35eeb331c89ee25f9fdbacd7f7f62df6d0ad99c Mon Sep 17 00:00:00 2001 From: dharshi Date: Sun, 29 Dec 2024 08:22:35 +0530 Subject: [PATCH 16/43] update markdown files --- README.md | 169 +++++++++++++++++- ballerina/Module.md | 107 ++++++----- ballerina/Package.md | 107 ++++++----- .../student_application_form_filling/main.bal | 167 ++++++++++++----- examples/web_scrapping/main.bal | 29 +-- 5 files changed, 422 insertions(+), 157 deletions(-) diff --git a/README.md b/README.md index 4d82b6e..637a855 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,174 @@ This module automates web applications across various browsers. Selenium interac ## Quickstart -### Web driver +### Import the module + +```ballerina +import xlibb/selenium; +``` + +### Create a new web driver instance + +The core component of Selenium is the `WebDriver`. It is an interface for controlling a web browser instance and communicates with the browser through its native API. + +The constructor of the `WebDriver` takes `BrowserOptions` as an argument, which contains the following options: + +1. `browserName` - Specifies the type of browser to open. Acceptable values are "chrome" or "firefox". The default is "chrome". +2. `url` - The URL of the web application to open in the browser. +3. `headlessMode` - A boolean value indicating whether to run the browser in headless mode (without a GUI). The default is `false`. +4. `incognitoMode` - A boolean value indicating whether to run the browser in incognito mode. The default is `false`. + +```ballerina +// Opens a new Chrome browser instance and navigates to the specified URL. +selenium:WebDriver driver = new ({ + url: "https://central.ballerina.io/" +}); +``` + +### Locating elements + +`WebElement` in selenium represents an element in the DOM, which allows interaction (e.g., click, send keys). + +A locator is a way to identify `WebElement` on a page. Selenium provides support for several location strategies(locators) in WebDriver: + +- **class name**: Locates elements by the value of their `class` attribute. +- **ID**: Locates elements by the value of their `id` attribute. +- **CSS selector**: Locates elements using CSS selectors, which are patterns used to select elements based on their attributes. +- **name**: Locates elements by the value of their `name` attribute. +- **tag name**: Locates elements by their tag name, such as `input`, `div`, etc. +- **XPath**: Locates elements using XPath expressions, which are used to navigate through elements and attributes in an XML document. +- **link text**: Locates anchor elements by the exact text they display. +- **partial link text**: Locates anchor elements by a partial match of the text they display. + +```ballerina +import xlibb/selenium; +import ballerina/io; + +public function main() { + // By ID + selenium:WebElement form = check driver.findById("form"); + + // By Name + selenium:WebElement searchboxByName = check driver.findByName("q"); + + // By CSS Selector + selenium:WebElement searchboxByCss = check driver.findByCssSelector("#form .search-box"); + + // By XPath + selenium:WebElement searchboxByXpath = check driver.findByXpath("//input[@id='search']"); + + // By Class Name + selenium:WebElement searchboxByClassName = check driver.findByClassName("search-box"); + + // By Tag Name + selenium:WebElement searchboxByTagName = check driver.findByTagName("input"); + + // Locating a WebElement inside another WebElement + selenium:WebElement nestedElement = check form.findByName("q"); + + // Locating all elements with same locator + selenium:WebElement[] inputElements = check driver.findAllByTagName("input"); +} + +``` + +### Fetching data over any `WebElement` + +To fetch data from a `WebElement` in Selenium, you can interact with it using various methods depending on the type of data you need. + +1. Text of an element: + +The `getText()` method in Selenium is used to retrieve the visible (i.e., not hidden by CSS) inner text of a `WebElement`. This method is commonly used to extract text from elements such as paragraphs, headings, labels, or any other HTML elements that contain text. + +```ballerina +selenium:WebElement label = check driver.findByClassName("input-label"); +string labelText = check label.getText(); +io:println(labelText); +``` + +2. Attribute value + +The `getDomAttribute` method in Selenium is used to retrieve the value of a specified attribute from a `WebElement`. This method is particularly useful when you need to access the underlying attributes of an element in the DOM (Document Object Model) that are not directly visible on the page. Commonly used to get attributes like value for input fields, href for links, src for images, etc. + +```ballerina +string value = (check driver.findElementById("elementId")).getDomAttribute("value"); // For input fields +string href = (check driver.findElementByTagName("a")).getDomAttribute("href"); // For links +``` + +3. Checking if an element is displayed/enabled/selected: + +```ballerina +selenium:WebElement element = check driver.findById("elementId"); +boolean isDisplayed = check element.isDisplayed(); +boolean isEnabled = check element.isEnabled(); +boolean isSelected = check element.isSelected(); +``` + +### Sending user inputs to `WebElement` + +To send user inputs to `WebElement`s, you can use the `sendKeys()` method, which simulates typing into text-based input fields (like textboxes, textareas, etc.). + +```ballerina +selenium:WebElement element = check driver.findByName("email"); +check element.sendKeys("exmaple@abc.com"); +``` + +### Performing Click event + +To perform a click event on a `WebElement`, you can use the `click()` method on the `WebElement` object. This is commonly used to simulate clicking on buttons, links, checkboxes, radio buttons, or any other clickable elements. + +```ballerina +selenium:WebElement element = check driver.findByClassName("submit-btn"); +check element.click(); +``` + +### Quit the driver + +```ballerina +check driver.quit(); +``` + +### Working with windows and tabs + +**Window handles** are unique identifiers for each browser window or tab. These can be used to programmatically manage multiple windows. + +```ballerina +// Initialize a new WebDriver instance +selenium:WebDriver driver = new ({ + url: "https://the-internet.herokuapp.com/windows" +}); + +// Print the title of the current window. +io:println(driver.getTitle()); // Prints "The Internet" + +// Store the current window handle. +string firstWindow = check driver.getCurrentWindowHandle(); + +// Click on the link that opens a new window/tab. +check (check driver.findByPartialLinkText("Click")).click(); + +// Get handles for all open windows. Currently, there are 2 windows open, +// so this array contains the handles of those 2 windows in the order they were opened. +string[] allWindows = check driver.getAllWindowHandles(); + +// Even though we opened a new window, the driver is still pointing to the first window. To interact with the new window, we need to switch to it using the window handle. +check driver.switchToWindowHandle(allWindows[1]); + +// Print the title of the currrent window. +io:println(driver.getTitle()); // Prints "New Window" + +// Close the second (current) window. +check driver.closeCurrentWindowHandle(); + +// Switch back to the first window. Now the driver is pointing to the first window. +check driver.switchToWindowHandle(firstWindow); + +// Print the title of the current window +io:println(driver.getTitle()); // Prints "The Internet" + +// Quit the driver and close all windows +check driver.quit(); +``` The core component of Selenium is the WebDriver. It is an interface for controlling a web browser instance and communicates with the browser through its native API. diff --git a/ballerina/Module.md b/ballerina/Module.md index 07d0723..1f5197b 100644 --- a/ballerina/Module.md +++ b/ballerina/Module.md @@ -4,42 +4,50 @@ This module automates web applications across various browsers. Selenium interac ## Quickstart -### Web driver - -The core component of Selenium is the WebDriver. It is an interface for controlling a web browser instance and communicates with the browser through its native API. +### Import the module ```ballerina import xlibb/selenium; +``` -public function main() { +### Create a new web driver instance - selenium:WebDriver driver = new (); +The core component of Selenium is the `WebDriver`. It is an interface for controlling a web browser instance and communicates with the browser through its native API. - // Opens a new Chrome browser instance and navigates to the specified URL. - driver.openChrome("https://central.ballerina.io/"); -} +The constructor of the `WebDriver` takes `BrowserOptions` as an argument, which contains the following options: + +1. `browserName` - Specifies the type of browser to open. Acceptable values are "chrome" or "firefox". The default is "chrome". +2. `url` - The URL of the web application to open in the browser. +3. `headlessMode` - A boolean value indicating whether to run the browser in headless mode (without a GUI). The default is `false`. +4. `incognitoMode` - A boolean value indicating whether to run the browser in incognito mode. The default is `false`. + +```ballerina +// Opens a new Chrome browser instance and navigates to the specified URL. +selenium:WebDriver driver = new ({ + url: "https://central.ballerina.io/" +}); ``` ### Locating elements -A locator is a way to identify elements on a page. Selenium provides support for several location strategies in WebDriver, such as class name, ID, CSS selector, name, tag name, and XPath. +`WebElement` in selenium represents an element in the DOM, which allows interaction (e.g., click, send keys). -`WebElement` class: Represents an element in the DOM; allows interaction (e.g., click, send keys). +A locator is a way to identify `WebElement` on a page. Selenium provides support for several location strategies(locators) in WebDriver: -```html - - - - - -``` +- **class name**: Locates elements by the value of their `class` attribute. +- **ID**: Locates elements by the value of their `id` attribute. +- **CSS selector**: Locates elements using CSS selectors, which are patterns used to select elements based on their attributes. +- **name**: Locates elements by the value of their `name` attribute. +- **tag name**: Locates elements by their tag name, such as `input`, `div`, etc. +- **XPath**: Locates elements using XPath expressions, which are used to navigate through elements and attributes in an XML document. +- **link text**: Locates anchor elements by the exact text they display. +- **partial link text**: Locates anchor elements by a partial match of the text they display. ```ballerina import xlibb/selenium; import ballerina/io; public function main() { - // By ID selenium:WebElement form = check driver.findById("form"); @@ -67,56 +75,60 @@ public function main() { ``` -### Fetching data over any web element +### Fetching data over any `WebElement` + +To fetch data from a `WebElement` in Selenium, you can interact with it using various methods depending on the type of data you need. -To fetch data from a web element in Selenium, you can interact with it using various methods depending on the type of data you need. +1. Text of an element: -1. Text of an element (e.g., a paragraph or label): +The `getText()` method in Selenium is used to retrieve the visible (i.e., not hidden by CSS) inner text of a `WebElement`. This method is commonly used to extract text from elements such as paragraphs, headings, labels, or any other HTML elements that contain text. ```ballerina selenium:WebElement label = check driver.findByClassName("input-label"); -string labelText = label.getText(); +string labelText = check label.getText(); io:println(labelText); ``` -2. Attribute value (e.g., value of an input field or the href attribute of a link): +2. Attribute value + +The `getDomAttribute` method in Selenium is used to retrieve the value of a specified attribute from a `WebElement`. This method is particularly useful when you need to access the underlying attributes of an element in the DOM (Document Object Model) that are not directly visible on the page. Commonly used to get attributes like value for input fields, href for links, src for images, etc. ```ballerina string value = (check driver.findElementById("elementId")).getDomAttribute("value"); // For input fields string href = (check driver.findElementByTagName("a")).getDomAttribute("href"); // For links ``` - 3. Checking if an element is displayed/enabled/selected: ```ballerina selenium:WebElement element = check driver.findById("elementId"); -boolean isDisplayed = element.isDisplayed(); -boolean isEnabled = element.isEnabled(); -boolean isSelected = element.isSelected(); +boolean isDisplayed = check element.isDisplayed(); +boolean isEnabled = check element.isEnabled(); +boolean isSelected = check element.isSelected(); ``` +### Sending user inputs to `WebElement` -### Sending user inputs to web element - -To send user inputs to web elements, you can use the `sendKeys()` method, which simulates typing into text-based input fields (like textboxes, textareas, etc.). +To send user inputs to `WebElement`s, you can use the `sendKeys()` method, which simulates typing into text-based input fields (like textboxes, textareas, etc.). ```ballerina -(check driver.findByClassName("search-box")).sendKeys("ballerina"); +selenium:WebElement element = check driver.findByName("email"); +check element.sendKeys("exmaple@abc.com"); ``` ### Performing Click event -To perform a click event on a web element, you can use the `click()` method on the WebElement object. This is commonly used to simulate clicking on buttons, links, checkboxes, radio buttons, or any other clickable elements. +To perform a click event on a `WebElement`, you can use the `click()` method on the `WebElement` object. This is commonly used to simulate clicking on buttons, links, checkboxes, radio buttons, or any other clickable elements. ```ballerina -(check driver.findByClassName("submit-btn")).click(); +selenium:WebElement element = check driver.findByClassName("submit-btn"); +check element.click(); ``` -### Closing the browser +### Quit the driver ```ballerina -driver.quit(); +check driver.quit(); ``` ### Working with windows and tabs @@ -125,31 +137,31 @@ driver.quit(); ```ballerina // Initialize a new WebDriver instance -selenium:WebDriver driver = new (); - -// Open the specified URL in Chrome. -driver.openChrome("https://the-internet.herokuapp.com/windows"); +selenium:WebDriver driver = new ({ + url: "https://the-internet.herokuapp.com/windows" +}); // Print the title of the current window. io:println(driver.getTitle()); // Prints "The Internet" // Store the current window handle. -string firstWindow = driver.getCurrentWindowHandle(); +string firstWindow = check driver.getCurrentWindowHandle(); -// Click on the link that opens a new window. -(check driver.findByPartialLinkText("Click")).click(); +// Click on the link that opens a new window/tab. +check (check driver.findByPartialLinkText("Click")).click(); -// Get handles for all open windows. -string[] allWindows = driver.getAllWindowHandles(); +// Get handles for all open windows. Currently, there are 2 windows open, +// so this array contains the handles of those 2 windows in the order they were opened. +string[] allWindows = check driver.getAllWindowHandles(); -// Switch to the second window. Now the driver is pointing to the new window. +// Even though we opened a new window, the driver is still pointing to the first window. To interact with the new window, we need to switch to it using the window handle. check driver.switchToWindowHandle(allWindows[1]); // Print the title of the currrent window. io:println(driver.getTitle()); // Prints "New Window" // Close the second (current) window. -driver.closeCurrentWindowHandle(); +check driver.closeCurrentWindowHandle(); // Switch back to the first window. Now the driver is pointing to the first window. check driver.switchToWindowHandle(firstWindow); @@ -158,8 +170,7 @@ check driver.switchToWindowHandle(firstWindow); io:println(driver.getTitle()); // Prints "The Internet" // Quit the driver and close all windows -driver.quit(); - +check driver.quit(); ``` ### Selenium IDE for Finding Locators diff --git a/ballerina/Package.md b/ballerina/Package.md index 07d0723..1f5197b 100644 --- a/ballerina/Package.md +++ b/ballerina/Package.md @@ -4,42 +4,50 @@ This module automates web applications across various browsers. Selenium interac ## Quickstart -### Web driver - -The core component of Selenium is the WebDriver. It is an interface for controlling a web browser instance and communicates with the browser through its native API. +### Import the module ```ballerina import xlibb/selenium; +``` -public function main() { +### Create a new web driver instance - selenium:WebDriver driver = new (); +The core component of Selenium is the `WebDriver`. It is an interface for controlling a web browser instance and communicates with the browser through its native API. - // Opens a new Chrome browser instance and navigates to the specified URL. - driver.openChrome("https://central.ballerina.io/"); -} +The constructor of the `WebDriver` takes `BrowserOptions` as an argument, which contains the following options: + +1. `browserName` - Specifies the type of browser to open. Acceptable values are "chrome" or "firefox". The default is "chrome". +2. `url` - The URL of the web application to open in the browser. +3. `headlessMode` - A boolean value indicating whether to run the browser in headless mode (without a GUI). The default is `false`. +4. `incognitoMode` - A boolean value indicating whether to run the browser in incognito mode. The default is `false`. + +```ballerina +// Opens a new Chrome browser instance and navigates to the specified URL. +selenium:WebDriver driver = new ({ + url: "https://central.ballerina.io/" +}); ``` ### Locating elements -A locator is a way to identify elements on a page. Selenium provides support for several location strategies in WebDriver, such as class name, ID, CSS selector, name, tag name, and XPath. +`WebElement` in selenium represents an element in the DOM, which allows interaction (e.g., click, send keys). -`WebElement` class: Represents an element in the DOM; allows interaction (e.g., click, send keys). +A locator is a way to identify `WebElement` on a page. Selenium provides support for several location strategies(locators) in WebDriver: -```html -
- - - -
-``` +- **class name**: Locates elements by the value of their `class` attribute. +- **ID**: Locates elements by the value of their `id` attribute. +- **CSS selector**: Locates elements using CSS selectors, which are patterns used to select elements based on their attributes. +- **name**: Locates elements by the value of their `name` attribute. +- **tag name**: Locates elements by their tag name, such as `input`, `div`, etc. +- **XPath**: Locates elements using XPath expressions, which are used to navigate through elements and attributes in an XML document. +- **link text**: Locates anchor elements by the exact text they display. +- **partial link text**: Locates anchor elements by a partial match of the text they display. ```ballerina import xlibb/selenium; import ballerina/io; public function main() { - // By ID selenium:WebElement form = check driver.findById("form"); @@ -67,56 +75,60 @@ public function main() { ``` -### Fetching data over any web element +### Fetching data over any `WebElement` + +To fetch data from a `WebElement` in Selenium, you can interact with it using various methods depending on the type of data you need. -To fetch data from a web element in Selenium, you can interact with it using various methods depending on the type of data you need. +1. Text of an element: -1. Text of an element (e.g., a paragraph or label): +The `getText()` method in Selenium is used to retrieve the visible (i.e., not hidden by CSS) inner text of a `WebElement`. This method is commonly used to extract text from elements such as paragraphs, headings, labels, or any other HTML elements that contain text. ```ballerina selenium:WebElement label = check driver.findByClassName("input-label"); -string labelText = label.getText(); +string labelText = check label.getText(); io:println(labelText); ``` -2. Attribute value (e.g., value of an input field or the href attribute of a link): +2. Attribute value + +The `getDomAttribute` method in Selenium is used to retrieve the value of a specified attribute from a `WebElement`. This method is particularly useful when you need to access the underlying attributes of an element in the DOM (Document Object Model) that are not directly visible on the page. Commonly used to get attributes like value for input fields, href for links, src for images, etc. ```ballerina string value = (check driver.findElementById("elementId")).getDomAttribute("value"); // For input fields string href = (check driver.findElementByTagName("a")).getDomAttribute("href"); // For links ``` - 3. Checking if an element is displayed/enabled/selected: ```ballerina selenium:WebElement element = check driver.findById("elementId"); -boolean isDisplayed = element.isDisplayed(); -boolean isEnabled = element.isEnabled(); -boolean isSelected = element.isSelected(); +boolean isDisplayed = check element.isDisplayed(); +boolean isEnabled = check element.isEnabled(); +boolean isSelected = check element.isSelected(); ``` +### Sending user inputs to `WebElement` -### Sending user inputs to web element - -To send user inputs to web elements, you can use the `sendKeys()` method, which simulates typing into text-based input fields (like textboxes, textareas, etc.). +To send user inputs to `WebElement`s, you can use the `sendKeys()` method, which simulates typing into text-based input fields (like textboxes, textareas, etc.). ```ballerina -(check driver.findByClassName("search-box")).sendKeys("ballerina"); +selenium:WebElement element = check driver.findByName("email"); +check element.sendKeys("exmaple@abc.com"); ``` ### Performing Click event -To perform a click event on a web element, you can use the `click()` method on the WebElement object. This is commonly used to simulate clicking on buttons, links, checkboxes, radio buttons, or any other clickable elements. +To perform a click event on a `WebElement`, you can use the `click()` method on the `WebElement` object. This is commonly used to simulate clicking on buttons, links, checkboxes, radio buttons, or any other clickable elements. ```ballerina -(check driver.findByClassName("submit-btn")).click(); +selenium:WebElement element = check driver.findByClassName("submit-btn"); +check element.click(); ``` -### Closing the browser +### Quit the driver ```ballerina -driver.quit(); +check driver.quit(); ``` ### Working with windows and tabs @@ -125,31 +137,31 @@ driver.quit(); ```ballerina // Initialize a new WebDriver instance -selenium:WebDriver driver = new (); - -// Open the specified URL in Chrome. -driver.openChrome("https://the-internet.herokuapp.com/windows"); +selenium:WebDriver driver = new ({ + url: "https://the-internet.herokuapp.com/windows" +}); // Print the title of the current window. io:println(driver.getTitle()); // Prints "The Internet" // Store the current window handle. -string firstWindow = driver.getCurrentWindowHandle(); +string firstWindow = check driver.getCurrentWindowHandle(); -// Click on the link that opens a new window. -(check driver.findByPartialLinkText("Click")).click(); +// Click on the link that opens a new window/tab. +check (check driver.findByPartialLinkText("Click")).click(); -// Get handles for all open windows. -string[] allWindows = driver.getAllWindowHandles(); +// Get handles for all open windows. Currently, there are 2 windows open, +// so this array contains the handles of those 2 windows in the order they were opened. +string[] allWindows = check driver.getAllWindowHandles(); -// Switch to the second window. Now the driver is pointing to the new window. +// Even though we opened a new window, the driver is still pointing to the first window. To interact with the new window, we need to switch to it using the window handle. check driver.switchToWindowHandle(allWindows[1]); // Print the title of the currrent window. io:println(driver.getTitle()); // Prints "New Window" // Close the second (current) window. -driver.closeCurrentWindowHandle(); +check driver.closeCurrentWindowHandle(); // Switch back to the first window. Now the driver is pointing to the first window. check driver.switchToWindowHandle(firstWindow); @@ -158,8 +170,7 @@ check driver.switchToWindowHandle(firstWindow); io:println(driver.getTitle()); // Prints "The Internet" // Quit the driver and close all windows -driver.quit(); - +check driver.quit(); ``` ### Selenium IDE for Finding Locators diff --git a/examples/student_application_form_filling/main.bal b/examples/student_application_form_filling/main.bal index faa4d5a..32ef041 100644 --- a/examples/student_application_form_filling/main.bal +++ b/examples/student_application_form_filling/main.bal @@ -16,84 +16,157 @@ import ballerina/io; import ballerina/lang.runtime; - import xlibb/selenium; public function main() returns error? { Data data = check getData(); - selenium:WebDriver driver = new (); - driver.openChrome("https://ballerina-ipa.choreoapps.dev/student-application"); - driver.maximize(); + selenium:WebDriver driver = check new ({ + url: "https://ballerina-ipa.choreoapps.dev/student-application" + }); + + check driver.maximize(); runtime:sleep(2); + + // 1. Personal details + selenium:WebElement fullNameElement = check driver.findById("fullName"); + check fullNameElement.sendKeys(data.fullName); + + selenium:WebElement nameWithInitialsElement = check driver.findById("nameWithInitials"); + check nameWithInitialsElement.sendKeys(data.nameWithInitials); + + selenium:WebElement dobElement = check driver.findById("dob"); + check dobElement.sendKeys(data.dob); + + selenium:WebElement ageElement = check driver.findById("age"); + check ageElement.sendKeys(data.age); + + selenium:WebElement nationalityElement = check driver.findById("nationality"); + check nationalityElement.sendKeys(data.nationality); + + selenium:WebElement genderElement = check driver.findById(data.gender); + check genderElement.click(); - (check driver.findById("fullName")).sendKeys(data.fullName); - (check driver.findById("nameWithInitials")).sendKeys(data.nameWithInitials); - (check driver.findById("dob")).sendKeys(data.dob); - (check driver.findById("age")).sendKeys(data.age); - (check driver.findById("nationality")).sendKeys(data.nationality); - (check driver.findById(data.gender)).click(); - (check driver.findById("address")).sendKeys(data.address); - (check driver.findById("mobile")).sendKeys(data.mobile); - (check driver.findById("district")).sendKeys(data.district); - (check driver.findById("gramaSevaka")).sendKeys(data.gramaSevaka); - (check driver.findById("nic")).sendKeys(data.nic ?: ""); - (check driver.findById("passport")).sendKeys(data.passport ?: ""); + selenium:WebElement addressElement = check driver.findById("address"); + check addressElement.sendKeys(data.address); + + selenium:WebElement mobileElement = check driver.findById("mobile"); + check mobileElement.sendKeys(data.mobile); + + selenium:WebElement districtElement = check driver.findById("district"); + check districtElement.sendKeys(data.district); + + selenium:WebElement gramaSevakaElement = check driver.findById("gramaSevaka"); + check gramaSevakaElement.sendKeys(data.gramaSevaka); + + selenium:WebElement nicElement = check driver.findById("nic"); + check nicElement.sendKeys(data.nic ?: ""); + + selenium:WebElement passportElement = check driver.findById("passport"); + check passportElement.sendKeys(data.passport ?: ""); // 2. Emergency contact - (check driver.findById("emer-name")).sendKeys(data.emergency.name); - (check driver.findById("emer-address")).sendKeys(data.emergency.address); - (check driver.findById("emer-mobile")).sendKeys(data.emergency.mobile); - (check driver.findById("relationship")).sendKeys(data.emergency.relationship); - (check driver.findById("emer-email")).sendKeys(data.emergency.email); + selenium:WebElement emerNameElement = check driver.findById("emer-name"); + check emerNameElement.sendKeys(data.emergency.name); + + selenium:WebElement emerAddressElement = check driver.findById("emer-address"); + check emerAddressElement.sendKeys(data.emergency.address); + + selenium:WebElement emerMobileElement = check driver.findById("emer-mobile"); + check emerMobileElement.sendKeys(data.emergency.mobile); + + selenium:WebElement relationshipElement = check driver.findById("relationship"); + check relationshipElement.sendKeys(data.emergency.relationship); + + selenium:WebElement emerEmailElement = check driver.findById("emer-email"); + check emerEmailElement.sendKeys(data.emergency.email); // 3. O/L results - (check driver.findById("ol-school")).sendKeys(data.olResults.school); - (check driver.findById("ol-year")).sendKeys(data.olResults.year); - (check driver.findById("ol-index")).sendKeys(data.olResults.index); + selenium:WebElement olSchoolElement = check driver.findById("ol-school"); + check olSchoolElement.sendKeys(data.olResults.school); + + selenium:WebElement olYearElement = check driver.findById("ol-year"); + check olYearElement.sendKeys(data.olResults.year); + + selenium:WebElement olIndexElement = check driver.findById("ol-index"); + check olIndexElement.sendKeys(data.olResults.index); + + selenium:WebElement olSubjectElement = check driver.findById("ol-subject"); + selenium:WebElement olGradeElement = check driver.findById("ol-grade"); + selenium:WebElement addOlResultElement = check driver.findById("add-ol-result"); + foreach ResultsItem item in data.olResults.results { - (check driver.findById("ol-subject")).sendKeys(item.subject); - (check driver.findById("ol-grade")).sendKeys(item.grade); - (check driver.findById("add-ol-result")).click(); + check olSubjectElement.sendKeys(item.subject); + check olGradeElement.sendKeys(item.grade); + check addOlResultElement.click(); } // 4. A/L results - (check driver.findById("al-school")).sendKeys(data.alResults.school); - (check driver.findById("al-year")).sendKeys(data.alResults.year); - (check driver.findById("al-index")).sendKeys(data.alResults.index); - (check driver.findById("zScore")).sendKeys(data.alResults.zScore); + selenium:WebElement alSchoolElement = check driver.findById("al-school"); + check alSchoolElement.sendKeys(data.alResults.school); + + selenium:WebElement alYearElement = check driver.findById("al-year"); + check alYearElement.sendKeys(data.alResults.year); + + selenium:WebElement alIndexElement = check driver.findById("al-index"); + check alIndexElement.sendKeys(data.alResults.index); + + selenium:WebElement zScoreElement = check driver.findById("zScore"); + check zScoreElement.sendKeys(data.alResults.zScore); + + selenium:WebElement alSubjectElement = check driver.findById("al-subject"); + selenium:WebElement alGradeElement = check driver.findById("al-grade"); + selenium:WebElement addAlResultElement = check driver.findById("add-al-result"); foreach ResultsItem item in data.alResults.results { - (check driver.findById("al-subject")).sendKeys(item.subject); - (check driver.findById("al-grade")).sendKeys(item.grade); - (check driver.findById("add-al-result")).click(); + check alSubjectElement.sendKeys(item.subject); + check alGradeElement.sendKeys(item.grade); + check addAlResultElement.click(); } // 5. Other qualifications + selenium:WebElement courseElement = check driver.findById("course"); + selenium:WebElement nvqElement = check driver.findById("nvq"); + selenium:WebElement instituteElement = check driver.findById("institute"); + selenium:WebElement nvqYearElement = check driver.findById("nvq-year"); + selenium:WebElement nvqResultElement = check driver.findById("nvq-result"); + selenium:WebElement addNvqResultElement = check driver.findById("add-nvq-result"); + foreach OtherQualificationsItem item in data.otherQualifications { - (check driver.findById("course")).sendKeys(item.course); - (check driver.findById("nvq")).sendKeys(item.nvqLevel); - (check driver.findById("institute")).sendKeys(item.institute); - (check driver.findById("nvq-year")).sendKeys(item.year); - (check driver.findById("nvq-result")).sendKeys(item.result); - (check driver.findById("add-nvq-result")).click(); + check courseElement.sendKeys(item.course); + check nvqElement.sendKeys(item.nvqLevel); + check instituteElement.sendKeys(item.institute); + check nvqYearElement.sendKeys(item.year); + check nvqResultElement.sendKeys(item.result); + check addNvqResultElement.click(); } // 6. Extra curricular activities - (check driver.findById("extra-activities")).sendKeys(data.extraCurricularActivities); + selenium:WebElement extraActivitiesElement = check driver.findById("extra-activities"); + check extraActivitiesElement.sendKeys(data.extraCurricularActivities); // 7. References + selenium:WebElement refreeNameElement = check driver.findById("refree-name"); + selenium:WebElement designationElement = check driver.findById("designation"); + selenium:WebElement refreeAddressElement = check driver.findById("refree-address"); + selenium:WebElement refreeMobileElement = check driver.findById("refree-mobile"); + selenium:WebElement addRefreeElement = check driver.findById("add-refree"); + foreach RefreesItem item in data.refrees { - (check driver.findById("refree-name")).sendKeys(item.name); - (check driver.findById("designation")).sendKeys(item.designation); - (check driver.findById("refree-address")).sendKeys(item.address); - (check driver.findById("refree-mobile")).sendKeys(item.mobile); - (check driver.findById("add-refree")).click(); + check refreeNameElement.sendKeys(item.name); + check designationElement.sendKeys(item.designation); + check refreeAddressElement.sendKeys(item.address); + check refreeMobileElement.sendKeys(item.mobile); + check addRefreeElement.click(); } // submit button - (check driver.findById("submit")).click(); + selenium:WebElement submitButtonElement = check driver.findById("submit"); + check submitButtonElement.click(); + + // close the browser + check driver.quit(); io:println("Data entered successfully!"); diff --git a/examples/web_scrapping/main.bal b/examples/web_scrapping/main.bal index 0c146e0..f5fdb4f 100644 --- a/examples/web_scrapping/main.bal +++ b/examples/web_scrapping/main.bal @@ -21,40 +21,43 @@ import xlibb/selenium; public function main() returns error? { - selenium:WebDriver driver = new (); - driver.openChrome("http://books.toscrape.com/"); - driver.maximize(); + selenium:WebDriver driver = check new ({ + url: "http://books.toscrape.com/" + }); + check driver.maximize(); runtime:sleep(2); string category = "Science"; selenium:WebElement|error categoryLink = driver.findByPartialLinkText(category); if (categoryLink is error) { io:println(`Invalid category name: ${category}`); - driver.quit(); + check driver.quit(); return; } - categoryLink.click(); + check categoryLink.click(); runtime:sleep(2); - selenium:WebElement[] results = driver.findAllByClassName("product_pod"); + selenium:WebElement[] results = check driver.findAllByClassName("product_pod"); if (results.length() == 0) { io:println("No results found for category " + category); } + int count = 0; foreach selenium:WebElement result in results { + count = count + 1; selenium:WebElement itemPageLink = check result.findByCssSelector("h3 > a"); - itemPageLink.click(); + check itemPageLink.click(); runtime:sleep(1); selenium:WebElement itemContent = check driver.findByClassName("product_main"); - string bookName = (check itemContent.findByTagName("h1")).getText(); - string price = (check itemContent.findByClassName("price_color")).getText(); - string availability = (check itemContent.findByClassName("availability")).getText(); + string bookName = check (check itemContent.findByTagName("h1")).getText(); + string price = check (check itemContent.findByClassName("price_color")).getText(); + string availability = check (check itemContent.findByClassName("availability")).getText(); - io:println(string `Name: ${bookName}, Price: ${price}, Availability: ${availability}` + "\n"); - driver.navigateBack(); + io:println(string `${count}. Name: ${bookName}, Price: ${price}, Availability: ${availability}` + "\n"); + check driver.navigateBack(); runtime:sleep(1); } - driver.quit(); + check driver.quit(); } From cb1b2bc6867e93a1ced6569a0a90c58f841937c4 Mon Sep 17 00:00:00 2001 From: dharshi Date: Thu, 2 Jan 2025 09:49:57 +0530 Subject: [PATCH 17/43] update CODEOWNERS --- .github/CODEOWNERS | 2 +- ballerina/tests/web_driver_test.bal | 13 ++++++------- .../student_application_form_filling/Ballerina.toml | 6 ------ examples/student_application_form_filling/README.md | 4 ++-- examples/web_scrapping/Ballerina.toml | 6 ------ examples/web_scrapping/README.md | 4 ++-- 6 files changed, 11 insertions(+), 24 deletions(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index d5cc794..97bb679 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -3,5 +3,5 @@ # See: https://help.github.com/articles/about-codeowners/ -# TODO: Add code owners # These owners will be the default owners for everything in the repo. +* @DharshiBalasubramaniyam @shafreenAnfar @daneshk @ThisaruGuruge diff --git a/ballerina/tests/web_driver_test.bal b/ballerina/tests/web_driver_test.bal index 55f9ec3..1afbaa0 100644 --- a/ballerina/tests/web_driver_test.bal +++ b/ballerina/tests/web_driver_test.bal @@ -18,22 +18,17 @@ import ballerina/lang.runtime; import ballerina/test; string url = "https://ballerina-ipa.choreoapps.dev"; -// string url = "http://localhost:5173"; WebDriver chromeDriver = check new ({ - headlessMode: false, + headlessMode: true, url: url + "/complex-dom", browserName: "chrome" }); WebDriver firefoxDriver = check new ({ - headlessMode: false, + headlessMode: true, url: url + "/complex-dom", browserName: "firefox" }); -function driverProvider() returns WebDriver[][] { - return [[chromeDriver], [firefoxDriver]]; -} - @test:Config function testInvalidBrowserName() { WebDriver|error driver = new ({ @@ -499,3 +494,7 @@ function validateFindAll(WebElement[]|Error elements, int expectedCount) { test:assertEquals(elements.length(), expectedCount, "Element count mismatched"); } } + +function driverProvider() returns WebDriver[][] { + return [[chromeDriver], [firefoxDriver]]; +} diff --git a/examples/student_application_form_filling/Ballerina.toml b/examples/student_application_form_filling/Ballerina.toml index 76d2adc..b4fedc2 100644 --- a/examples/student_application_form_filling/Ballerina.toml +++ b/examples/student_application_form_filling/Ballerina.toml @@ -6,9 +6,3 @@ distribution = "2201.10.2" [build-options] observabilityIncluded = true - -[[dependency]] -org = "xlibb" -name = "selenium" -version = "0.1.0" -repository = "local" diff --git a/examples/student_application_form_filling/README.md b/examples/student_application_form_filling/README.md index a2eb075..1c11275 100644 --- a/examples/student_application_form_filling/README.md +++ b/examples/student_application_form_filling/README.md @@ -1,4 +1,4 @@ -# Automating the Filling of Student Application Form. +# Automating the Filling of Student Application Form ## Overview This guide demonstrates automating the process of filling out student application forms using the Ballerina Selenium module. @@ -11,4 +11,4 @@ For this task, we use sample JSON data available in [this file](./modules/resour ```ballerina cd .\examples\student_application_form_filling bal run -``` \ No newline at end of file +``` diff --git a/examples/web_scrapping/Ballerina.toml b/examples/web_scrapping/Ballerina.toml index 735af03..83487a7 100644 --- a/examples/web_scrapping/Ballerina.toml +++ b/examples/web_scrapping/Ballerina.toml @@ -6,9 +6,3 @@ distribution = "2201.10.2" [build-options] observabilityIncluded = true - -[[dependency]] -org = "xlibb" -name = "selenium" -version = "0.1.0" -repository = "local" diff --git a/examples/web_scrapping/README.md b/examples/web_scrapping/README.md index 461500c..853eb8e 100644 --- a/examples/web_scrapping/README.md +++ b/examples/web_scrapping/README.md @@ -1,4 +1,4 @@ -# Web Scrapping. +# Web Scrapping ## Overview Web scraping is an automated method for extracting large amounts of data from websites. It is one of the most efficient and effective ways to gather data from online sources. This guide demonstrates how to collect information about books from the website http://books.toscrape.com/ using the Selenium module. @@ -8,4 +8,4 @@ Web scraping is an automated method for extracting large amounts of data from we ```ballerina cd .\examples\web_scrapping bal run -``` \ No newline at end of file +``` From c984683c4bffd4fde96b91f91dc57b6d3fa1fb9c Mon Sep 17 00:00:00 2001 From: dharshi Date: Thu, 2 Jan 2025 13:35:47 +0530 Subject: [PATCH 18/43] add BrowserOptions type --- ballerina/tests/web_driver_test.bal | 12 +----------- ballerina/types.bal | 28 ++++++++++++++++++++++++++++ ballerina/web_driver.bal | 15 --------------- 3 files changed, 29 insertions(+), 26 deletions(-) create mode 100644 ballerina/types.bal diff --git a/ballerina/tests/web_driver_test.bal b/ballerina/tests/web_driver_test.bal index 1afbaa0..4a14188 100644 --- a/ballerina/tests/web_driver_test.bal +++ b/ballerina/tests/web_driver_test.bal @@ -29,16 +29,6 @@ WebDriver firefoxDriver = check new ({ browserName: "firefox" }); -@test:Config -function testInvalidBrowserName() { - WebDriver|error driver = new ({ - headlessMode: true, - url: url + "/complex-dom", - browserName: "invalid-browser" - }); - test:assertTrue(driver is error, "Expected error not thrown"); -} - @test:Config function testInvalidURL() { WebDriver|error driver = new ({ @@ -50,7 +40,7 @@ function testInvalidURL() { } @test:Config { - dependsOn: [testInvalidURL, testInvalidBrowserName], + dependsOn: [testInvalidURL], dataProvider: driverProvider } function testGetTitle(WebDriver driver) { diff --git a/ballerina/types.bal b/ballerina/types.bal new file mode 100644 index 0000000..f8111ea --- /dev/null +++ b/ballerina/types.bal @@ -0,0 +1,28 @@ +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com. +// +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +# Represents the options for configuring the WebDriver instance. +# +# + browserName - The type of browser to open (either "chrome" or "firefox"). The default is "chrome". +# + url - The URL of the web application to open in the browser. +# + headlessMode - A boolean value indicating whether to run the browser in headless mode (without a GUI). The default is `false`. +# + incognitoMode - A boolean value indicating whether to run the browser in incognito mode. The default is `false`. +public type BrowserOptions record { + "chrome"|"firefox" browserName = "chrome"; + string url; + boolean headlessMode = false; + boolean incognitoMode = false; +}; diff --git a/ballerina/web_driver.bal b/ballerina/web_driver.bal index 9696ba8..1cdb945 100644 --- a/ballerina/web_driver.bal +++ b/ballerina/web_driver.bal @@ -16,21 +16,6 @@ import ballerina/jballerina.java; -type Browser "chrome"|"firefox"; - -# Represents the options for configuring the WebDriver instance. -# -# + browserName - The type of browser to open (either "chrome" or "firefox"). The default is "chrome". -# + url - The URL of the web application to open in the browser. -# + headlessMode - A boolean value indicating whether to run the browser in headless mode (without a GUI). The default is `false`. -# + incognitoMode - A boolean value indicating whether to run the browser in incognito mode. The default is `false`. -public type BrowserOptions record { - string browserName = "chrome"; - string url; - boolean headlessMode = false; - boolean incognitoMode = false; -}; - public class WebDriver { public isolated function init(BrowserOptions options) returns error? { From 734c106caac270696f58fc14714186ec27521c9e Mon Sep 17 00:00:00 2001 From: dharshi Date: Thu, 2 Jan 2025 13:53:14 +0530 Subject: [PATCH 19/43] fix: correct copyright notice formatting in multiple files --- ballerina/error.bal | 2 +- ballerina/init.bal | 2 +- ballerina/tests/web_driver_test.bal | 2 +- ballerina/types.bal | 2 +- ballerina/web_driver.bal | 2 +- ballerina/web_element.bal | 2 +- examples/student_application_form_filling/main.bal | 3 +-- 7 files changed, 7 insertions(+), 8 deletions(-) diff --git a/ballerina/error.bal b/ballerina/error.bal index cb26cc2..7a75f14 100644 --- a/ballerina/error.bal +++ b/ballerina/error.bal @@ -1,4 +1,4 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com. +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). // // WSO2 LLC. licenses this file to you under the Apache License, // Version 2.0 (the "License"); you may not use this file except diff --git a/ballerina/init.bal b/ballerina/init.bal index 0c60ed0..3a9f907 100644 --- a/ballerina/init.bal +++ b/ballerina/init.bal @@ -1,4 +1,4 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com. +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). // // WSO2 LLC. licenses this file to you under the Apache License, // Version 2.0 (the "License"); you may not use this file except diff --git a/ballerina/tests/web_driver_test.bal b/ballerina/tests/web_driver_test.bal index 4a14188..36aa5c4 100644 --- a/ballerina/tests/web_driver_test.bal +++ b/ballerina/tests/web_driver_test.bal @@ -1,4 +1,4 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com. +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). // WSO2 LLC. licenses this file to you under the Apache License, // Version 2.0 (the "License"); you may not use this file except diff --git a/ballerina/types.bal b/ballerina/types.bal index f8111ea..490ce45 100644 --- a/ballerina/types.bal +++ b/ballerina/types.bal @@ -1,4 +1,4 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com. +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). // // WSO2 LLC. licenses this file to you under the Apache License, // Version 2.0 (the "License"); you may not use this file except diff --git a/ballerina/web_driver.bal b/ballerina/web_driver.bal index 1cdb945..75f12f7 100644 --- a/ballerina/web_driver.bal +++ b/ballerina/web_driver.bal @@ -1,4 +1,4 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com. +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). // // WSO2 LLC. licenses this file to you under the Apache License, // Version 2.0 (the "License"); you may not use this file except diff --git a/ballerina/web_element.bal b/ballerina/web_element.bal index 6d87d7d..4c64256 100644 --- a/ballerina/web_element.bal +++ b/ballerina/web_element.bal @@ -1,4 +1,4 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com. +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). // // WSO2 LLC. licenses this file to you under the Apache License, // Version 2.0 (the "License"); you may not use this file except diff --git a/examples/student_application_form_filling/main.bal b/examples/student_application_form_filling/main.bal index 32ef041..52bed6d 100644 --- a/examples/student_application_form_filling/main.bal +++ b/examples/student_application_form_filling/main.bal @@ -1,4 +1,4 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com. +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). // // WSO2 LLC. licenses this file to you under the Apache License, // Version 2.0 (the "License"); you may not use this file except @@ -171,4 +171,3 @@ public function main() returns error? { io:println("Data entered successfully!"); } - From f853f629d817cb860550f335216b689bac9fc89e Mon Sep 17 00:00:00 2001 From: dharshi Date: Thu, 2 Jan 2025 13:59:50 +0530 Subject: [PATCH 20/43] refactor: replace hardcoded URL with baseUrl variable in web driver tests --- ballerina/tests/web_driver_test.bal | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/ballerina/tests/web_driver_test.bal b/ballerina/tests/web_driver_test.bal index 36aa5c4..080bc4d 100644 --- a/ballerina/tests/web_driver_test.bal +++ b/ballerina/tests/web_driver_test.bal @@ -17,15 +17,15 @@ import ballerina/lang.runtime; import ballerina/test; -string url = "https://ballerina-ipa.choreoapps.dev"; +string baseUrl = "https://ballerina-ipa.choreoapps.dev"; WebDriver chromeDriver = check new ({ headlessMode: true, - url: url + "/complex-dom", + url: baseUrl + "/complex-dom", browserName: "chrome" }); WebDriver firefoxDriver = check new ({ headlessMode: true, - url: url + "/complex-dom", + url: baseUrl + "/complex-dom", browserName: "firefox" }); @@ -33,7 +33,7 @@ WebDriver firefoxDriver = check new ({ function testInvalidURL() { WebDriver|error driver = new ({ headlessMode: true, - url: "invalid-url", + url: "invalid-baseUrl", browserName: "chrome" }); test:assertTrue(driver is error, "Expected error not thrown"); @@ -55,7 +55,7 @@ function testGetTitle(WebDriver driver) { } function testGetCurrentUrl(WebDriver driver) { string|Error actualValue = driver.getCurrentUrl(); - string expectedValue = url + "/complex-dom"; + string expectedValue = baseUrl + "/complex-dom"; test:assertEquals(actualValue, expectedValue, "Current URL mismatched"); } @@ -64,7 +64,7 @@ function testGetCurrentUrl(WebDriver driver) { dataProvider: driverProvider } function testNavigation(WebDriver driver) { - Error? navigationErr = driver.navigateTo(url + "/student-application"); + Error? navigationErr = driver.navigateTo(baseUrl + "/student-application"); if navigationErr is error { test:assertFail(navigationErr.message()); } From 87db3793208235c37874740fa67814f7eaa351bb Mon Sep 17 00:00:00 2001 From: dharshi Date: Tue, 7 Jan 2025 09:00:10 +0530 Subject: [PATCH 21/43] update .gitignore to include 'bin' --- .gitignore | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index a98a807..6093771 100644 --- a/.gitignore +++ b/.gitignore @@ -13,6 +13,7 @@ *.tar.gz *.rar *.deb +bin # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml hs_err_pid* @@ -46,4 +47,4 @@ generated/ build # Ignore Docker env file -**/docker.env \ No newline at end of file +**/docker.env From 692d297226ce673ca63dc42d163d91f89a0693e8 Mon Sep 17 00:00:00 2001 From: dharshi Date: Tue, 7 Jan 2025 09:00:33 +0530 Subject: [PATCH 22/43] refactor: make BrowserOptions closed --- ballerina/types.bal | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ballerina/types.bal b/ballerina/types.bal index 490ce45..55f43ce 100644 --- a/ballerina/types.bal +++ b/ballerina/types.bal @@ -20,9 +20,9 @@ # + url - The URL of the web application to open in the browser. # + headlessMode - A boolean value indicating whether to run the browser in headless mode (without a GUI). The default is `false`. # + incognitoMode - A boolean value indicating whether to run the browser in incognito mode. The default is `false`. -public type BrowserOptions record { +public type BrowserOptions record {| "chrome"|"firefox" browserName = "chrome"; string url; boolean headlessMode = false; boolean incognitoMode = false; -}; +|}; From 44f98402cabc2fd8a19e0f216c625ca5bf09a502 Mon Sep 17 00:00:00 2001 From: dharshi Date: Tue, 7 Jan 2025 09:44:27 +0530 Subject: [PATCH 23/43] Update WebDriver init methods to accept BrowserOptions and add support for additional command-line arguments --- ballerina/types.bal | 2 ++ ballerina/web_driver.bal | 16 +++++------- .../io/xlibb/selenium/SeleniumWebDriver.java | 26 +++++++++++++++---- 3 files changed, 29 insertions(+), 15 deletions(-) diff --git a/ballerina/types.bal b/ballerina/types.bal index 55f43ce..49a1e04 100644 --- a/ballerina/types.bal +++ b/ballerina/types.bal @@ -20,9 +20,11 @@ # + url - The URL of the web application to open in the browser. # + headlessMode - A boolean value indicating whether to run the browser in headless mode (without a GUI). The default is `false`. # + incognitoMode - A boolean value indicating whether to run the browser in incognito mode. The default is `false`. +# + additionalArguments - A list of additional command-line arguments to pass to the browser during initialization. public type BrowserOptions record {| "chrome"|"firefox" browserName = "chrome"; string url; boolean headlessMode = false; boolean incognitoMode = false; + string[] additionalArguments = []; |}; diff --git a/ballerina/web_driver.bal b/ballerina/web_driver.bal index 75f12f7..f1918df 100644 --- a/ballerina/web_driver.bal +++ b/ballerina/web_driver.bal @@ -20,9 +20,9 @@ public class WebDriver { public isolated function init(BrowserOptions options) returns error? { if (options.browserName == "chrome") { - check self.openChrome(options.url, options.headlessMode, options.incognitoMode); + check self.openChrome(options); } else if (options.browserName == "firefox") { - check self.openFirefox(options.url, options.headlessMode, options.incognitoMode); + check self.openFirefox(options); } else { return error("Invalid browser type. Supported browsers are 'chrome' and 'firefox'."); } @@ -30,21 +30,17 @@ public class WebDriver { # Opens a new Chrome browser instance and navigates to the specified URL. # - # + url - The URL of the web application to open in the browser. - # + headless - A boolean value indicating whether to run the browser in headless mode (without a GUI). - # + incognito - A boolean value indicating whether to run the browser in incognito mode. + # + options - Represents options for configuring the WebDriver instance. # + return - Returns an `Error?` if the browser fails to open or navigate to the specified URL. - isolated function openChrome(string url, boolean headless, boolean incognito) returns Error? = @java:Method { + private isolated function openChrome(BrowserOptions options) returns Error? = @java:Method { 'class: "io.xlibb.selenium.SeleniumWebDriver" } external; # Opens a new Firefox browser instance and navigates to the specified URL. # - # + url - The URL of the web application to open in the browser. - # + headless - A boolean value indicating whether to run the browser in headless mode (without a GUI). - # + incognito - A boolean value indicating whether to run the browser in incognito mode. + # + options - Represents options for configuring the WebDriver instance. # + return - Returns an `Error?` if the browser fails to open or navigate to the specified URL. - isolated function openFirefox(string url, boolean headless, boolean incognito) returns Error? = @java:Method { + private isolated function openFirefox(BrowserOptions options) returns Error? = @java:Method { 'class: "io.xlibb.selenium.SeleniumWebDriver" } external; diff --git a/native/src/main/java/io/xlibb/selenium/SeleniumWebDriver.java b/native/src/main/java/io/xlibb/selenium/SeleniumWebDriver.java index 878f372..7e9d4f8 100644 --- a/native/src/main/java/io/xlibb/selenium/SeleniumWebDriver.java +++ b/native/src/main/java/io/xlibb/selenium/SeleniumWebDriver.java @@ -18,6 +18,7 @@ import io.ballerina.runtime.api.creators.ValueCreator; import io.ballerina.runtime.api.utils.StringUtils; +import io.ballerina.runtime.api.values.BMap; import io.ballerina.runtime.api.values.BObject; import io.ballerina.runtime.api.values.BString; import io.xlibb.selenium.utils.Utils; @@ -37,10 +38,14 @@ public class SeleniumWebDriver { public static final String DRIVER_OBJECT = "nativeDriverObject"; - public static final String WEB_ELEMENT_OBJECT = "nativeWebElementObject"; public static final String WEB_ELEMENT_OBJECT_TYPE = "WebElement"; - public static Object openChrome(BObject webDriver, BString url, boolean headless, boolean incognito) { + public static Object openChrome(BObject webDriver, BMap options) { + boolean headless = options.getBooleanValue(StringUtils.fromString("headlessMode")); + String url = options.getStringValue(StringUtils.fromString("url")).toString(); + boolean incognito = options.getBooleanValue(StringUtils.fromString("incognitoMode")); + String[] additionalArguments = options.getArrayValue(StringUtils.fromString("additionalArguments")) + .getStringArray(); if (Utils.getDriverNObject(webDriver) == null) { try { ChromeOptions chromeOptions = new ChromeOptions(); @@ -51,8 +56,11 @@ public static Object openChrome(BObject webDriver, BString url, boolean headless if (incognito) { chromeOptions.addArguments("--incognito"); } + for (String arg: additionalArguments) { + chromeOptions.addArguments(arg); + } webDriver.addNativeData(DRIVER_OBJECT, new ChromeDriver(chromeOptions)); - Utils.getDriverNObject(webDriver).get(url.toString()); + Utils.getDriverNObject(webDriver).get(url); return null; } catch (Exception e) { return Utils.getBError(e.getMessage(), e); @@ -62,7 +70,12 @@ public static Object openChrome(BObject webDriver, BString url, boolean headless "instance before starting a new one."); } - public static Object openFirefox(BObject webDriver, BString url, boolean headless, boolean incognito) { + public static Object openFirefox(BObject webDriver, BMap options) { + boolean headless = options.getBooleanValue(StringUtils.fromString("headlessMode")); + String url = options.getStringValue(StringUtils.fromString("url")).toString(); + boolean incognito = options.getBooleanValue(StringUtils.fromString("incognitoMode")); + String[] additionalArguments = options.getArrayValue(StringUtils.fromString("additionalArguments")) + .getStringArray(); if (Utils.getDriverNObject(webDriver) == null) { try { FirefoxOptions firefoxOptions = new FirefoxOptions(); @@ -72,8 +85,11 @@ public static Object openFirefox(BObject webDriver, BString url, boolean headles if (incognito) { firefoxOptions.addArguments("--incognito"); } + for (String arg: additionalArguments) { + firefoxOptions.addArguments(arg); + } webDriver.addNativeData(DRIVER_OBJECT, new FirefoxDriver(firefoxOptions)); - Utils.getDriverNObject(webDriver).get(url.toString()); + Utils.getDriverNObject(webDriver).get(url); return null; } catch (Exception e) { return Utils.getBError(e.getMessage(), e); From 7995c5046df3b8528b7f78e567f29d7271ece6ad Mon Sep 17 00:00:00 2001 From: dharshi Date: Tue, 7 Jan 2025 09:53:27 +0530 Subject: [PATCH 24/43] refactor: replace if-else with match statement in WebDriver init method --- ballerina/web_driver.bal | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/ballerina/web_driver.bal b/ballerina/web_driver.bal index f1918df..b525731 100644 --- a/ballerina/web_driver.bal +++ b/ballerina/web_driver.bal @@ -14,17 +14,27 @@ // specific language governing permissions and limitations // under the License. +// replace with match ifelse in init +// create seperate classes for errors +// make browser options closed ---------------------------------------------------------- done +// introduce additional arguments in browser options ------------------------------------ done +// pass brpwser options record itself for the native ------------------------------------ done +// check disable gpu +// update build.gradle for libs instead connectors for both sel and si +// update workflows for both sel and si + import ballerina/jballerina.java; public class WebDriver { public isolated function init(BrowserOptions options) returns error? { - if (options.browserName == "chrome") { - check self.openChrome(options); - } else if (options.browserName == "firefox") { - check self.openFirefox(options); - } else { - return error("Invalid browser type. Supported browsers are 'chrome' and 'firefox'."); + match options.browserName { + "chrome" => { + return check self.openChrome(options); + } + "firefox" => { + return check self.openFirefox(options); + } } } From 80e781748ae759a1e31c617464366f5ae032c25c Mon Sep 17 00:00:00 2001 From: dharshi Date: Tue, 7 Jan 2025 10:02:16 +0530 Subject: [PATCH 25/43] Update workflows --- .../worflows/build-with-bal-test-graalvm.yml | 18 ---- .github/worflows/ci.yml | 19 ----- .github/worflows/daily-build.yml | 15 ---- .github/worflows/dev-stg-release.yml | 22 ----- .github/worflows/pull-request.yml | 17 ---- .github/worflows/release.yml | 17 ---- .github/worflows/trivy-scan.yml | 14 ---- .../workflows/build-timestamped-master.yml | 56 +++++++++++++ .../workflows/build-with-bal-test-graalvm.yml | 37 +++++++++ .github/workflows/central-publish.yml | 45 ++++++++++ .github/workflows/publish-release.yml | 83 +++++++++++++++++++ .github/workflows/pull-request.yml | 51 ++++++++++++ .github/workflows/trivy-scan.yml | 36 ++++++++ 13 files changed, 308 insertions(+), 122 deletions(-) delete mode 100644 .github/worflows/build-with-bal-test-graalvm.yml delete mode 100644 .github/worflows/ci.yml delete mode 100644 .github/worflows/daily-build.yml delete mode 100644 .github/worflows/dev-stg-release.yml delete mode 100644 .github/worflows/pull-request.yml delete mode 100644 .github/worflows/release.yml delete mode 100644 .github/worflows/trivy-scan.yml create mode 100644 .github/workflows/build-timestamped-master.yml create mode 100644 .github/workflows/build-with-bal-test-graalvm.yml create mode 100644 .github/workflows/central-publish.yml create mode 100644 .github/workflows/publish-release.yml create mode 100644 .github/workflows/pull-request.yml create mode 100644 .github/workflows/trivy-scan.yml diff --git a/.github/worflows/build-with-bal-test-graalvm.yml b/.github/worflows/build-with-bal-test-graalvm.yml deleted file mode 100644 index 6314373..0000000 --- a/.github/worflows/build-with-bal-test-graalvm.yml +++ /dev/null @@ -1,18 +0,0 @@ -name: GraalVM Check - -on: - schedule: - - cron: "30 18 * * *" - workflow_dispatch: - -concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }} - cancel-in-progress: true - -jobs: - call_stdlib_workflow: - name: Run StdLib Workflow - if: ${{ github.event_name != 'schedule' || (github.event_name == 'schedule' && github.repository_owner == 'ballerina-platform') }} - uses: ballerina-platform/ballerina-library/.github/workflows/build-with-bal-test-graalvm-connector-template.yml@main - secrets: inherit - \ No newline at end of file diff --git a/.github/worflows/ci.yml b/.github/worflows/ci.yml deleted file mode 100644 index b620f87..0000000 --- a/.github/worflows/ci.yml +++ /dev/null @@ -1,19 +0,0 @@ -name: Build - -on: - push: - branches: - - main - - 2201.[0-9]+.x - repository_dispatch: - types: check_connector_for_breaking_changes - -jobs: - call_workflow: - name: Run Connector Build Workflow - if: ${{ github.repository_owner == 'ballerina-platform' }} - uses: ballerina-platform/ballerina-library/.github/workflows/build-connector-template.yml@main - secrets: inherit - with: - repo-name: module-selenium - \ No newline at end of file diff --git a/.github/worflows/daily-build.yml b/.github/worflows/daily-build.yml deleted file mode 100644 index ea618d7..0000000 --- a/.github/worflows/daily-build.yml +++ /dev/null @@ -1,15 +0,0 @@ -name: Daily build - -on: - schedule: - - cron: "30 2 * * *" - -jobs: - call_workflow: - name: Run Daily Build Workflow - if: ${{ github.repository_owner == 'ballerina-platform' }} - uses: ballerina-platform/ballerina-library/.github/workflows/daily-build-connector-template.yml@main - secrets: inherit - with: - repo-name: module-selenium - \ No newline at end of file diff --git a/.github/worflows/dev-stg-release.yml b/.github/worflows/dev-stg-release.yml deleted file mode 100644 index 5c06fb0..0000000 --- a/.github/worflows/dev-stg-release.yml +++ /dev/null @@ -1,22 +0,0 @@ -name: Publish to the Ballerina Dev\Stage Central - -on: - workflow_dispatch: - inputs: - environment: - type: choice - description: Select Environment - required: true - options: - - DEV CENTRAL - - STAGE CENTRAL - -jobs: - call_workflow: - name: Run Dev\Stage Central Publish Workflow - if: ${{ github.repository_owner == 'ballerina-platform' }} - uses: ballerina-platform/ballerina-library/.github/workflows/dev-stage-central-publish-connector-template.yml@main - secrets: inherit - with: - environment: ${{ github.event.inputs.environment }} - \ No newline at end of file diff --git a/.github/worflows/pull-request.yml b/.github/worflows/pull-request.yml deleted file mode 100644 index dc3176f..0000000 --- a/.github/worflows/pull-request.yml +++ /dev/null @@ -1,17 +0,0 @@ -name: PR Build - -concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }} - cancel-in-progress: true - -on: pull_request - -jobs: - call_workflow: - name: Run PR Build Workflow - if: ${{ github.repository_owner == 'ballerina-platform' }} - uses: ballerina-platform/ballerina-library/.github/workflows/pr-build-connector-template.yml@main - secrets: inherit - with: - additional-test-flags: ${{ github.event.pull_request.head.repo.full_name != github.repository && '-x test' || ''}} - \ No newline at end of file diff --git a/.github/worflows/release.yml b/.github/worflows/release.yml deleted file mode 100644 index 70bc52d..0000000 --- a/.github/worflows/release.yml +++ /dev/null @@ -1,17 +0,0 @@ -name: Publish Release - -on: - workflow_dispatch: - repository_dispatch: - types: [ stdlib-release-pipeline ] - -jobs: - call_workflow: - name: Run Release Workflow - if: ${{ github.repository_owner == 'ballerina-platform' }} - uses: ballerina-platform/ballerina-library/.github/workflows/release-package-connector-template.yml@main - secrets: inherit - with: - package-name: selenium - package-org: xlibb - \ No newline at end of file diff --git a/.github/worflows/trivy-scan.yml b/.github/worflows/trivy-scan.yml deleted file mode 100644 index 87f91f2..0000000 --- a/.github/worflows/trivy-scan.yml +++ /dev/null @@ -1,14 +0,0 @@ -name: Trivy - -on: - workflow_dispatch: - schedule: - - cron: "30 20 * * *" - -jobs: - call_workflow: - name: Run Trivy Scan Workflow - if: ${{ github.repository_owner == 'ballerina-platform' }} - uses: ballerina-platform/ballerina-library/.github/workflows/trivy-scan-template.yml@main - secrets: inherit - \ No newline at end of file diff --git a/.github/workflows/build-timestamped-master.yml b/.github/workflows/build-timestamped-master.yml new file mode 100644 index 0000000..af09565 --- /dev/null +++ b/.github/workflows/build-timestamped-master.yml @@ -0,0 +1,56 @@ +name: Build + +on: + push: + branches: + - main + paths-ignore: + - '*.md' + - 'docs/**' + - 'load-tests/**' + + workflow_dispatch: + +jobs: + build: + runs-on: ubuntu-latest + if: github.repository_owner == 'xlibb' + steps: + - name: Checkout Repository + uses: actions/checkout@v2 + + - name: Set up JDK 17 + uses: actions/setup-java@v2 + with: + distribution: 'temurin' + java-version: 17.0.7 + + - name: Change to Timestamped Version + run: | + startTime=$(TZ="Asia/Kolkata" date +'%Y%m%d-%H%M00') + latestCommit=$(git log -n 1 --pretty=format:"%h") + VERSION=$((grep -w 'version' | cut -d= -f2) < gradle.properties | rev | cut --complement -d- -f1 | rev) + updatedVersion=$VERSION-$startTime-$latestCommit + echo $updatedVersion + sed -i "s/version=\(.*\)/version=$updatedVersion/g" gradle.properties + + - name: Grant execute permission for gradlew + run: chmod +x gradlew + + - name: Build with Gradle + env: + packageUser: ${{ secrets.BALLERINA_BOT_USERNAME }} + packagePAT: ${{ secrets.BALLERINA_BOT_TOKEN }} + publishUser: ${{ secrets.BALLERINA_BOT_USERNAME }} + publishPAT: ${{ secrets.BALLERINA_BOT_TOKEN }} + run: ./gradlew publish --no-daemon --scan + + - name: Generate Codecov Report + uses: codecov/codecov-action@v3 + with: + token: ${{ secrets.CODECOV_TOKEN }} + - name: Upload Artifact + uses: actions/upload-artifact@v4 + with: + name: ballerina-runtime + path: target/ballerina-runtime/ diff --git a/.github/workflows/build-with-bal-test-graalvm.yml b/.github/workflows/build-with-bal-test-graalvm.yml new file mode 100644 index 0000000..eda657d --- /dev/null +++ b/.github/workflows/build-with-bal-test-graalvm.yml @@ -0,0 +1,37 @@ +name: GraalVM Check + +on: + workflow_dispatch: + inputs: + lang_tag: + description: Branch/Release Tag of the Ballerina Lang + required: true + default: master + lang_version: + description: Ballerina Lang Version (If given ballerina lang build will be skipped) + required: false + default: '' + native_image_options: + description: Default native-image options + required: false + default: '' + schedule: + - cron: '30 18 * * *' + pull_request: + branches: + - main + types: [ opened, synchronize, reopened, labeled, unlabeled ] + +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }} + cancel-in-progress: true + +jobs: + call_stdlib_workflow: + name: Run StdLib Workflow + if: ${{ github.event_name != 'schedule' || (github.event_name == 'schedule' && github.repository_owner == 'ballerina-platform') }} + uses: ballerina-platform/ballerina-standard-library/.github/workflows/build-with-bal-test-graalvm-template.yml@main + with: + lang_tag: ${{ inputs.lang_tag }} + lang_version: ${{ inputs.lang_version }} + native_image_options: '-J-Xmx7G ${{ inputs.native_image_options }}' diff --git a/.github/workflows/central-publish.yml b/.github/workflows/central-publish.yml new file mode 100644 index 0000000..116c887 --- /dev/null +++ b/.github/workflows/central-publish.yml @@ -0,0 +1,45 @@ +name: Publish to the Ballerina central + +on: + workflow_dispatch: + +jobs: + publish-release: + runs-on: ubuntu-latest + if: github.repository_owner == 'xlibb' + steps: + - name: Checkout Repository + uses: actions/checkout@v2 + + - name: Set up JDK 17 + uses: actions/setup-java@v2 + with: + distribution: 'temurin' + java-version: 17.0.7 + + - name: Build with Gradle + env: + packageUser: ${{ github.actor }} + packagePAT: ${{ secrets.GITHUB_TOKEN }} + run: ./gradlew build -x check -x test + + - name: Create lib directory if not exists + run: mkdir -p ballerina/lib + + - name: Run Trivy vulnerability scanner + uses: aquasecurity/trivy-action@master + with: + scan-type: "rootfs" + scan-ref: "${{ github.workspace }}/ballerina/lib" + format: "table" + timeout: "10m0s" + exit-code: "1" + scanners: "vuln" + + - name: Publish artifact + env: + BALLERINA_CENTRAL_ACCESS_TOKEN: ${{ secrets.BALLERINA_CENTRAL_ACCESS_TOKEN }} + packageUser: ${{ secrets.BALLERINA_BOT_USERNAME }} + packagePAT: ${{ secrets.BALLERINA_BOT_TOKEN }} + GITHUB_TOKEN: ${{ secrets.BALLERINA_BOT_TOKEN }} + run: ./gradlew clean build -PpublishToCentral=true diff --git a/.github/workflows/publish-release.yml b/.github/workflows/publish-release.yml new file mode 100644 index 0000000..525fc75 --- /dev/null +++ b/.github/workflows/publish-release.yml @@ -0,0 +1,83 @@ +name: Publish Release + +on: + workflow_dispatch: + repository_dispatch: + types: [ stdlib-release-pipeline ] + +jobs: + publish-release: + name: Release Package + runs-on: ubuntu-latest + if: github.repository_owner == 'xlibb' + steps: + - name: Checkout Repository + uses: actions/checkout@v2 + + - name: Set up JDK 17 + uses: actions/setup-java@v2 + with: + distribution: 'temurin' + java-version: 17.0.7 + + - name: Grant execute permission for gradlew + run: chmod +x gradlew + + - name: Build with Gradle + env: + packageUser: ${{ github.actor }} + packagePAT: ${{ secrets.GITHUB_TOKEN }} + run: | + git config --global user.name ${{ secrets.BALLERINA_BOT_USERNAME }} + git config --global user.email ${{ secrets.BALLERINA_BOT_EMAIL }} + ./gradlew build -x check -x test -x :selenium-examples:build + + - name: Create lib directory if not exists + run: mkdir -p ballerina/lib + + - name: Run Trivy vulnerability scanner + uses: aquasecurity/trivy-action@master + with: + scan-type: "rootfs" + scan-ref: "${{ github.workspace }}/ballerina/lib" + format: "table" + timeout: "10m0s" + exit-code: "1" + scanners: "vuln" + + - name: Get Release Version + run: echo "VERSION=$((grep -w 'version' | cut -d= -f2) < gradle.properties | rev | cut --complement -d- -f1 | rev)" >> $GITHUB_ENV + + - name: Pre release dependency version update + env: + GITHUB_TOKEN: ${{ secrets.BALLERINA_BOT_TOKEN }} + run: | + echo "Version: ${VERSION}" + git checkout -b release-${VERSION} + sed -i 's/ballerinaLangVersion=\(.*\)-SNAPSHOT/ballerinaLangVersion=\1/g' gradle.properties + sed -i 's/ballerinaLangVersion=\(.*\)-[0-9]\{8\}-[0-9]\{6\}-.*$/ballerinaLangVersion=\1/g' gradle.properties + sed -i 's/stdlib\(.*\)=\(.*\)-SNAPSHOT/stdlib\1=\2/g' gradle.properties + sed -i 's/stdlib\(.*\)=\(.*\)-[0-9]\{8\}-[0-9]\{6\}-.*$/stdlib\1=\2/g' gradle.properties + sed -i 's/observe\(.*\)=\(.*\)-SNAPSHOT/observe\1=\2/g' gradle.properties + sed -i 's/observe\(.*\)=\(.*\)-[0-9]\{8\}-[0-9]\{6\}-.*$/observe\1=\2/g' gradle.properties + git add gradle.properties + git commit -m "Move dependencies to stable version" || echo "No changes to commit" + + - name: Publish Package + env: + GITHUB_TOKEN: ${{ secrets.BALLERINA_BOT_TOKEN }} + BALLERINA_CENTRAL_ACCESS_TOKEN: ${{ secrets.BALLERINA_CENTRAL_ACCESS_TOKEN }} + packageUser: ${{ secrets.BALLERINA_BOT_USERNAME }} + packagePAT: ${{ secrets.BALLERINA_BOT_TOKEN }} + publishUser: ${{ secrets.BALLERINA_BOT_USERNAME }} + publishPAT: ${{ secrets.BALLERINA_BOT_TOKEN }} + run: | + ./gradlew clean release -Prelease.useAutomaticVersion=true + ./gradlew -Pversion=${VERSION} publish -x test -PpublishToCentral=true + + - name: GitHub Release and Release Sync PR + env: + GITHUB_TOKEN: ${{ secrets.BALLERINA_BOT_TOKEN }} + run: | + gh release create v$VERSION --title "module-selenium-v$VERSION" + gh pr create --title "[Automated] Sync main after $VERSION release" --body "Sync main after $VERSION release" diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml new file mode 100644 index 0000000..580f9f5 --- /dev/null +++ b/.github/workflows/pull-request.yml @@ -0,0 +1,51 @@ +name: Pull Request + +on: pull_request + +jobs: + ubuntu-build: + name: Build on Ubuntu + runs-on: ubuntu-latest + steps: + - name: Checkout Repository + uses: actions/checkout@v1 + + - name: Set up JDK 17 + uses: actions/setup-java@v3 + with: + distribution: 'temurin' + java-version: 17.0.7 + + - name: Grant execute permission for gradlew + run: chmod +x gradlew + + - name: Build the Package + env: + packageUser: ${{ github.actor }} + packagePAT: ${{ secrets.GITHUB_TOKEN }} + run: ./gradlew build --no-daemon --scan + + - name: Generate Codecov Report + uses: codecov/codecov-action@v3 + with: + token: ${{ secrets.CODECOV_TOKEN }} + + windows-build: + name: Build on Windows + runs-on: windows-latest + steps: + - name: Checkout Repository + uses: actions/checkout@v1 + + - name: Set up JDK 17 + uses: actions/setup-java@v2 + with: + distribution: 'temurin' + java-version: 17.0.7 + + - name: Build the Project + env: + packageUser: ${{ github.actor }} + packagePAT: ${{ secrets.GITHUB_TOKEN }} + JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF8 + run: ./gradlew.bat build --no-daemon --scan diff --git a/.github/workflows/trivy-scan.yml b/.github/workflows/trivy-scan.yml new file mode 100644 index 0000000..2a86f9e --- /dev/null +++ b/.github/workflows/trivy-scan.yml @@ -0,0 +1,36 @@ +name: Trivy + +on: + workflow_dispatch: + schedule: + - cron: '0 0 * * *' + +jobs: + ubuntu-build: + name: Build on Ubuntu + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Set up JDK 17 + uses: actions/setup-java@v2 + with: + distribution: 'temurin' + java-version: 17.0.7 + + - name: Build with Gradle + env: + packageUser: ${{ github.actor }} + packagePAT: ${{ secrets.GITHUB_TOKEN }} + run: ./gradlew build -x check -x test + + - name: Create lib directory if not exists + run: mkdir -p ballerina/lib + + - name: Run Trivy vulnerability scanner + uses: aquasecurity/trivy-action@master + with: + scan-type: 'rootfs' + scan-ref: '/github/workspace/ballerina/lib' + format: 'table' + timeout: '10m0s' + exit-code: '1' From 5c0c894ac82cf2a4b730449b9223abddc8e685c1 Mon Sep 17 00:00:00 2001 From: dharshi Date: Tue, 7 Jan 2025 10:12:54 +0530 Subject: [PATCH 26/43] refactor: remove connector settings in build.gradle --- ballerina/Dependencies.toml | 23 +---------------------- ballerina/build.gradle | 32 ++++++++++++++++++++------------ ballerina/web_driver.bal | 7 ++++--- settings.gradle | 1 + 4 files changed, 26 insertions(+), 37 deletions(-) diff --git a/ballerina/Dependencies.toml b/ballerina/Dependencies.toml index 539cf25..ef62d24 100644 --- a/ballerina/Dependencies.toml +++ b/ballerina/Dependencies.toml @@ -62,14 +62,6 @@ modules = [ {org = "ballerina", packageName = "lang.runtime", moduleName = "lang.runtime"} ] -[[package]] -org = "ballerina" -name = "observe" -version = "1.3.0" -dependencies = [ - {org = "ballerina", name = "jballerina.java"} -] - [[package]] org = "ballerina" name = "test" @@ -84,18 +76,6 @@ modules = [ {org = "ballerina", packageName = "test", moduleName = "test"} ] -[[package]] -org = "ballerinai" -name = "observe" -version = "0.0.0" -dependencies = [ - {org = "ballerina", name = "jballerina.java"}, - {org = "ballerina", name = "observe"} -] -modules = [ - {org = "ballerinai", packageName = "observe", moduleName = "observe"} -] - [[package]] org = "xlibb" name = "selenium" @@ -103,8 +83,7 @@ version = "0.1.0" dependencies = [ {org = "ballerina", name = "jballerina.java"}, {org = "ballerina", name = "lang.runtime"}, - {org = "ballerina", name = "test"}, - {org = "ballerinai", name = "observe"} + {org = "ballerina", name = "test"} ] modules = [ {org = "xlibb", packageName = "selenium", moduleName = "selenium"} diff --git a/ballerina/build.gradle b/ballerina/build.gradle index 56c766b..1c78f48 100644 --- a/ballerina/build.gradle +++ b/ballerina/build.gradle @@ -19,10 +19,10 @@ import org.apache.tools.ant.taskdefs.condition.Os plugins { - id 'io.ballerina.plugin' + id "io.ballerina.plugin" } -description = 'selenium - Ballerina' +description = 'Ballerina - Pdfbox Package' def packageName = "selenium" def packageOrg = "xlibb" @@ -44,18 +44,27 @@ def stripBallerinaExtensionVersion(String extVersion) { } } +apply plugin: 'io.ballerina.plugin' + ballerina { packageOrganization = packageOrg module = packageName - testCoverageParam = "--code-coverage --coverage-format=xml" - isConnector = true + langVersion = ballerinaLangVersion + testCoverageParam = "--code-coverage --coverage-format=xml --includes=io.xlibb.selenium.*:xlibb.selenium*" platform = "java17" } +dependencies { + jbalTools("org.ballerinalang:jballerina-tools:${ballerinaLangVersion}") { + transitive = false + } +} + task updateTomlFiles { doLast { def newBallerinaToml = ballerinaTomlFilePlaceHolder.text.replace("@project.version@", project.version) newBallerinaToml = newBallerinaToml.replace("@toml.version@", tomlVersion) + newBallerinaToml = newBallerinaToml.replace("@selenium.version@", project.seleniumVersion) ballerinaTomlFile.text = newBallerinaToml } } @@ -65,9 +74,9 @@ task commitTomlFiles { project.exec { ignoreExitValue true if (Os.isFamily(Os.FAMILY_WINDOWS)) { - commandLine 'cmd', '/c', "git commit -m \"[Automated] Update the toml files\" Ballerina.toml Dependencies.toml" + commandLine 'cmd', '/c', "git commit -m \"[Automated] Update the native jar versions\" Ballerina.toml Dependencies.toml" } else { - commandLine 'sh', '-c', "git commit -m '[Automated] Update the toml files' Ballerina.toml Dependencies.toml" + commandLine 'sh', '-c', "git commit -m '[Automated] Update the native jar versions' Ballerina.toml Dependencies.toml" } } } @@ -79,10 +88,11 @@ publishing { artifact source: createArtifactZip, extension: 'zip' } } + repositories { maven { name = "GitHubPackages" - url = uri("https://maven.pkg.github.com/ballerina-platform/module-${packageOrg}-${packageName}") + url = uri("https://maven.pkg.github.com/xlibb/module-selenium") credentials { username = System.getenv("publishUser") password = System.getenv("publishPAT") @@ -91,12 +101,10 @@ publishing { } } -clean { - delete 'build' -} +updateTomlFiles.dependsOn copyStdlibs -test.dependsOn ":${packageName}-native:build" -build.dependsOn ":${packageName}-native:build" +test.dependsOn ":selenium-native:build" +build.dependsOn ":selenium-native:build" build.dependsOn "generatePomFileForMavenPublication" publishToMavenLocal.dependsOn build publish.dependsOn build diff --git a/ballerina/web_driver.bal b/ballerina/web_driver.bal index b525731..db09d3f 100644 --- a/ballerina/web_driver.bal +++ b/ballerina/web_driver.bal @@ -14,14 +14,15 @@ // specific language governing permissions and limitations // under the License. -// replace with match ifelse in init +// replace with match ifelse in init ---------------------------------------------------- done // create seperate classes for errors // make browser options closed ---------------------------------------------------------- done // introduce additional arguments in browser options ------------------------------------ done // pass brpwser options record itself for the native ------------------------------------ done // check disable gpu -// update build.gradle for libs instead connectors for both sel and si -// update workflows for both sel and si +// update build.gradle for libs instead connectors -------------------------------------- done +// update workflows --------------------------------------------------------------------- done +// enums for browser names import ballerina/jballerina.java; diff --git a/settings.gradle b/settings.gradle index 6a3cb23..637280d 100644 --- a/settings.gradle +++ b/settings.gradle @@ -23,6 +23,7 @@ pluginManagement { id "com.github.spotbugs-base" version "${spotbugsPluginVersion}" id "com.github.johnrengelman.shadow" version "${shadowJarPluginVersion}" id "de.undercouch.download" version "${downloadPluginVersion}" + id "io.ballerina.plugin-gradle" version "${ballerinaGradlePluginVersion}" } repositories { From c3912ead441d5bbd248a8fcbc05edc80a949f098 Mon Sep 17 00:00:00 2001 From: dharshi Date: Tue, 7 Jan 2025 10:26:08 +0530 Subject: [PATCH 27/43] refactor: replace string literals with enum for browser names in WebDriver configuration --- ballerina/tests/web_driver_test.bal | 6 +++--- ballerina/types.bal | 7 ++++++- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/ballerina/tests/web_driver_test.bal b/ballerina/tests/web_driver_test.bal index 080bc4d..679ed33 100644 --- a/ballerina/tests/web_driver_test.bal +++ b/ballerina/tests/web_driver_test.bal @@ -21,12 +21,12 @@ string baseUrl = "https://ballerina-ipa.choreoapps.dev"; WebDriver chromeDriver = check new ({ headlessMode: true, url: baseUrl + "/complex-dom", - browserName: "chrome" + browserName: CHROME }); WebDriver firefoxDriver = check new ({ headlessMode: true, url: baseUrl + "/complex-dom", - browserName: "firefox" + browserName: FIREFOX }); @test:Config @@ -34,7 +34,7 @@ function testInvalidURL() { WebDriver|error driver = new ({ headlessMode: true, url: "invalid-baseUrl", - browserName: "chrome" + browserName: CHROME }); test:assertTrue(driver is error, "Expected error not thrown"); } diff --git a/ballerina/types.bal b/ballerina/types.bal index 49a1e04..9a229fb 100644 --- a/ballerina/types.bal +++ b/ballerina/types.bal @@ -14,6 +14,11 @@ // specific language governing permissions and limitations // under the License. +public enum BrowserName { + CHROME = "chrome", + FIREFOX = "firefox" +} + # Represents the options for configuring the WebDriver instance. # # + browserName - The type of browser to open (either "chrome" or "firefox"). The default is "chrome". @@ -22,7 +27,7 @@ # + incognitoMode - A boolean value indicating whether to run the browser in incognito mode. The default is `false`. # + additionalArguments - A list of additional command-line arguments to pass to the browser during initialization. public type BrowserOptions record {| - "chrome"|"firefox" browserName = "chrome"; + BrowserName browserName = CHROME; string url; boolean headlessMode = false; boolean incognitoMode = false; From 613559256a228a6a2941e73a7395eab57219b6b8 Mon Sep 17 00:00:00 2001 From: dharshi Date: Tue, 7 Jan 2025 19:46:31 +0530 Subject: [PATCH 28/43] [Automated] Update the native jar versions --- ballerina/Dependencies.toml | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/ballerina/Dependencies.toml b/ballerina/Dependencies.toml index ef62d24..9f7aeed 100644 --- a/ballerina/Dependencies.toml +++ b/ballerina/Dependencies.toml @@ -50,18 +50,6 @@ name = "lang.object" version = "0.0.0" scope = "testOnly" -[[package]] -org = "ballerina" -name = "lang.runtime" -version = "0.0.0" -scope = "testOnly" -dependencies = [ - {org = "ballerina", name = "jballerina.java"} -] -modules = [ - {org = "ballerina", packageName = "lang.runtime", moduleName = "lang.runtime"} -] - [[package]] org = "ballerina" name = "test" @@ -82,7 +70,6 @@ name = "selenium" version = "0.1.0" dependencies = [ {org = "ballerina", name = "jballerina.java"}, - {org = "ballerina", name = "lang.runtime"}, {org = "ballerina", name = "test"} ] modules = [ From 5f6475c841e0fd67b3f39c296e7a105294710218 Mon Sep 17 00:00:00 2001 From: dharshi Date: Tue, 7 Jan 2025 20:03:40 +0530 Subject: [PATCH 29/43] [Automated] Update the native jar versions --- ballerina/Dependencies.toml | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/ballerina/Dependencies.toml b/ballerina/Dependencies.toml index 9f7aeed..a21ad87 100644 --- a/ballerina/Dependencies.toml +++ b/ballerina/Dependencies.toml @@ -7,6 +7,19 @@ dependencies-toml-version = "2" distribution-version = "2201.10.2" +[[package]] +org = "ballerina" +name = "io" +version = "1.6.3" +scope = "testOnly" +dependencies = [ + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "lang.value"} +] +modules = [ + {org = "ballerina", packageName = "io", moduleName = "io"} +] + [[package]] org = "ballerina" name = "jballerina.java" @@ -50,6 +63,15 @@ name = "lang.object" version = "0.0.0" scope = "testOnly" +[[package]] +org = "ballerina" +name = "lang.value" +version = "0.0.0" +scope = "testOnly" +dependencies = [ + {org = "ballerina", name = "jballerina.java"} +] + [[package]] org = "ballerina" name = "test" @@ -69,6 +91,7 @@ org = "xlibb" name = "selenium" version = "0.1.0" dependencies = [ + {org = "ballerina", name = "io"}, {org = "ballerina", name = "jballerina.java"}, {org = "ballerina", name = "test"} ] From 234cd9674237ba5a81ff9e6512679b314b923023 Mon Sep 17 00:00:00 2001 From: dharshi Date: Wed, 8 Jan 2025 09:08:54 +0530 Subject: [PATCH 30/43] [Automated] Update the native jar versions --- ballerina/Dependencies.toml | 23 ----------------------- 1 file changed, 23 deletions(-) diff --git a/ballerina/Dependencies.toml b/ballerina/Dependencies.toml index a21ad87..9f7aeed 100644 --- a/ballerina/Dependencies.toml +++ b/ballerina/Dependencies.toml @@ -7,19 +7,6 @@ dependencies-toml-version = "2" distribution-version = "2201.10.2" -[[package]] -org = "ballerina" -name = "io" -version = "1.6.3" -scope = "testOnly" -dependencies = [ - {org = "ballerina", name = "jballerina.java"}, - {org = "ballerina", name = "lang.value"} -] -modules = [ - {org = "ballerina", packageName = "io", moduleName = "io"} -] - [[package]] org = "ballerina" name = "jballerina.java" @@ -63,15 +50,6 @@ name = "lang.object" version = "0.0.0" scope = "testOnly" -[[package]] -org = "ballerina" -name = "lang.value" -version = "0.0.0" -scope = "testOnly" -dependencies = [ - {org = "ballerina", name = "jballerina.java"} -] - [[package]] org = "ballerina" name = "test" @@ -91,7 +69,6 @@ org = "xlibb" name = "selenium" version = "0.1.0" dependencies = [ - {org = "ballerina", name = "io"}, {org = "ballerina", name = "jballerina.java"}, {org = "ballerina", name = "test"} ] From 53277d65db60344b59c14a639398efbcf7c1a86a Mon Sep 17 00:00:00 2001 From: dharshi Date: Wed, 8 Jan 2025 09:36:20 +0530 Subject: [PATCH 31/43] [Automated] Update the native jar versions --- ballerina/Dependencies.toml | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/ballerina/Dependencies.toml b/ballerina/Dependencies.toml index 9f7aeed..ef62d24 100644 --- a/ballerina/Dependencies.toml +++ b/ballerina/Dependencies.toml @@ -50,6 +50,18 @@ name = "lang.object" version = "0.0.0" scope = "testOnly" +[[package]] +org = "ballerina" +name = "lang.runtime" +version = "0.0.0" +scope = "testOnly" +dependencies = [ + {org = "ballerina", name = "jballerina.java"} +] +modules = [ + {org = "ballerina", packageName = "lang.runtime", moduleName = "lang.runtime"} +] + [[package]] org = "ballerina" name = "test" @@ -70,6 +82,7 @@ name = "selenium" version = "0.1.0" dependencies = [ {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "lang.runtime"}, {org = "ballerina", name = "test"} ] modules = [ From 907448e28a774327d15850397081121cde26af3b Mon Sep 17 00:00:00 2001 From: dharshi Date: Wed, 8 Jan 2025 09:39:38 +0530 Subject: [PATCH 32/43] refactor: remove old error handling and introduce distinct error types for Selenium module --- ballerina/error.bal | 18 ----- ballerina/errors.bal | 62 +++++++++++++++ ballerina/tests/web_driver_test.bal | 76 ++++++++++++++++++- ballerina/web_driver.bal | 16 +--- .../io/xlibb/selenium/SeleniumWebDriver.java | 65 +++++----------- .../io/xlibb/selenium/SeleniumWebElement.java | 49 +++--------- .../java/io/xlibb/selenium/utils/Utils.java | 54 +++++++++---- 7 files changed, 208 insertions(+), 132 deletions(-) delete mode 100644 ballerina/error.bal create mode 100644 ballerina/errors.bal diff --git a/ballerina/error.bal b/ballerina/error.bal deleted file mode 100644 index 7a75f14..0000000 --- a/ballerina/error.bal +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). -// -// WSO2 LLC. licenses this file to you under the Apache License, -// Version 2.0 (the "License"); you may not use this file except -// in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -# Represents any error related to the Selenium module. -public type Error distinct error; diff --git a/ballerina/errors.bal b/ballerina/errors.bal new file mode 100644 index 0000000..827facf --- /dev/null +++ b/ballerina/errors.bal @@ -0,0 +1,62 @@ +// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). +// +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +# Represents any error related to the Selenium module. +public type Error distinct error; + +# Represents an error that occurs when performing actions on an element +# that is in an invalid state (e.g., a disabled input field). +public type InvalidElementStateError distinct Error; + +# Represents an error that occurs due to an insecure or untrusted SSL certificate. +public type InsecureCertificateError distinct Error; + +# Represents an error that occurs when an invalid argument is passed to a command. +public type InvalidArgumentError distinct Error; + +# Represents an error that occurs when attempting to locate or interact with an element using an invalid selector. +public type InvalidSelectorError distinct Error; + +# Represents an error that occurs when executing JavaScript code in the browser. +public type JavascriptError distinct Error; + +# Represents an error that occurs when attempting to interact with an alert that is not present. +public type NoAlertPresentError distinct Error; + +# Represents an error that occurs when an element could not be found in the DOM. +public type NoSuchElementError distinct Error; + +# Represents an error that occurs when attempting to switch to a window that no longer exists. +public type NoSuchWindowError distinct Error; + +# Represents an error that occurs when a server request fails unexpectedly. +public type RequestFailedError distinct Error; + +# Represents an error that occurs when an element's reference is stale +# (e.g., the element is no longer attached to the DOM). +public type StaleElementReferenceError distinct Error; + +# Represents an error that occurs when a session could not be created. +public type SessionNotCreatedError distinct Error; + +# Represents an error that occurs when a script execution takes longer than the specified timeout. +public type ScriptTimeoutError distinct Error; + +# Represents an error that occurs when an operation exceeds the specified timeout period. +public type TimeoutError distinct Error; + +# Represents an error that occurs when an unexpected alert is present during an operation. +public type UnhandledAlertError distinct Error; diff --git a/ballerina/tests/web_driver_test.bal b/ballerina/tests/web_driver_test.bal index 679ed33..beb9ef6 100644 --- a/ballerina/tests/web_driver_test.bal +++ b/ballerina/tests/web_driver_test.bal @@ -415,7 +415,7 @@ function testWindowHandle(WebDriver driver) returns Error? { if (handleError is Error) { test:assertFail("Failed to switch to new window"); } else { - runtime:sleep(2); + runtime:sleep(3); string|Error actualValue = driver.getTitle(); string expectedValue = "New Window"; test:assertEquals(actualValue, expectedValue); @@ -465,6 +465,80 @@ function testExecuteJavascript(WebDriver driver) returns Error? { test:assertEquals(actualValue, expectedValue, "Element text mismatched"); } +@test:Config { + dependsOn: [testExecuteJavascript], + dataProvider: driverProvider +} +function testInvalidElementStateError(WebDriver driver) returns Error? { + Error? err = (check chromeDriver.findByName("disabled-element")).sendKeys("hello"); + test:assertTrue(err is InvalidElementStateError, "Expected InvalidElementStateError, but got another result."); +} + +@test:Config { + dependsOn: [testInvalidElementStateError], + dataProvider: driverProvider +} +function testNoSuchElementError(WebDriver driver) returns Error? { + WebElement|Error err = driver.findById("invalid-id"); + test:assertTrue(err is NoSuchElementError, "Expected NoSuchElementError, but got another result."); +} + +@test:Config { + dependsOn: [testNoSuchElementError], + dataProvider: driverProvider +} +function testNoAlertPresentError(WebDriver driver) returns Error? { + Error? err = driver.acceptAlert(); + test:assertTrue(err is NoAlertPresentError, "Expected NoAlertPresentError, but got another result."); +} + +@test:Config { + dependsOn: [testNoSuchElementError], + dataProvider: driverProvider +} +function testNoSuchWindowError(WebDriver driver) returns Error? { + Error? err = driver.switchToWindowHandle("invalid-window-handle"); + test:assertTrue(err is NoSuchWindowError, "Expected NoSuchWindowError, but got another result."); +} + +@test:Config { + dependsOn: [testNoSuchWindowError], + dataProvider: driverProvider +} +function testJavascriptError(WebDriver driver) returns Error? { + Error? err = driver.executeJavascript("consle.log('hello world')"); + test:assertTrue(err is JavascriptError, "Expected JavascriptError, but got another result."); +} + +@test:Config { + dependsOn: [testNoSuchWindowError], + dataProvider: driverProvider +} +function testInvalidArgumentError(WebDriver driver) returns Error? { + WebDriver|Error err = new({url: "invalid-url", headlessMode: true}); + test:assertTrue(err is InvalidArgumentError, "Expected InvalidArgumentError, but got another result."); +} + +@test:Config { + dependsOn: [testInvalidArgumentError], + dataProvider: driverProvider +} +function testInvalidSelectorError(WebDriver driver) returns Error? { + WebElement|Error err = driver.findByCssSelector("input:invalid-pseudo-class"); + test:assertTrue(err is InvalidSelectorError, "Expected InvalidSelectorError, but got another result."); +} + +@test:Config { + dependsOn: [testInvalidSelectorError], + dataProvider: driverProvider +} +function testUnhandledAlertError(WebDriver driver) returns Error? { + WebElement element = check driver.findById("home-button"); + check element.click(); + Error? err = element.click(); + test:assertTrue(err is UnhandledAlertError, "Expected UnhandledAlertError, but got another result."); +} + @test:AfterSuite function teardown() { Error? chromeQuitErr = chromeDriver.quit(); diff --git a/ballerina/web_driver.bal b/ballerina/web_driver.bal index db09d3f..383ab57 100644 --- a/ballerina/web_driver.bal +++ b/ballerina/web_driver.bal @@ -14,26 +14,16 @@ // specific language governing permissions and limitations // under the License. -// replace with match ifelse in init ---------------------------------------------------- done -// create seperate classes for errors -// make browser options closed ---------------------------------------------------------- done -// introduce additional arguments in browser options ------------------------------------ done -// pass brpwser options record itself for the native ------------------------------------ done -// check disable gpu -// update build.gradle for libs instead connectors -------------------------------------- done -// update workflows --------------------------------------------------------------------- done -// enums for browser names - import ballerina/jballerina.java; public class WebDriver { - public isolated function init(BrowserOptions options) returns error? { + public isolated function init(BrowserOptions options) returns Error? { match options.browserName { - "chrome" => { + CHROME => { return check self.openChrome(options); } - "firefox" => { + FIREFOX => { return check self.openFirefox(options); } } diff --git a/native/src/main/java/io/xlibb/selenium/SeleniumWebDriver.java b/native/src/main/java/io/xlibb/selenium/SeleniumWebDriver.java index 7e9d4f8..a52b7ae 100644 --- a/native/src/main/java/io/xlibb/selenium/SeleniumWebDriver.java +++ b/native/src/main/java/io/xlibb/selenium/SeleniumWebDriver.java @@ -67,7 +67,7 @@ public static Object openChrome(BObject webDriver, BMap options } } return Utils.getBError("error: A WebDriver instance is already active. Please quit the current " + - "instance before starting a new one."); + "instance before starting a new one.", null); } public static Object openFirefox(BObject webDriver, BMap options) { @@ -96,7 +96,7 @@ public static Object openFirefox(BObject webDriver, BMap option } } return Utils.getBError("error: A WebDriver instance is already active. Please quit the current " + - "instance before starting a new one."); + "instance before starting a new one.", null); } public static Object getTitle(BObject webDriver) { @@ -180,11 +180,9 @@ public static Object getCurrentUrl(BObject webDriver) { public static Object findById(BObject webDriver, BString id) { try { - List webElement = Utils.getDriverNObject(webDriver).findElements(By.id(id.toString())); - if (!webElement.isEmpty()) { - return Utils.getWebElementBObject(webElement.get(0)); - } - return Utils.noSuchElementError("ID", id.toString()); + return Utils.getWebElementBObject( + Utils.getDriverNObject(webDriver).findElement(By.id(id.toString())) + ); } catch (Exception e) { return Utils.getBError(e.getMessage(), e); } @@ -192,12 +190,8 @@ public static Object findById(BObject webDriver, BString id) { public static Object findByClassName(BObject webDriver, BString className) { try { - List webElement = Utils.getDriverNObject(webDriver) - .findElements(By.className(className.toString())); - if (!webElement.isEmpty()) { - return Utils.getWebElementBObject(webElement.get(0)); - } - return Utils.noSuchElementError("CLASS_NAME", className.toString()); + return Utils.getWebElementBObject(Utils.getDriverNObject(webDriver) + .findElement(By.className(className.toString()))); } catch (Exception e) { return Utils.getBError(e.getMessage(), e); } @@ -205,12 +199,8 @@ public static Object findByClassName(BObject webDriver, BString className) { public static Object findByTagName(BObject webDriver, BString tagName) { try { - List webElement = Utils.getDriverNObject(webDriver) - .findElements(By.tagName(tagName.toString())); - if (!webElement.isEmpty()) { - return Utils.getWebElementBObject(webElement.get(0)); - } - return Utils.noSuchElementError("TAG_NAME", tagName.toString()); + return Utils.getWebElementBObject(Utils.getDriverNObject(webDriver) + .findElement(By.tagName(tagName.toString()))); } catch (Exception e) { return Utils.getBError(e.getMessage(), e); } @@ -218,11 +208,8 @@ public static Object findByTagName(BObject webDriver, BString tagName) { public static Object findByXpath(BObject webDriver, BString xpath) { try { - List webElement = Utils.getDriverNObject(webDriver).findElements(By.xpath(xpath.toString())); - if (!webElement.isEmpty()) { - return Utils.getWebElementBObject(webElement.get(0)); - } - return Utils.noSuchElementError("XPATH", xpath.toString()); + return Utils.getWebElementBObject(Utils.getDriverNObject(webDriver) + .findElement(By.xpath(xpath.toString()))); } catch (Exception e) { return Utils.getBError(e.getMessage(), e); } @@ -230,12 +217,8 @@ public static Object findByXpath(BObject webDriver, BString xpath) { public static Object findByCssSelector(BObject webDriver, BString cssSelector) { try { - List webElement = Utils.getDriverNObject(webDriver) - .findElements(By.cssSelector(cssSelector.toString())); - if (!webElement.isEmpty()) { - return Utils.getWebElementBObject(webElement.get(0)); - } - return Utils.noSuchElementError("CSS_SELECTOR", cssSelector.toString()); + return Utils.getWebElementBObject(Utils.getDriverNObject(webDriver) + .findElement(By.cssSelector(cssSelector.toString()))); } catch (Exception e) { return Utils.getBError(e.getMessage(), e); } @@ -243,11 +226,7 @@ public static Object findByCssSelector(BObject webDriver, BString cssSelector) { public static Object findByName(BObject webDriver, BString name) { try { - List webElement = Utils.getDriverNObject(webDriver).findElements(By.name(name.toString())); - if (!webElement.isEmpty()) { - return Utils.getWebElementBObject(webElement.get(0)); - } - return Utils.noSuchElementError("NAME", name.toString()); + return Utils.getWebElementBObject(Utils.getDriverNObject(webDriver).findElement(By.name(name.toString()))); } catch (Exception e) { return Utils.getBError(e.getMessage(), e); } @@ -255,12 +234,8 @@ public static Object findByName(BObject webDriver, BString name) { public static Object findByLinkText(BObject webDriver, BString linkText) { try { - List webElement = Utils.getDriverNObject(webDriver) - .findElements(By.linkText(linkText.toString())); - if (!webElement.isEmpty()) { - return Utils.getWebElementBObject(webElement.get(0)); - } - return Utils.noSuchElementError("LINK_TEXT", linkText.toString()); + return Utils.getWebElementBObject(Utils.getDriverNObject(webDriver) + .findElement(By.linkText(linkText.toString()))); } catch (Exception e) { return Utils.getBError(e.getMessage(), e); } @@ -268,12 +243,8 @@ public static Object findByLinkText(BObject webDriver, BString linkText) { public static Object findByPartialLinkText(BObject webDriver, BString partialLinkText) { try { - List webElement = Utils.getDriverNObject(webDriver) - .findElements(By.partialLinkText(partialLinkText.toString())); - if (!webElement.isEmpty()) { - return Utils.getWebElementBObject(webElement.get(0)); - } - return Utils.noSuchElementError("PARTIAL_LINK_TEXT", partialLinkText.toString()); + return Utils.getWebElementBObject(Utils.getDriverNObject(webDriver) + .findElement(By.partialLinkText(partialLinkText.toString()))); } catch (Exception e) { return Utils.getBError(e.getMessage(), e); } diff --git a/native/src/main/java/io/xlibb/selenium/SeleniumWebElement.java b/native/src/main/java/io/xlibb/selenium/SeleniumWebElement.java index 602b9ce..6092ad9 100644 --- a/native/src/main/java/io/xlibb/selenium/SeleniumWebElement.java +++ b/native/src/main/java/io/xlibb/selenium/SeleniumWebElement.java @@ -127,11 +127,7 @@ public static Object isSelected(BObject element) { public static Object findById(BObject element, BString id) { try { WebElement nativeElement = (WebElement) element.getNativeData(WEB_ELEMENT_OBJECT); - List nestedElement = nativeElement.findElements(By.id(id.toString())); - if (!nestedElement.isEmpty()) { - return Utils.getWebElementBObject(nestedElement.get(0)); - } - return Utils.noSuchElementError("ID", id.toString()); + return Utils.getWebElementBObject(nativeElement.findElement(By.id(id.toString()))); } catch (Exception e) { return Utils.getBError(e.getMessage(), e); } @@ -140,11 +136,7 @@ public static Object findById(BObject element, BString id) { public static Object findByClassName(BObject element, BString className) { try { WebElement nativeElement = (WebElement) element.getNativeData(WEB_ELEMENT_OBJECT); - List nestedElement = nativeElement.findElements(By.className(className.toString())); - if (!nestedElement.isEmpty()) { - return Utils.getWebElementBObject(nestedElement.get(0)); - } - return Utils.noSuchElementError("CLASS_NAME", className.toString()); + return Utils.getWebElementBObject(nativeElement.findElement(By.className(className.toString()))); } catch (Exception e) { return Utils.getBError(e.getMessage(), e); } @@ -153,11 +145,7 @@ public static Object findByClassName(BObject element, BString className) { public static Object findByTagName(BObject element, BString tagName) { try { WebElement nativeElement = (WebElement) element.getNativeData(WEB_ELEMENT_OBJECT); - List nestedElement = nativeElement.findElements(By.tagName(tagName.toString())); - if (!nestedElement.isEmpty()) { - return Utils.getWebElementBObject(nestedElement.get(0)); - } - return Utils.noSuchElementError("TAG_NAME", tagName.toString()); + return Utils.getWebElementBObject(nativeElement.findElement(By.tagName(tagName.toString()))); } catch (Exception e) { return Utils.getBError(e.getMessage(), e); } @@ -165,21 +153,13 @@ public static Object findByTagName(BObject element, BString tagName) { public static Object findByXpath(BObject element, BString xpath) { WebElement nativeElement = (WebElement) element.getNativeData(WEB_ELEMENT_OBJECT); - List nestedElement = nativeElement.findElements(By.xpath(xpath.toString())); - if (!nestedElement.isEmpty()) { - return Utils.getWebElementBObject(nestedElement.get(0)); - } - return Utils.noSuchElementError("XPATH", xpath.toString()); + return Utils.getWebElementBObject(nativeElement.findElement(By.xpath(xpath.toString()))); } public static Object findByCssSelector(BObject element, BString cssSelector) { try { WebElement nativeElement = (WebElement) element.getNativeData(WEB_ELEMENT_OBJECT); - List nestedElement = nativeElement.findElements(By.cssSelector(cssSelector.toString())); - if (!nestedElement.isEmpty()) { - return Utils.getWebElementBObject(nestedElement.get(0)); - } - return Utils.noSuchElementError("CSS_SELECTOR", cssSelector.toString()); + return Utils.getWebElementBObject(nativeElement.findElement(By.cssSelector(cssSelector.toString()))); } catch (Exception e) { return Utils.getBError(e.getMessage(), e); } @@ -188,11 +168,7 @@ public static Object findByCssSelector(BObject element, BString cssSelector) { public static Object findByName(BObject element, BString name) { try { WebElement nativeElement = (WebElement) element.getNativeData(WEB_ELEMENT_OBJECT); - List nestedElement = nativeElement.findElements(By.name(name.toString())); - if (!nestedElement.isEmpty()) { - return Utils.getWebElementBObject(nestedElement.get(0)); - } - return Utils.noSuchElementError("NAME", name.toString()); + return Utils.getWebElementBObject(nativeElement.findElement(By.name(name.toString()))); } catch (Exception e) { return Utils.getBError(e.getMessage(), e); } @@ -201,11 +177,7 @@ public static Object findByName(BObject element, BString name) { public static Object findByLinkText(BObject element, BString linkText) { try { WebElement nativeElement = (WebElement) element.getNativeData(WEB_ELEMENT_OBJECT); - List nestedElement = nativeElement.findElements(By.linkText(linkText.toString())); - if (!nestedElement.isEmpty()) { - return Utils.getWebElementBObject(nestedElement.get(0)); - } - return Utils.noSuchElementError("LINK_TEXT", linkText.toString()); + return Utils.getWebElementBObject(nativeElement.findElement(By.linkText(linkText.toString()))); } catch (Exception e) { return Utils.getBError(e.getMessage(), e); } @@ -214,11 +186,8 @@ public static Object findByLinkText(BObject element, BString linkText) { public static Object findByPartialLinkText(BObject element, BString partialLinkText) { try { WebElement nativeElement = (WebElement) element.getNativeData(WEB_ELEMENT_OBJECT); - List nestedElement = nativeElement.findElements(By.partialLinkText(partialLinkText.toString())); - if (!nestedElement.isEmpty()) { - return Utils.getWebElementBObject(nestedElement.get(0)); - } - return Utils.noSuchElementError("PARTIAL_LINK_TEXT", partialLinkText.toString()); + return Utils.getWebElementBObject(nativeElement + .findElement(By.partialLinkText(partialLinkText.toString()))); } catch (Exception e) { return Utils.getBError(e.getMessage(), e); } diff --git a/native/src/main/java/io/xlibb/selenium/utils/Utils.java b/native/src/main/java/io/xlibb/selenium/utils/Utils.java index 8594ff2..f4a7a23 100644 --- a/native/src/main/java/io/xlibb/selenium/utils/Utils.java +++ b/native/src/main/java/io/xlibb/selenium/utils/Utils.java @@ -29,12 +29,27 @@ import java.util.List; + public class Utils { public static final String DRIVER_OBJECT = "nativeDriverObject"; public static final String WEB_ELEMENT_OBJECT = "nativeWebElementObject"; public static final String WEB_ELEMENT_OBJECT_TYPE = "WebElement"; public static final String ERROR_TYPE = "Error"; + public static final String INVALID_ELEMENT_STATE_ERROR_TYPE = "InvalidElementStateError"; + public static final String INSECURE_CERTIFICATE_ERROR_TYPE = "InsecureCertificateError"; + public static final String INVALID_ARGUMENT_ERROR_TYPE = "InvalidArgumentError"; + public static final String INVALID_SELECTOR_ERROR_TYPE = "InvalidSelectorError"; + public static final String JAVASCRIPT_ERROR_TYPE = "JavascriptError"; + public static final String NO_ALERT_PRESENT_ERROR_TYPE = "NoAlertPresentError"; + public static final String NO_SUCH_ELEMENT_ERROR_TYPE = "NoSuchElementError"; + public static final String NO_SUCH_WINDOW_ERROR_TYPE = "NoSuchWindowError"; + public static final String REQUEST_FAILED_ERROR_TYPE = "RequestFailedError"; + public static final String STALE_ELEMENT_REFERENCE_ERROR_TYPE = "StaleElementReferenceError"; + public static final String SESSION_NOT_CREATED_ERROR_TYPE = "SessionNotCreatedError"; + public static final String SCRIPT_TIMEOUT_ERROR_TYPE = "ScriptTimeoutError"; + public static final String TIMEOUT_ERROR_TYPE = "TimeoutError"; + public static final String UNHANDLED_ALERT_ERROR_TYPE = "UnhandledAlertError"; public static WebDriver getDriverNObject(BObject object) { return (WebDriver) object.getNativeData(DRIVER_OBJECT); @@ -60,20 +75,33 @@ public static ArrayType getArrayType(String objectType) { return TypeCreator.createArrayType(type); } - public static BError noSuchElementError(String method, String value) { - String message = "Unable to locate element. Provided {method:" + method + ", value: " - + value + "}"; - return getBError(message); - } - - public static BError getBError(String message) { - return ErrorCreator.createError(ModuleUtils.getModule(), ERROR_TYPE, + public static BError getBError(String message, Exception e) { + String errorType = ERROR_TYPE; + if (e != null) { + errorType = switch (e.getClass().getSimpleName()) { + case "InvalidElementStateException", "ElementClickInterceptedException", + "ElementNotInteractableException" -> INVALID_ELEMENT_STATE_ERROR_TYPE; + case "InsecureCertificateException" -> INSECURE_CERTIFICATE_ERROR_TYPE; + case "InvalidArgumentException" -> INVALID_ARGUMENT_ERROR_TYPE; + case "InvalidSelectorException" -> INVALID_SELECTOR_ERROR_TYPE; + case "JavascriptException" -> JAVASCRIPT_ERROR_TYPE; + case "NoAlertPresentException" -> NO_ALERT_PRESENT_ERROR_TYPE; + case "NoSuchElementException" -> NO_SUCH_ELEMENT_ERROR_TYPE; + case "NoSuchWindowException" -> NO_SUCH_WINDOW_ERROR_TYPE; + case "WebDriverException" -> REQUEST_FAILED_ERROR_TYPE; + case "StaleElementReferenceException" -> STALE_ELEMENT_REFERENCE_ERROR_TYPE; + case "SessionNotCreatedException" -> SESSION_NOT_CREATED_ERROR_TYPE; + case "ScriptTimeoutException" -> SCRIPT_TIMEOUT_ERROR_TYPE; + case "TimeoutException" -> TIMEOUT_ERROR_TYPE; + case "UnhandledAlertException" -> UNHANDLED_ALERT_ERROR_TYPE; + default -> ERROR_TYPE; + }; + BError cause = ErrorCreator.createError(e); + return ErrorCreator.createError(ModuleUtils.getModule(), errorType, + StringUtils.fromString(message), cause, null); + } + return ErrorCreator.createError(ModuleUtils.getModule(), errorType, StringUtils.fromString(message), null, null); - } - public static BError getBError(String message, Throwable throwable) { - BError cause = ErrorCreator.createError(throwable); - return ErrorCreator.createError(ModuleUtils.getModule(), ERROR_TYPE, - StringUtils.fromString(message), cause, null); } } From 3b711f8e434a8e6a48f79391343dda000ce9900d Mon Sep 17 00:00:00 2001 From: dharshi Date: Thu, 9 Jan 2025 09:33:58 +0530 Subject: [PATCH 33/43] Update Trivy action to version 0.23.0 --- .github/workflows/central-publish.yml | 2 +- .github/workflows/publish-release.yml | 2 +- .github/workflows/trivy-scan.yml | 9 +++++++-- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/.github/workflows/central-publish.yml b/.github/workflows/central-publish.yml index 116c887..576ea27 100644 --- a/.github/workflows/central-publish.yml +++ b/.github/workflows/central-publish.yml @@ -27,7 +27,7 @@ jobs: run: mkdir -p ballerina/lib - name: Run Trivy vulnerability scanner - uses: aquasecurity/trivy-action@master + uses: aquasecurity/trivy-action@0.23.0 with: scan-type: "rootfs" scan-ref: "${{ github.workspace }}/ballerina/lib" diff --git a/.github/workflows/publish-release.yml b/.github/workflows/publish-release.yml index 525fc75..6a98133 100644 --- a/.github/workflows/publish-release.yml +++ b/.github/workflows/publish-release.yml @@ -36,7 +36,7 @@ jobs: run: mkdir -p ballerina/lib - name: Run Trivy vulnerability scanner - uses: aquasecurity/trivy-action@master + uses: aquasecurity/trivy-action@0.23.0 with: scan-type: "rootfs" scan-ref: "${{ github.workspace }}/ballerina/lib" diff --git a/.github/workflows/trivy-scan.yml b/.github/workflows/trivy-scan.yml index 2a86f9e..51bcedc 100644 --- a/.github/workflows/trivy-scan.yml +++ b/.github/workflows/trivy-scan.yml @@ -10,13 +10,18 @@ jobs: name: Build on Ubuntu runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - name: Checkout Repository + uses: actions/checkout@v2 + - name: Set up JDK 17 uses: actions/setup-java@v2 with: distribution: 'temurin' java-version: 17.0.7 + - name: Grant execute permission for gradlew + run: chmod +x gradlew + - name: Build with Gradle env: packageUser: ${{ github.actor }} @@ -27,7 +32,7 @@ jobs: run: mkdir -p ballerina/lib - name: Run Trivy vulnerability scanner - uses: aquasecurity/trivy-action@master + uses: aquasecurity/trivy-action@0.23.0 with: scan-type: 'rootfs' scan-ref: '/github/workspace/ballerina/lib' From b945d7dcb4829af5c24a6e4d336f45b472500828 Mon Sep 17 00:00:00 2001 From: dharshi Date: Thu, 9 Jan 2025 11:28:10 +0530 Subject: [PATCH 34/43] Update README and module documentation --- README.md | 13 +++++++------ ballerina/Module.md | 10 ++++++---- ballerina/Package.md | 7 ++++--- 3 files changed, 17 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index 637a855..daf8e74 100644 --- a/README.md +++ b/README.md @@ -25,10 +25,11 @@ The core component of Selenium is the `WebDriver`. It is an interface for contro The constructor of the `WebDriver` takes `BrowserOptions` as an argument, which contains the following options: -1. `browserName` - Specifies the type of browser to open. Acceptable values are "chrome" or "firefox". The default is "chrome". +1. `browserName` - A enum value specifies the type of browser to open. Acceptable values are `Sikulix:CHROME` or `Sikulix:FIREFOX`. The default is `Sikulix:CHROME`. 2. `url` - The URL of the web application to open in the browser. 3. `headlessMode` - A boolean value indicating whether to run the browser in headless mode (without a GUI). The default is `false`. 4. `incognitoMode` - A boolean value indicating whether to run the browser in incognito mode. The default is `false`. +5. `additionalArguments` - A list of additional command-line arguments to pass to the browser during initialization. ```ballerina // Opens a new Chrome browser instance and navigates to the specified URL. @@ -347,14 +348,14 @@ Selenium IDE is a handy tool for finding locators for web elements. Here's how t 3. Start a New Project: Click on Create a New Project and name your project. -new project - side +new project - side 4. Start Recording: - Click on the Record a New Test in a New Project option. - Enter the URL of the web application you want to test. - Selenium IDE will open the URL in a new tab and start recording your actions. -start recording - side +start recording - side 5. Perform Actions on the Webpage: Interact with the web elements (e.g., click buttons, fill out forms) on the page. Selenium IDE will record these actions as steps in your test case. 6. View Recorded Steps: Once done, stop the recording. The recorded steps will appear in the Selenium IDE window. Each step will include information about the action and the locator used. @@ -363,15 +364,15 @@ Selenium IDE is a handy tool for finding locators for web elements. Here's how t - The Target field shows the locator for the web element (e.g., XPath, ID, Name, CSS selector, etc.). - You can switch between different locator strategies by clicking the dropdown next to the locator. Selenium IDE will display alternatives if available. -find locators +find locators ## Examples The `Selenium` connector provides practical examples illustrating usage in various scenarios. Explore these [examples](https://github.com/xlibb/module-selenium/tree/main/examples/), covering the following use cases: -1. [Web Scrapping.](https://github.com/xlibb/module-selenium/tree/main/examples/web_scrapping). +1. [Web Scrapping.](https://github.com/xlibb/module-selenium/tree/main/examples/web_scrapping) -2. [Automating the Filling of Student Application Forms for a Web Application.](https://github.com/xlibb/module-selenium/tree/main/examples/student_application_form_filling). +2. [Automating the Filling of Student Application Forms for a Web Application.](https://github.com/xlibb/module-selenium/tree/main/examples/student_application_form_filling) ## Build from the source diff --git a/ballerina/Module.md b/ballerina/Module.md index 1f5197b..dadd487 100644 --- a/ballerina/Module.md +++ b/ballerina/Module.md @@ -16,15 +16,17 @@ The core component of Selenium is the `WebDriver`. It is an interface for contro The constructor of the `WebDriver` takes `BrowserOptions` as an argument, which contains the following options: -1. `browserName` - Specifies the type of browser to open. Acceptable values are "chrome" or "firefox". The default is "chrome". +1. `browserName` - A enum value specifies the type of browser to open. Acceptable values are `Sikulix:CHROME` or `Sikulix:FIREFOX`. The default is `Sikulix:CHROME`. 2. `url` - The URL of the web application to open in the browser. 3. `headlessMode` - A boolean value indicating whether to run the browser in headless mode (without a GUI). The default is `false`. 4. `incognitoMode` - A boolean value indicating whether to run the browser in incognito mode. The default is `false`. +5. `additionalArguments` - A list of additional command-line arguments to pass to the browser during initialization. ```ballerina // Opens a new Chrome browser instance and navigates to the specified URL. selenium:WebDriver driver = new ({ - url: "https://central.ballerina.io/" + url: "https://central.ballerina.io/", + additionalArguments: ["--start-maximized"] }); ``` @@ -204,6 +206,6 @@ Selenium IDE is a handy tool for finding locators for web elements. Here's how t The `Selenium` connector provides practical examples illustrating usage in various scenarios. Explore these [examples](https://github.com/xlibb/module-selenium/tree/main/examples/), covering the following use cases: -1. [Web Scrapping.](https://github.com/xlibb/module-selenium/tree/main/examples/web_scrapping). +1. [Web Scrapping.](https://github.com/xlibb/module-selenium/tree/main/examples/web_scrapping) -2. [Automating the Filling of Student Application Forms for a Web Application.](https://github.com/xlibb/module-selenium/tree/main/examples/student_application_form_filling). +2. [Automating the Filling of Student Application Forms for a Web Application.](https://github.com/xlibb/module-selenium/tree/main/examples/student_application_form_filling) diff --git a/ballerina/Package.md b/ballerina/Package.md index 1f5197b..63cec2c 100644 --- a/ballerina/Package.md +++ b/ballerina/Package.md @@ -16,10 +16,11 @@ The core component of Selenium is the `WebDriver`. It is an interface for contro The constructor of the `WebDriver` takes `BrowserOptions` as an argument, which contains the following options: -1. `browserName` - Specifies the type of browser to open. Acceptable values are "chrome" or "firefox". The default is "chrome". +1. `browserName` - A enum value specifies the type of browser to open. Acceptable values are `Sikulix:CHROME` or `Sikulix:FIREFOX`. The default is `Sikulix:CHROME`. 2. `url` - The URL of the web application to open in the browser. 3. `headlessMode` - A boolean value indicating whether to run the browser in headless mode (without a GUI). The default is `false`. 4. `incognitoMode` - A boolean value indicating whether to run the browser in incognito mode. The default is `false`. +5. `additionalArguments` - A list of additional command-line arguments to pass to the browser during initialization. ```ballerina // Opens a new Chrome browser instance and navigates to the specified URL. @@ -204,6 +205,6 @@ Selenium IDE is a handy tool for finding locators for web elements. Here's how t The `Selenium` connector provides practical examples illustrating usage in various scenarios. Explore these [examples](https://github.com/xlibb/module-selenium/tree/main/examples/), covering the following use cases: -1. [Web Scrapping.](https://github.com/xlibb/module-selenium/tree/main/examples/web_scrapping). +1. [Web Scrapping.](https://github.com/xlibb/module-selenium/tree/main/examples/web_scrapping) -2. [Automating the Filling of Student Application Forms for a Web Application.](https://github.com/xlibb/module-selenium/tree/main/examples/student_application_form_filling). +2. [Automating the Filling of Student Application Forms for a Web Application.](https://github.com/xlibb/module-selenium/tree/main/examples/student_application_form_filling) From 1ac9b975e5dca2037d99d8269618cbe451861820 Mon Sep 17 00:00:00 2001 From: dharshi Date: Tue, 14 Jan 2025 16:35:25 +0530 Subject: [PATCH 35/43] Apply review suggestions --- ballerina/build.gradle | 4 ++-- ballerina/errors.bal | 2 +- ballerina/init.bal | 2 +- ballerina/tests/web_driver_test.bal | 2 +- ballerina/types.bal | 3 ++- ballerina/web_driver.bal | 9 +++++---- ballerina/web_element.bal | 19 ++++++++++--------- build-config/checkstyle/build.gradle | 4 ++-- build-config/resources/Ballerina.toml | 2 +- build.gradle | 2 +- examples/build.gradle | 2 +- .../README.md | 7 +++---- .../student_application_form_filling/main.bal | 2 +- .../modules/resources/data.json | 2 +- .../records.bal | 3 +-- .../utils.bal | 2 +- examples/web_scrapping/README.md | 4 ++-- examples/web_scrapping/main.bal | 6 +++--- native/build.gradle | 4 ++-- .../io/xlibb/selenium/SeleniumWebDriver.java | 2 +- .../io/xlibb/selenium/SeleniumWebElement.java | 2 +- .../io/xlibb/selenium/utils/ModuleUtils.java | 2 +- .../java/io/xlibb/selenium/utils/Utils.java | 2 +- native/src/main/java/module-info.java | 4 ++-- settings.gradle | 2 +- 25 files changed, 48 insertions(+), 47 deletions(-) diff --git a/ballerina/build.gradle b/ballerina/build.gradle index 1c78f48..66fbb27 100644 --- a/ballerina/build.gradle +++ b/ballerina/build.gradle @@ -1,5 +1,5 @@ /* - * Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). + * Copyright (c) 2025, WSO2 LLC. (http://www.wso2.com). * * WSO2 LLC. licenses this file to you under the Apache License, * Version 2.0 (the "License"); you may not use this file except @@ -22,7 +22,7 @@ plugins { id "io.ballerina.plugin" } -description = 'Ballerina - Pdfbox Package' +description = 'Ballerina - Selenium Package' def packageName = "selenium" def packageOrg = "xlibb" diff --git a/ballerina/errors.bal b/ballerina/errors.bal index 827facf..97f0361 100644 --- a/ballerina/errors.bal +++ b/ballerina/errors.bal @@ -1,4 +1,4 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). +// Copyright (c) 2025, WSO2 LLC. (http://www.wso2.com). // // WSO2 LLC. licenses this file to you under the Apache License, // Version 2.0 (the "License"); you may not use this file except diff --git a/ballerina/init.bal b/ballerina/init.bal index 3a9f907..69543a9 100644 --- a/ballerina/init.bal +++ b/ballerina/init.bal @@ -1,4 +1,4 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). +// Copyright (c) 2025, WSO2 LLC. (http://www.wso2.com). // // WSO2 LLC. licenses this file to you under the Apache License, // Version 2.0 (the "License"); you may not use this file except diff --git a/ballerina/tests/web_driver_test.bal b/ballerina/tests/web_driver_test.bal index beb9ef6..b8cb465 100644 --- a/ballerina/tests/web_driver_test.bal +++ b/ballerina/tests/web_driver_test.bal @@ -1,4 +1,4 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). +// Copyright (c) 2025, WSO2 LLC. (http://www.wso2.com). // WSO2 LLC. licenses this file to you under the Apache License, // Version 2.0 (the "License"); you may not use this file except diff --git a/ballerina/types.bal b/ballerina/types.bal index 9a229fb..55a32f4 100644 --- a/ballerina/types.bal +++ b/ballerina/types.bal @@ -1,4 +1,4 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). +// Copyright (c) 2025, WSO2 LLC. (http://www.wso2.com). // // WSO2 LLC. licenses this file to you under the Apache License, // Version 2.0 (the "License"); you may not use this file except @@ -14,6 +14,7 @@ // specific language governing permissions and limitations // under the License. +# Represents name of browser to open. public enum BrowserName { CHROME = "chrome", FIREFOX = "firefox" diff --git a/ballerina/web_driver.bal b/ballerina/web_driver.bal index 383ab57..90e7ab6 100644 --- a/ballerina/web_driver.bal +++ b/ballerina/web_driver.bal @@ -1,4 +1,4 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). +// Copyright (c) 2025, WSO2 LLC. (http://www.wso2.com). // // WSO2 LLC. licenses this file to you under the Apache License, // Version 2.0 (the "License"); you may not use this file except @@ -16,7 +16,8 @@ import ballerina/jballerina.java; -public class WebDriver { +# Consists of APIs to interact with web browsers. +public isolated class WebDriver { public isolated function init(BrowserOptions options) returns Error? { match options.browserName { @@ -32,7 +33,7 @@ public class WebDriver { # Opens a new Chrome browser instance and navigates to the specified URL. # # + options - Represents options for configuring the WebDriver instance. - # + return - Returns an `Error?` if the browser fails to open or navigate to the specified URL. + # + return - Returns an `Error` if the browser fails to open or navigate to the specified URL, otherwise returns `()`. private isolated function openChrome(BrowserOptions options) returns Error? = @java:Method { 'class: "io.xlibb.selenium.SeleniumWebDriver" } external; @@ -40,7 +41,7 @@ public class WebDriver { # Opens a new Firefox browser instance and navigates to the specified URL. # # + options - Represents options for configuring the WebDriver instance. - # + return - Returns an `Error?` if the browser fails to open or navigate to the specified URL. + # + return - Returns an `Error` if the browser fails to open or navigate to the specified URL, otherwise returns `()`. private isolated function openFirefox(BrowserOptions options) returns Error? = @java:Method { 'class: "io.xlibb.selenium.SeleniumWebDriver" } external; diff --git a/ballerina/web_element.bal b/ballerina/web_element.bal index 4c64256..e465187 100644 --- a/ballerina/web_element.bal +++ b/ballerina/web_element.bal @@ -1,4 +1,4 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). +// Copyright (c) 2025, WSO2 LLC. (http://www.wso2.com). // // WSO2 LLC. licenses this file to you under the Apache License, // Version 2.0 (the "License"); you may not use this file except @@ -16,7 +16,8 @@ import ballerina/jballerina.java; -public class WebElement { +# Consists of APIs to interact with web elements. +public isolated class WebElement { # Performs a click action on the specified web element. # @@ -150,7 +151,7 @@ public class WebElement { # Locates all web elements by their class name. # # + className - The class name of the web elements. - # + return - Returnsn array of `WebElement` representing all the located elements, or `Error` if an error occurs. + # + return - Returns an array of `WebElement` representing all the located elements, or `Error` if an error occurs. public isolated function findAllByClassName(string className) returns WebElement[]|Error = @java:Method { 'class: "io.xlibb.selenium.SeleniumWebElement" } external; @@ -158,7 +159,7 @@ public class WebElement { # Locates all web elements by their tag name inside another web element. # # + tagName - The tag name of the web elements (e.g., `div`, `input`, `button`). - # + return - Returnsn array of `WebElement` representing all the located elements, or `Error` if an error occurs. + # + return - Returns an array of `WebElement` representing all the located elements, or `Error` if an error occurs. public isolated function findAllByTagName(string tagName) returns WebElement[]|Error = @java:Method { 'class: "io.xlibb.selenium.SeleniumWebElement" } external; @@ -166,7 +167,7 @@ public class WebElement { # Locates all web elements using an XPath expression inside another web element. # # + xpath - The XPath expression used to locate the elements. - # + return - Returnsn array of `WebElement` representing all the located elements, or `Error` if an error occurs. + # + return - Returns an array of `WebElement` representing all the located elements, or `Error` if an error occurs. public isolated function findAllByXpath(string xpath) returns WebElement[]|Error = @java:Method { 'class: "io.xlibb.selenium.SeleniumWebElement" } external; @@ -174,7 +175,7 @@ public class WebElement { # Locates all web elements using a CSS selector inside another web element. # # + cssSelector - The CSS selector used to locate the elements. - # + return - Returnsn array of `WebElement` representing all the located elements, or `Error` if an error occurs. + # + return - Returns an array of `WebElement` representing all the located elements, or `Error` if an error occurs. public isolated function findAllByCssSelector(string cssSelector) returns WebElement[]|Error = @java:Method { 'class: "io.xlibb.selenium.SeleniumWebElement" } external; @@ -182,7 +183,7 @@ public class WebElement { # Locates all web elements by their `name` attribute inside another web element. # # + name - The `name` attribute of the web elements. - # + return - Returnsn array of `WebElement` representing all the located elements, or `Error` if an error occurs. + # + return - Returns an array of `WebElement` representing all the located elements, or `Error` if an error occurs. public isolated function findAllByName(string name) returns WebElement[]|Error = @java:Method { 'class: "io.xlibb.selenium.SeleniumWebElement" } external; @@ -190,7 +191,7 @@ public class WebElement { # Locates all web elements by their exact link text inside another web element. # # + linkText - The exact text of the links. - # + return - Returnsn array of `WebElement` representing all the located elements, or `Error` if an error occurs. + # + return - Returns an array of `WebElement` representing all the located elements, or `Error` if an error occurs. public isolated function findAllByLinkText(string linkText) returns WebElement[]|Error = @java:Method { 'class: "io.xlibb.selenium.SeleniumWebElement" } external; @@ -198,7 +199,7 @@ public class WebElement { # Locates all web elements by their partial link text inside another web element. # # + partialLinkText - The partial text of the links. - # + return - Returnsn array of `WebElement` representing all the located elements, or `Error` if an error occurs. + # + return - Returns an array of `WebElement` representing all the located elements, or `Error` if an error occurs. public isolated function findAllByPartialLinkText(string partialLinkText) returns WebElement[]|Error = @java:Method { 'class: "io.xlibb.selenium.SeleniumWebElement" } external; diff --git a/build-config/checkstyle/build.gradle b/build-config/checkstyle/build.gradle index f2ef7a6..76708b2 100644 --- a/build-config/checkstyle/build.gradle +++ b/build-config/checkstyle/build.gradle @@ -1,5 +1,5 @@ /* - * Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). + * Copyright (c) 2025, WSO2 LLC. (http://www.wso2.com). * * WSO2 LLC. licenses this file to you under the Apache License, * Version 2.0 (the "License"); you may not use this file except @@ -46,4 +46,4 @@ artifacts.add('default', file("$project.buildDir/checkstyle.xml")) { artifacts.add('default', file("$project.buildDir/suppressions.xml")) { builtBy('downloadCheckstyleRuleFiles') -} \ No newline at end of file +} diff --git a/build-config/resources/Ballerina.toml b/build-config/resources/Ballerina.toml index 66f7494..454ba8d 100644 --- a/build-config/resources/Ballerina.toml +++ b/build-config/resources/Ballerina.toml @@ -270,4 +270,4 @@ version = "4.27.0" [[platform.java17.dependency]] groupId = "org.seleniumhq.selenium" artifactId = "selenium-support" -version = "4.27.0" \ No newline at end of file +version = "4.27.0" diff --git a/build.gradle b/build.gradle index 1ff3b40..1ca5d5d 100644 --- a/build.gradle +++ b/build.gradle @@ -1,5 +1,5 @@ /* - * Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). + * Copyright (c) 2025, WSO2 LLC. (http://www.wso2.com). * * WSO2 LLC. licenses this file to you under the Apache License, * Version 2.0 (the "License"); you may not use this file except diff --git a/examples/build.gradle b/examples/build.gradle index 8d00ce9..6973139 100644 --- a/examples/build.gradle +++ b/examples/build.gradle @@ -1,5 +1,5 @@ /* - * Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). + * Copyright (c) 2025, WSO2 LLC. (http://www.wso2.com). * * WSO2 LLC. licenses this file to you under the Apache License, * Version 2.0 (the "License"); you may not use this file except diff --git a/examples/student_application_form_filling/README.md b/examples/student_application_form_filling/README.md index 1c11275..1f0f1be 100644 --- a/examples/student_application_form_filling/README.md +++ b/examples/student_application_form_filling/README.md @@ -1,10 +1,9 @@ -# Automating the Filling of Student Application Form +# Automating the filling of student application form -## Overview This guide demonstrates automating the process of filling out student application forms using the Ballerina Selenium module. -## Implementation -For this task, we use sample JSON data available in [this file](./modules/resources/data.json). The example project showcases how to automate the data entry process by populating this information into [this web application](https://bal-selenium.choreoapps.dev/). +## Overview +The example project automates data entry by retrieving student information from a [JSON file](./modules/resources/data.json) and populating it into a [web application]((https://bal-selenium.choreoapps.dev/)). ## Run the Example diff --git a/examples/student_application_form_filling/main.bal b/examples/student_application_form_filling/main.bal index 52bed6d..b133e5d 100644 --- a/examples/student_application_form_filling/main.bal +++ b/examples/student_application_form_filling/main.bal @@ -1,4 +1,4 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). +// Copyright (c) 2025, WSO2 LLC. (http://www.wso2.com). // // WSO2 LLC. licenses this file to you under the Apache License, // Version 2.0 (the "License"); you may not use this file except diff --git a/examples/student_application_form_filling/modules/resources/data.json b/examples/student_application_form_filling/modules/resources/data.json index d045b4d..d32cf8f 100644 --- a/examples/student_application_form_filling/modules/resources/data.json +++ b/examples/student_application_form_filling/modules/resources/data.json @@ -81,4 +81,4 @@ "mobile": "+2233445566" } ] -} \ No newline at end of file +} diff --git a/examples/student_application_form_filling/records.bal b/examples/student_application_form_filling/records.bal index d83d59a..13006f8 100644 --- a/examples/student_application_form_filling/records.bal +++ b/examples/student_application_form_filling/records.bal @@ -1,4 +1,4 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). +// Copyright (c) 2025, WSO2 LLC. (http://www.wso2.com). // // WSO2 LLC. licenses this file to you under the Apache License, // Version 2.0 (the "License"); you may not use this file except @@ -77,4 +77,3 @@ type Data record { string extraCurricularActivities; RefreesItem[] refrees; }; - diff --git a/examples/student_application_form_filling/utils.bal b/examples/student_application_form_filling/utils.bal index 1e41ea7..5344b59 100644 --- a/examples/student_application_form_filling/utils.bal +++ b/examples/student_application_form_filling/utils.bal @@ -1,4 +1,4 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). +// Copyright (c) 2025, WSO2 LLC. (http://www.wso2.com). // // WSO2 LLC. licenses this file to you under the Apache License, // Version 2.0 (the "License"); you may not use this file except diff --git a/examples/web_scrapping/README.md b/examples/web_scrapping/README.md index 853eb8e..5d7aa48 100644 --- a/examples/web_scrapping/README.md +++ b/examples/web_scrapping/README.md @@ -1,9 +1,9 @@ -# Web Scrapping +# Web scrapping ## Overview Web scraping is an automated method for extracting large amounts of data from websites. It is one of the most efficient and effective ways to gather data from online sources. This guide demonstrates how to collect information about books from the website http://books.toscrape.com/ using the Selenium module. -## Run the Example +## Run the example ```ballerina cd .\examples\web_scrapping diff --git a/examples/web_scrapping/main.bal b/examples/web_scrapping/main.bal index f5fdb4f..33da84c 100644 --- a/examples/web_scrapping/main.bal +++ b/examples/web_scrapping/main.bal @@ -1,4 +1,4 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). +// Copyright (c) 2025, WSO2 LLC. (http://www.wso2.com). // // WSO2 LLC. licenses this file to you under the Apache License, // Version 2.0 (the "License"); you may not use this file except @@ -29,7 +29,7 @@ public function main() returns error? { string category = "Science"; selenium:WebElement|error categoryLink = driver.findByPartialLinkText(category); - if (categoryLink is error) { + if categoryLink is error { io:println(`Invalid category name: ${category}`); check driver.quit(); return; @@ -38,7 +38,7 @@ public function main() returns error? { runtime:sleep(2); selenium:WebElement[] results = check driver.findAllByClassName("product_pod"); - if (results.length() == 0) { + if results.length() == 0 { io:println("No results found for category " + category); } int count = 0; diff --git a/native/build.gradle b/native/build.gradle index 1e2c3c8..782824f 100644 --- a/native/build.gradle +++ b/native/build.gradle @@ -1,5 +1,5 @@ /* - * Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com) + * Copyright (c) 2025, WSO2 LLC. (http://www.wso2.com) * * WSO2 LLC. licenses this file to you under the Apache License, * Version 2.0 (the "License"); you may not use this file except @@ -71,4 +71,4 @@ compileJava { ] classpath = files() } -} \ No newline at end of file +} diff --git a/native/src/main/java/io/xlibb/selenium/SeleniumWebDriver.java b/native/src/main/java/io/xlibb/selenium/SeleniumWebDriver.java index a52b7ae..33d2691 100644 --- a/native/src/main/java/io/xlibb/selenium/SeleniumWebDriver.java +++ b/native/src/main/java/io/xlibb/selenium/SeleniumWebDriver.java @@ -1,4 +1,4 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). +// Copyright (c) 2025, WSO2 LLC. (http://www.wso2.com). // // WSO2 LLC. licenses this file to you under the Apache License, // Version 2.0 (the "License"); you may not use this file except diff --git a/native/src/main/java/io/xlibb/selenium/SeleniumWebElement.java b/native/src/main/java/io/xlibb/selenium/SeleniumWebElement.java index 6092ad9..6aec730 100644 --- a/native/src/main/java/io/xlibb/selenium/SeleniumWebElement.java +++ b/native/src/main/java/io/xlibb/selenium/SeleniumWebElement.java @@ -1,4 +1,4 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). +// Copyright (c) 2025, WSO2 LLC. (http://www.wso2.com). // // WSO2 LLC. licenses this file to you under the Apache License, // Version 2.0 (the "License"); you may not use this file except diff --git a/native/src/main/java/io/xlibb/selenium/utils/ModuleUtils.java b/native/src/main/java/io/xlibb/selenium/utils/ModuleUtils.java index c592455..3611054 100644 --- a/native/src/main/java/io/xlibb/selenium/utils/ModuleUtils.java +++ b/native/src/main/java/io/xlibb/selenium/utils/ModuleUtils.java @@ -1,4 +1,4 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). +// Copyright (c) 2025, WSO2 LLC. (http://www.wso2.com). // // WSO2 LLC. licenses this file to you under the Apache License, // Version 2.0 (the "License"); you may not use this file except diff --git a/native/src/main/java/io/xlibb/selenium/utils/Utils.java b/native/src/main/java/io/xlibb/selenium/utils/Utils.java index f4a7a23..4d40a97 100644 --- a/native/src/main/java/io/xlibb/selenium/utils/Utils.java +++ b/native/src/main/java/io/xlibb/selenium/utils/Utils.java @@ -1,4 +1,4 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). +// Copyright (c) 2025, WSO2 LLC. (http://www.wso2.com). // // WSO2 LLC. licenses this file to you under the Apache License, // Version 2.0 (the "License"); you may not use this file except diff --git a/native/src/main/java/module-info.java b/native/src/main/java/module-info.java index 5ce714a..182942f 100644 --- a/native/src/main/java/module-info.java +++ b/native/src/main/java/module-info.java @@ -1,4 +1,4 @@ -// Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). +// Copyright (c) 2025, WSO2 LLC. (http://www.wso2.com). // // WSO2 LLC. licenses this file to you under the Apache License, // Version 2.0 (the "License"); you may not use this file except @@ -21,4 +21,4 @@ requires org.seleniumhq.selenium.chrome_driver; requires org.seleniumhq.selenium.firefox_driver; exports io.xlibb.selenium; -} \ No newline at end of file +} diff --git a/settings.gradle b/settings.gradle index 637280d..9a69992 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,5 +1,5 @@ /* - * Copyright (c) 2024, WSO2 LLC. (http://www.wso2.com). + * Copyright (c) 2025, WSO2 LLC. (http://www.wso2.com). * * WSO2 LLC. licenses this file to you under the Apache License, * Version 2.0 (the "License"); you may not use this file except From 344612ec78082e3b6cc92dfb56e28a21600f260c Mon Sep 17 00:00:00 2001 From: dharshi Date: Thu, 16 Jan 2025 09:14:12 +0530 Subject: [PATCH 36/43] [Automated] Update the native jar versions --- ballerina/Ballerina.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ballerina/Ballerina.toml b/ballerina/Ballerina.toml index 158d6bc..2be749b 100644 --- a/ballerina/Ballerina.toml +++ b/ballerina/Ballerina.toml @@ -270,4 +270,4 @@ version = "4.27.0" [[platform.java17.dependency]] groupId = "org.seleniumhq.selenium" artifactId = "selenium-support" -version = "4.27.0" \ No newline at end of file +version = "4.27.0" From 005f98761055af30183feb8a29eaa85f9a056f54 Mon Sep 17 00:00:00 2001 From: dharshi Date: Thu, 16 Jan 2025 09:34:06 +0530 Subject: [PATCH 37/43] Add --disable-gpu as different argument. --- ballerina/tests/web_driver_test.bal | 6 ++++-- .../src/main/java/io/xlibb/selenium/SeleniumWebDriver.java | 1 - 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/ballerina/tests/web_driver_test.bal b/ballerina/tests/web_driver_test.bal index b8cb465..5cf1642 100644 --- a/ballerina/tests/web_driver_test.bal +++ b/ballerina/tests/web_driver_test.bal @@ -21,7 +21,8 @@ string baseUrl = "https://ballerina-ipa.choreoapps.dev"; WebDriver chromeDriver = check new ({ headlessMode: true, url: baseUrl + "/complex-dom", - browserName: CHROME + browserName: CHROME, + additionalArguments: ["--disable-gpu"] }); WebDriver firefoxDriver = check new ({ headlessMode: true, @@ -34,7 +35,8 @@ function testInvalidURL() { WebDriver|error driver = new ({ headlessMode: true, url: "invalid-baseUrl", - browserName: CHROME + browserName: CHROME, + additionalArguments: ["--disable-gpu"] }); test:assertTrue(driver is error, "Expected error not thrown"); } diff --git a/native/src/main/java/io/xlibb/selenium/SeleniumWebDriver.java b/native/src/main/java/io/xlibb/selenium/SeleniumWebDriver.java index 33d2691..67f17d8 100644 --- a/native/src/main/java/io/xlibb/selenium/SeleniumWebDriver.java +++ b/native/src/main/java/io/xlibb/selenium/SeleniumWebDriver.java @@ -51,7 +51,6 @@ public static Object openChrome(BObject webDriver, BMap options ChromeOptions chromeOptions = new ChromeOptions(); if (headless) { chromeOptions.addArguments("--headless"); - chromeOptions.addArguments("--disable-gpu"); } if (incognito) { chromeOptions.addArguments("--incognito"); From a5c1ea7e96ff138b266b4e92582ec3b8e0e6fdbe Mon Sep 17 00:00:00 2001 From: dharshi Date: Fri, 17 Jan 2025 13:15:36 +0530 Subject: [PATCH 38/43] Update central publish workflow --- .github/workflows/central-publish.yml | 33 +++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/.github/workflows/central-publish.yml b/.github/workflows/central-publish.yml index 576ea27..434728a 100644 --- a/.github/workflows/central-publish.yml +++ b/.github/workflows/central-publish.yml @@ -2,6 +2,14 @@ name: Publish to the Ballerina central on: workflow_dispatch: + inputs: + environment: + type: choice + description: Select Environment + required: true + options: + - DEV CENTRAL + - STAGE CENTRAL jobs: publish-release: @@ -43,3 +51,28 @@ jobs: packagePAT: ${{ secrets.BALLERINA_BOT_TOKEN }} GITHUB_TOKEN: ${{ secrets.BALLERINA_BOT_TOKEN }} run: ./gradlew clean build -PpublishToCentral=true + + - name: Ballerina Central Dev Push + if: ${{ inputs.environment == 'DEV CENTRAL' }} + env: + BALLERINA_DEV_CENTRAL: true + BALLERINA_STAGE_CENTRAL: false + BALLERINA_CENTRAL_ACCESS_TOKEN: ${{ secrets.BALLERINA_CENTRAL_DEV_ACCESS_TOKEN }} + packageUser: ${{ secrets.BALLERINA_BOT_USERNAME }} + packagePAT: ${{ secrets.BALLERINA_BOT_TOKEN }} + GITHUB_TOKEN: ${{ secrets.BALLERINA_BOT_TOKEN }} + run: | + sed -i 's/version=\(.*\)-SNAPSHOT/version=\1/g' gradle.properties + ./gradlew clean build -PpublishToCentral=true ${{ inputs.additional-publish-flags }} + - name: Ballerina Central Stage Push + if: ${{ inputs.environment == 'STAGE CENTRAL' }} + env: + BALLERINA_DEV_CENTRAL: false + BALLERINA_STAGE_CENTRAL: true + BALLERINA_CENTRAL_ACCESS_TOKEN: ${{ secrets.BALLERINA_CENTRAL_STAGE_ACCESS_TOKEN }} + packageUser: ${{ secrets.BALLERINA_BOT_USERNAME }} + packagePAT: ${{ secrets.BALLERINA_BOT_TOKEN }} + GITHUB_TOKEN: ${{ secrets.BALLERINA_BOT_TOKEN }} + run: | + sed -i 's/version=\(.*\)-SNAPSHOT/version=\1/g' gradle.properties + ./gradlew clean build -PpublishToCentral=true ${{ inputs.additional-publish-flags }} From beb8296f5aa0eb58c7b22deea2d31a9da33f1fc8 Mon Sep 17 00:00:00 2001 From: dharshi Date: Mon, 20 Jan 2025 15:18:01 +0530 Subject: [PATCH 39/43] Upgrade checkout action to v3 and grant execute permissions for gradlew in workflow files --- .github/workflows/build-timestamped-master.yml | 2 +- .github/workflows/central-publish.yml | 7 +++++-- .github/workflows/publish-release.yml | 7 +++++-- .github/workflows/trivy-scan.yml | 2 +- 4 files changed, 12 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build-timestamped-master.yml b/.github/workflows/build-timestamped-master.yml index af09565..e5348c9 100644 --- a/.github/workflows/build-timestamped-master.yml +++ b/.github/workflows/build-timestamped-master.yml @@ -17,7 +17,7 @@ jobs: if: github.repository_owner == 'xlibb' steps: - name: Checkout Repository - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Set up JDK 17 uses: actions/setup-java@v2 diff --git a/.github/workflows/central-publish.yml b/.github/workflows/central-publish.yml index 434728a..8f75cf0 100644 --- a/.github/workflows/central-publish.yml +++ b/.github/workflows/central-publish.yml @@ -17,7 +17,7 @@ jobs: if: github.repository_owner == 'xlibb' steps: - name: Checkout Repository - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Set up JDK 17 uses: actions/setup-java@v2 @@ -25,6 +25,9 @@ jobs: distribution: 'temurin' java-version: 17.0.7 + - name: Grant execute permission for gradlew + run: chmod +x gradlew + - name: Build with Gradle env: packageUser: ${{ github.actor }} @@ -38,7 +41,7 @@ jobs: uses: aquasecurity/trivy-action@0.23.0 with: scan-type: "rootfs" - scan-ref: "${{ github.workspace }}/ballerina/lib" + scan-ref: '/github/workspace/ballerina/lib' format: "table" timeout: "10m0s" exit-code: "1" diff --git a/.github/workflows/publish-release.yml b/.github/workflows/publish-release.yml index 6a98133..4b8cd07 100644 --- a/.github/workflows/publish-release.yml +++ b/.github/workflows/publish-release.yml @@ -12,13 +12,16 @@ jobs: if: github.repository_owner == 'xlibb' steps: - name: Checkout Repository - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Set up JDK 17 uses: actions/setup-java@v2 with: distribution: 'temurin' java-version: 17.0.7 + + - name: Grant execute permission for gradlew + run: chmod +x gradlew - name: Grant execute permission for gradlew run: chmod +x gradlew @@ -39,7 +42,7 @@ jobs: uses: aquasecurity/trivy-action@0.23.0 with: scan-type: "rootfs" - scan-ref: "${{ github.workspace }}/ballerina/lib" + scan-ref: '/github/workspace/ballerina/lib' format: "table" timeout: "10m0s" exit-code: "1" diff --git a/.github/workflows/trivy-scan.yml b/.github/workflows/trivy-scan.yml index 51bcedc..ce5625d 100644 --- a/.github/workflows/trivy-scan.yml +++ b/.github/workflows/trivy-scan.yml @@ -11,7 +11,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout Repository - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Set up JDK 17 uses: actions/setup-java@v2 From ad8cb3b3f498653521e5b44b111aa3a577c785d0 Mon Sep 17 00:00:00 2001 From: dharshi Date: Tue, 21 Jan 2025 09:51:32 +0530 Subject: [PATCH 40/43] [Automated] Update the native jar versions --- ballerina/Dependencies.toml | 65 +------------------------------------ 1 file changed, 1 insertion(+), 64 deletions(-) diff --git a/ballerina/Dependencies.toml b/ballerina/Dependencies.toml index ef62d24..7ae51d0 100644 --- a/ballerina/Dependencies.toml +++ b/ballerina/Dependencies.toml @@ -15,75 +15,12 @@ modules = [ {org = "ballerina", packageName = "jballerina.java", moduleName = "jballerina.java"} ] -[[package]] -org = "ballerina" -name = "lang.__internal" -version = "0.0.0" -scope = "testOnly" -dependencies = [ - {org = "ballerina", name = "jballerina.java"}, - {org = "ballerina", name = "lang.object"} -] - -[[package]] -org = "ballerina" -name = "lang.array" -version = "0.0.0" -scope = "testOnly" -dependencies = [ - {org = "ballerina", name = "jballerina.java"}, - {org = "ballerina", name = "lang.__internal"} -] - -[[package]] -org = "ballerina" -name = "lang.error" -version = "0.0.0" -scope = "testOnly" -dependencies = [ - {org = "ballerina", name = "jballerina.java"} -] - -[[package]] -org = "ballerina" -name = "lang.object" -version = "0.0.0" -scope = "testOnly" - -[[package]] -org = "ballerina" -name = "lang.runtime" -version = "0.0.0" -scope = "testOnly" -dependencies = [ - {org = "ballerina", name = "jballerina.java"} -] -modules = [ - {org = "ballerina", packageName = "lang.runtime", moduleName = "lang.runtime"} -] - -[[package]] -org = "ballerina" -name = "test" -version = "0.0.0" -scope = "testOnly" -dependencies = [ - {org = "ballerina", name = "jballerina.java"}, - {org = "ballerina", name = "lang.array"}, - {org = "ballerina", name = "lang.error"} -] -modules = [ - {org = "ballerina", packageName = "test", moduleName = "test"} -] - [[package]] org = "xlibb" name = "selenium" version = "0.1.0" dependencies = [ - {org = "ballerina", name = "jballerina.java"}, - {org = "ballerina", name = "lang.runtime"}, - {org = "ballerina", name = "test"} + {org = "ballerina", name = "jballerina.java"} ] modules = [ {org = "xlibb", packageName = "selenium", moduleName = "selenium"} From ff5a532618ffa4b5425ab40ef58da2a57a96e7d9 Mon Sep 17 00:00:00 2001 From: dharshi Date: Tue, 21 Jan 2025 09:52:08 +0530 Subject: [PATCH 41/43] Apply review changes --- .../workflows/build-with-bal-test-graalvm.yml | 37 -- .github/workflows/pull-request.yml | 4 +- README.md | 25 +- ballerina/Module.md | 4 +- ballerina/Package.md | 4 +- ballerina/tests/web_driver_test.bal | 566 ------------------ .../io/xlibb/selenium/SeleniumWebDriver.java | 38 +- .../io/xlibb/selenium/SeleniumWebElement.java | 84 +-- .../java/io/xlibb/selenium/utils/Utils.java | 8 +- 9 files changed, 77 insertions(+), 693 deletions(-) delete mode 100644 .github/workflows/build-with-bal-test-graalvm.yml delete mode 100644 ballerina/tests/web_driver_test.bal diff --git a/.github/workflows/build-with-bal-test-graalvm.yml b/.github/workflows/build-with-bal-test-graalvm.yml deleted file mode 100644 index eda657d..0000000 --- a/.github/workflows/build-with-bal-test-graalvm.yml +++ /dev/null @@ -1,37 +0,0 @@ -name: GraalVM Check - -on: - workflow_dispatch: - inputs: - lang_tag: - description: Branch/Release Tag of the Ballerina Lang - required: true - default: master - lang_version: - description: Ballerina Lang Version (If given ballerina lang build will be skipped) - required: false - default: '' - native_image_options: - description: Default native-image options - required: false - default: '' - schedule: - - cron: '30 18 * * *' - pull_request: - branches: - - main - types: [ opened, synchronize, reopened, labeled, unlabeled ] - -concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }} - cancel-in-progress: true - -jobs: - call_stdlib_workflow: - name: Run StdLib Workflow - if: ${{ github.event_name != 'schedule' || (github.event_name == 'schedule' && github.repository_owner == 'ballerina-platform') }} - uses: ballerina-platform/ballerina-standard-library/.github/workflows/build-with-bal-test-graalvm-template.yml@main - with: - lang_tag: ${{ inputs.lang_tag }} - lang_version: ${{ inputs.lang_version }} - native_image_options: '-J-Xmx7G ${{ inputs.native_image_options }}' diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml index 580f9f5..9479511 100644 --- a/.github/workflows/pull-request.yml +++ b/.github/workflows/pull-request.yml @@ -8,7 +8,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout Repository - uses: actions/checkout@v1 + uses: actions/checkout@v3 - name: Set up JDK 17 uses: actions/setup-java@v3 @@ -35,7 +35,7 @@ jobs: runs-on: windows-latest steps: - name: Checkout Repository - uses: actions/checkout@v1 + uses: actions/checkout@v3 - name: Set up JDK 17 uses: actions/setup-java@v2 diff --git a/README.md b/README.md index daf8e74..f8cdf9c 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ The core component of Selenium is the `WebDriver`. It is an interface for contro The constructor of the `WebDriver` takes `BrowserOptions` as an argument, which contains the following options: -1. `browserName` - A enum value specifies the type of browser to open. Acceptable values are `Sikulix:CHROME` or `Sikulix:FIREFOX`. The default is `Sikulix:CHROME`. +1. `browserName` - A enum value specifies the type of browser to open. Acceptable values are `selenium:CHROME` or `selenium:FIREFOX`. The default is `selenium:CHROME`. 2. `url` - The URL of the web application to open in the browser. 3. `headlessMode` - A boolean value indicating whether to run the browser in headless mode (without a GUI). The default is `false`. 4. `incognitoMode` - A boolean value indicating whether to run the browser in incognito mode. The default is `false`. @@ -40,7 +40,7 @@ selenium:WebDriver driver = new ({ ### Locating elements -`WebElement` in selenium represents an element in the DOM, which allows interaction (e.g., click, send keys). +`WebElement` in `selenium` represents an element in the DOM, which allows interaction (e.g., click, send keys). A locator is a way to identify `WebElement` on a page. Selenium provides support for several location strategies(locators) in WebDriver: @@ -183,20 +183,6 @@ io:println(driver.getTitle()); // Prints "The Internet" check driver.quit(); ``` -The core component of Selenium is the WebDriver. It is an interface for controlling a web browser instance and communicates with the browser through its native API. - -```ballerina -import xlibb/selenium; - -public function main() { - - selenium:WebDriver driver = new (); - - // Opens a new Chrome browser instance and navigates to the specified URL. - driver.openChrome("https://central.ballerina.io/"); -} -``` - ### Locating elements A locator is a way to identify elements on a page. Selenium provides support for several location strategies in WebDriver, such as class name, ID, CSS selector, name, tag name, and XPath. @@ -302,10 +288,9 @@ driver.quit(); ```ballerina // Initialize a new WebDriver instance -selenium:WebDriver driver = new (); - -// Open the specified URL in Chrome. -driver.openChrome("https://the-internet.herokuapp.com/windows"); +selenium:WebDriver driver = new ({ + url: "https://the-internet.herokuapp.com/windows" +}); // Print the title of the current window. io:println(driver.getTitle()); // Prints "The Internet" diff --git a/ballerina/Module.md b/ballerina/Module.md index dadd487..0e995ed 100644 --- a/ballerina/Module.md +++ b/ballerina/Module.md @@ -16,7 +16,7 @@ The core component of Selenium is the `WebDriver`. It is an interface for contro The constructor of the `WebDriver` takes `BrowserOptions` as an argument, which contains the following options: -1. `browserName` - A enum value specifies the type of browser to open. Acceptable values are `Sikulix:CHROME` or `Sikulix:FIREFOX`. The default is `Sikulix:CHROME`. +1. `browserName` - A enum value specifies the type of browser to open. Acceptable values are `selenium:CHROME` or `selenium:FIREFOX`. The default is `selenium:CHROME`. 2. `url` - The URL of the web application to open in the browser. 3. `headlessMode` - A boolean value indicating whether to run the browser in headless mode (without a GUI). The default is `false`. 4. `incognitoMode` - A boolean value indicating whether to run the browser in incognito mode. The default is `false`. @@ -32,7 +32,7 @@ selenium:WebDriver driver = new ({ ### Locating elements -`WebElement` in selenium represents an element in the DOM, which allows interaction (e.g., click, send keys). +`WebElement` in `selenium` represents an element in the DOM, which allows interaction (e.g., click, send keys). A locator is a way to identify `WebElement` on a page. Selenium provides support for several location strategies(locators) in WebDriver: diff --git a/ballerina/Package.md b/ballerina/Package.md index 63cec2c..3af86da 100644 --- a/ballerina/Package.md +++ b/ballerina/Package.md @@ -16,7 +16,7 @@ The core component of Selenium is the `WebDriver`. It is an interface for contro The constructor of the `WebDriver` takes `BrowserOptions` as an argument, which contains the following options: -1. `browserName` - A enum value specifies the type of browser to open. Acceptable values are `Sikulix:CHROME` or `Sikulix:FIREFOX`. The default is `Sikulix:CHROME`. +1. `browserName` - A enum value specifies the type of browser to open. Acceptable values are `selenium:CHROME` or `selenium:FIREFOX`. The default is `selenium:CHROME`. 2. `url` - The URL of the web application to open in the browser. 3. `headlessMode` - A boolean value indicating whether to run the browser in headless mode (without a GUI). The default is `false`. 4. `incognitoMode` - A boolean value indicating whether to run the browser in incognito mode. The default is `false`. @@ -31,7 +31,7 @@ selenium:WebDriver driver = new ({ ### Locating elements -`WebElement` in selenium represents an element in the DOM, which allows interaction (e.g., click, send keys). +`WebElement` in `selenium` represents an element in the DOM, which allows interaction (e.g., click, send keys). A locator is a way to identify `WebElement` on a page. Selenium provides support for several location strategies(locators) in WebDriver: diff --git a/ballerina/tests/web_driver_test.bal b/ballerina/tests/web_driver_test.bal deleted file mode 100644 index 5cf1642..0000000 --- a/ballerina/tests/web_driver_test.bal +++ /dev/null @@ -1,566 +0,0 @@ -// Copyright (c) 2025, WSO2 LLC. (http://www.wso2.com). - -// WSO2 LLC. licenses this file to you under the Apache License, -// Version 2.0 (the "License"); you may not use this file except -// in compliance with the License. -// You may obtain a copy of the License at - -// http://www.apache.org/licenses/LICENSE-2.0 - -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -import ballerina/lang.runtime; -import ballerina/test; - -string baseUrl = "https://ballerina-ipa.choreoapps.dev"; -WebDriver chromeDriver = check new ({ - headlessMode: true, - url: baseUrl + "/complex-dom", - browserName: CHROME, - additionalArguments: ["--disable-gpu"] -}); -WebDriver firefoxDriver = check new ({ - headlessMode: true, - url: baseUrl + "/complex-dom", - browserName: FIREFOX -}); - -@test:Config -function testInvalidURL() { - WebDriver|error driver = new ({ - headlessMode: true, - url: "invalid-baseUrl", - browserName: CHROME, - additionalArguments: ["--disable-gpu"] - }); - test:assertTrue(driver is error, "Expected error not thrown"); -} - -@test:Config { - dependsOn: [testInvalidURL], - dataProvider: driverProvider -} -function testGetTitle(WebDriver driver) { - string|Error actualTitle = driver.getTitle(); - string expectedTitle = "Complex DOM"; - test:assertEquals(actualTitle, expectedTitle, "Web page title mismatched"); -} - -@test:Config { - dependsOn: [testGetTitle], - dataProvider: driverProvider -} -function testGetCurrentUrl(WebDriver driver) { - string|Error actualValue = driver.getCurrentUrl(); - string expectedValue = baseUrl + "/complex-dom"; - test:assertEquals(actualValue, expectedValue, "Current URL mismatched"); -} - -@test:Config { - dependsOn: [testGetTitle], - dataProvider: driverProvider -} -function testNavigation(WebDriver driver) { - Error? navigationErr = driver.navigateTo(baseUrl + "/student-application"); - if navigationErr is error { - test:assertFail(navigationErr.message()); - } - string|Error actualValue = driver.getTitle(); - string expectedValue = "Student Application Form"; - test:assertEquals(actualValue, expectedValue); - navigationErr = driver.navigateBack(); - if navigationErr is error { - test:assertFail(navigationErr.message()); - } - actualValue = driver.getTitle(); - expectedValue = "Complex DOM"; - test:assertEquals(actualValue, expectedValue); - navigationErr = driver.navigateForward(); - if navigationErr is error { - test:assertFail(navigationErr.message()); - } - actualValue = driver.getTitle(); - expectedValue = "Student Application Form"; - test:assertEquals(actualValue, expectedValue); - navigationErr = driver.navigateBack(); - if navigationErr is error { - test:assertFail(navigationErr.message()); - } - actualValue = driver.getTitle(); - expectedValue = "Complex DOM"; - test:assertEquals(actualValue, expectedValue); -} - -@test:Config { - dependsOn: [testNavigation], - dataProvider: driverProvider -} -function testFindById(WebDriver driver) { - WebElement|Error element = driver.findById("main-heading"); - test:assertTrue(element is WebElement, "Element not found by ID"); - WebElement|Error invalidElement = driver.findById("invalid-id"); - test:assertTrue(invalidElement is Error, "Expected error not thrown"); -} - -@test:Config { - dependsOn: [testFindById], - dataProvider: driverProvider -} -function testFindByClassName(WebDriver driver) { - WebElement|Error element = driver.findByClassName("nav-links"); - test:assertTrue(element is WebElement, "Element not found by class name"); - WebElement|Error invalidElement = driver.findByClassName("invalid-class-name"); - test:assertTrue(invalidElement is Error, "Expected error not thrown"); -} - -@test:Config { - dependsOn: [testFindByClassName], - dataProvider: driverProvider -} -function testFindByTagName(WebDriver driver) { - WebElement|Error element = driver.findByTagName("h1"); - test:assertTrue(element is WebElement, "Element not found by tag name"); - WebElement|Error invalidElement = driver.findByTagName("invalid-tag-name"); - test:assertTrue(invalidElement is Error, "Expected error not thrown"); -} - -@test:Config { - dependsOn: [testFindByTagName], - dataProvider: driverProvider -} -function testFindByXPath(WebDriver driver) { - WebElement|Error element = driver.findByXpath("//section[@id='home']/div/button[1]"); - test:assertTrue(element is WebElement, "Element not found by XPath"); - WebElement|Error invalidElement = driver.findByXpath("//section[@id='home']/invalid-xpath"); - test:assertTrue(invalidElement is Error, "Expected error not thrown"); -} - -@test:Config { - dependsOn: [testFindByXPath], - dataProvider: driverProvider -} -function testFindByLinkText(WebDriver driver) { - WebElement|Error element = driver.findByLinkText("Home"); - test:assertTrue(element is WebElement, "Element not found by link text"); - WebElement|Error invalidElement = driver.findByLinkText("invalid-link-text"); - test:assertTrue(invalidElement is Error, "Expected error not thrown"); -} - -@test:Config { - dependsOn: [testFindByLinkText], - dataProvider: driverProvider -} -function testFindByPartialLinkText(WebDriver driver) { - WebElement|Error element = driver.findByPartialLinkText("Conta"); - test:assertTrue(element is WebElement, "Element not found by partial link text"); - WebElement|Error invalidElement = driver.findByPartialLinkText("invalid-partial-link-text"); - test:assertTrue(invalidElement is Error, "Expected error not thrown"); -} - -@test:Config { - dependsOn: [testFindByPartialLinkText], - dataProvider: driverProvider -} -function testFindByCssSelector(WebDriver driver) { - WebElement|Error element = driver.findByCssSelector(".nav-links > li:nth-child(1) > a"); - test:assertTrue(element is WebElement, "Element not found by CSS selector"); - WebElement|Error invalidElement = driver.findByCssSelector(".nav-links > #invalid-css-selector"); - test:assertTrue(invalidElement is Error, "Expected error not thrown"); -} - -@test:Config { - dependsOn: [testFindByCssSelector], - dataProvider: driverProvider -} -function testFindByName(WebDriver driver) { - WebElement|Error element = driver.findByName("email"); - test:assertTrue(element is WebElement, "Element not found by name"); - WebElement|Error invalidElement = driver.findByName("invalid-name"); - test:assertTrue(invalidElement is Error, "Expected error not thrown"); -} - -@test:Config { - dependsOn: [testFindByName], - dataProvider: driverProvider -} -function testFindAllByClassName(WebDriver driver) { - WebElement[]|Error elements = driver.findAllByClassName("nav-link"); - validateFindAll(elements, 3); - WebElement[]|Error invalidElements = driver.findAllByClassName("invalid-class-name"); - validateFindAll(invalidElements, 0); -} - -@test:Config { - dependsOn: [testFindAllByClassName], - dataProvider: driverProvider -} -function testFindAllByTagName(WebDriver driver) { - WebElement[]|Error elements = driver.findAllByTagName("section"); - validateFindAll(elements, 3); - WebElement[]|Error invalidElements = driver.findAllByTagName("invalid-tag-name"); - validateFindAll(invalidElements, 0); -} - -@test:Config { - dependsOn: [testFindAllByTagName], - dataProvider: driverProvider -} -function testFindAllByXPath(WebDriver driver) { - WebElement[]|Error elements = driver.findAllByXpath("//section"); - validateFindAll(elements, 3); - WebElement[]|Error invalidElements = driver.findAllByXpath("//invalid-xpath"); - validateFindAll(invalidElements, 0); -} - -@test:Config { - dependsOn: [testFindAllByXPath], - dataProvider: driverProvider -} -function testFindAllByLinkText(WebDriver driver) { - WebElement[]|Error elements = driver.findAllByLinkText("Home"); - validateFindAll(elements, 1); - WebElement[]|Error invalidElements = driver.findAllByLinkText("invalid-link-text"); - validateFindAll(invalidElements, 0); -} - -@test:Config { - dependsOn: [testFindAllByLinkText], - dataProvider: driverProvider -} -function testFindAllByPartialLinkText(WebDriver driver) { - WebElement[]|Error elements = driver.findAllByPartialLinkText("Conta"); - validateFindAll(elements, 1); - WebElement[]|Error invalidElements = driver.findAllByPartialLinkText("invalid-partial-link-text"); - validateFindAll(invalidElements, 0); -} - -@test:Config { - dependsOn: [testFindAllByPartialLinkText], - dataProvider: driverProvider -} -function testFindAllByCssSelector(WebDriver driver) { - WebElement[]|Error elements = driver.findAllByCssSelector(".nav-links > li"); - validateFindAll(elements, 3); - WebElement[]|Error invalidElements = driver.findAllByCssSelector(".nav-links > #invalid-css-selector"); - validateFindAll(invalidElements, 0); -} - -@test:Config { - dependsOn: [testFindAllByCssSelector], - dataProvider: driverProvider -} -function testFindAllByName(WebDriver driver) { - WebElement[]|Error elements = driver.findAllByName("email"); - validateFindAll(elements, 1); - WebElement[]|Error invalidElements = driver.findAllByName("invalid-name"); - validateFindAll(invalidElements, 0); -} - -@test:Config { - dependsOn: [testFindAllByName], - dataProvider: driverProvider -} -function testGetText(WebDriver driver) returns Error? { - string|Error actualValue = (check driver.findById("main-heading")).getText(); - string expectedValue = "Complex DOM"; - test:assertEquals(actualValue, expectedValue, "Element text mismatched"); -} - -@test:Config { - dependsOn: [testGetText], - dataProvider: driverProvider -} -function testGetTagName(WebDriver driver) returns Error? { - string|Error actualValue = (check driver.findById("main-heading")).getTagName(); - string expectedValue = "h1"; - test:assertEquals(actualValue, expectedValue, "Element tag name mismatched"); -} - -@test:Config { - dependsOn: [testGetTagName], - dataProvider: driverProvider -} -function testGetDomAttribute(WebDriver driver) returns Error? { - string|Error actualValue = (check driver.findByCssSelector(".nav-links > li:nth-child(1) > a")).getDomAttribute("href"); - string expectedValue = "#home"; - test:assertEquals(actualValue, expectedValue, "Element attribute mismatched"); -} - -@test:Config { - dependsOn: [testGetDomAttribute], - dataProvider: driverProvider -} -function testClick(WebDriver driver) returns Error? { - WebElement element = check driver.findById("home-button2"); - Error? clickErr = element.click(); - if clickErr is Error { - test:assertFail("Failed to click the element"); - } - string|Error actualValue = element.getText(); - string expectedValue = "Click 1"; - test:assertEquals(actualValue, expectedValue, "Element text mismatched"); -} - -@test:Config { - dependsOn: [testClick], - dataProvider: driverProvider -} -function testIsDisplayed(WebDriver driver) returns Error? { - boolean|Error actualValue = (check driver.findById("home-button2")).isDisplayed(); - if actualValue is Error { - test:assertFail("Failed to check element display status"); - } - test:assertTrue(actualValue, "Element not displayed. Expected to be displayed"); - actualValue = (check driver.findById("hidden-element")).isDisplayed(); - if actualValue is Error { - test:assertFail("Failed to check element display status"); - } - test:assertFalse(actualValue, "Element is displayed. Expected not to be displayed"); -} - -@test:Config { - dependsOn: [testFindByName], - dataProvider: driverProvider -} -function testIsEnabled(WebDriver driver) returns Error? { - boolean|Error actualValue = (check driver.findByName("email")).isEnabled(); - if actualValue is Error { - test:assertFail("Failed to check element enabled status"); - } - test:assertTrue(actualValue, "Element not enabled. Expected to be enabled"); - actualValue = (check driver.findByName("disabled-element")).isEnabled(); - if actualValue is Error { - test:assertFail("Failed to check element enabled status"); - } - test:assertFalse(actualValue, "Element is enabled. Expected not to be enabled"); -} - -@test:Config { - dependsOn: [testIsEnabled], - dataProvider: driverProvider -} -function testIsSelected(WebDriver driver) returns Error? { - WebElement element = check driver.findByName("select-example"); - boolean|Error actualValue = element.isSelected(); - if actualValue is Error { - test:assertFail("Failed to check element selected status"); - } - test:assertFalse(actualValue, "Element is selected. Expected not to be selected"); - check element.click(); - actualValue = element.isSelected(); - if actualValue is Error { - test:assertFail("Failed to check element selected status"); - } - test:assertTrue(actualValue, "Element not selected. Expected to be selected"); -} - -@test:Config { - dependsOn: [testIsSelected], - dataProvider: driverProvider -} -function testSendKeys(WebDriver driver) returns Error? { - WebElement element = check driver.findByName("email"); - Error? sendKeysErr = element.sendKeys("example@abc.com"); - if sendKeysErr is Error { - test:assertFail("Failed to send keys to the element"); - } - string actualValue = check element.getDomAttribute("value"); - string expectedValue = "example@abc.com"; - test:assertEquals(actualValue, expectedValue, "Element value mismatched"); -} - -@test:Config { - dependsOn: [testSendKeys], - dataProvider: driverProvider -} -function testAlert(WebDriver driver) returns Error? { - WebElement element = check driver.findById("home-button"); - check element.click(); - Error? alertAcceptError = driver.acceptAlert(); - if (alertAcceptError is Error) { - test:assertFail(alertAcceptError.message()); - } else { - string actualValue = check element.getText(); - string expectedValue = "Happy"; - test:assertEquals(actualValue, expectedValue); - check element.click(); - Error? alertDismissError = driver.dismissAlert(); - if (alertDismissError is Error) { - test:assertFail(alertDismissError.message()); - } else { - actualValue = check element.getText(); - expectedValue = "Sad"; - test:assertEquals(actualValue, expectedValue); - } - } -} - -@test:Config { - dependsOn: [testAlert], - dataProvider: driverProvider -} -function testWindowHandle(WebDriver driver) returns Error? { - check (check driver.findByLinkText("Learn more")).click(); - string|Error firstWindow = driver.getCurrentWindowHandle(); - string[]|Error allWindows = driver.getAllWindowHandles(); - if allWindows is Error || firstWindow is Error { - test:assertFail("Failed to get window handles"); - } - test:assertEquals(allWindows.length(), 2); - test:assertEquals(allWindows[0], firstWindow); - Error? handleError = driver.switchToWindowHandle(allWindows[1]); - if (handleError is Error) { - test:assertFail("Failed to switch to new window"); - } else { - runtime:sleep(3); - string|Error actualValue = driver.getTitle(); - string expectedValue = "New Window"; - test:assertEquals(actualValue, expectedValue); - Error? closeErr = driver.closeCurrentWindowHandle(); - if closeErr is Error { - test:assertFail("Failed to close new window"); - } - handleError = driver.switchToWindowHandle(firstWindow); - if (handleError is Error) { - test:assertFail("Failed to switch to first window"); - } else { - actualValue = driver.getTitle(); - expectedValue = "Complex DOM"; - test:assertEquals(actualValue, expectedValue); - } - - } - -} - -@test:Config { - dependsOn: [testWindowHandle], - dataProvider: driverProvider -} -function testRefresh(WebDriver driver) returns Error? { - Error? refresh = driver.refresh(); - if refresh is Error { - test:assertFail("Failed to refresh the page"); - } - string actualValue = check (check driver.findById("home-button2")).getText(); - string expectedValue = "Click Me"; - test:assertEquals(actualValue, expectedValue, "Element text mismatched"); -} - -@test:Config { - dependsOn: [testRefresh], - dataProvider: driverProvider -} -function testExecuteJavascript(WebDriver driver) returns Error? { - string script = "document.getElementById('home-button2').click();"; - Error? jsError = driver.executeJavascript(script); - if jsError is Error { - test:assertFail("Failed to execute JavaScript"); - } - string actualValue = check (check driver.findById("home-button2")).getText(); - string expectedValue = "Click 1"; - test:assertEquals(actualValue, expectedValue, "Element text mismatched"); -} - -@test:Config { - dependsOn: [testExecuteJavascript], - dataProvider: driverProvider -} -function testInvalidElementStateError(WebDriver driver) returns Error? { - Error? err = (check chromeDriver.findByName("disabled-element")).sendKeys("hello"); - test:assertTrue(err is InvalidElementStateError, "Expected InvalidElementStateError, but got another result."); -} - -@test:Config { - dependsOn: [testInvalidElementStateError], - dataProvider: driverProvider -} -function testNoSuchElementError(WebDriver driver) returns Error? { - WebElement|Error err = driver.findById("invalid-id"); - test:assertTrue(err is NoSuchElementError, "Expected NoSuchElementError, but got another result."); -} - -@test:Config { - dependsOn: [testNoSuchElementError], - dataProvider: driverProvider -} -function testNoAlertPresentError(WebDriver driver) returns Error? { - Error? err = driver.acceptAlert(); - test:assertTrue(err is NoAlertPresentError, "Expected NoAlertPresentError, but got another result."); -} - -@test:Config { - dependsOn: [testNoSuchElementError], - dataProvider: driverProvider -} -function testNoSuchWindowError(WebDriver driver) returns Error? { - Error? err = driver.switchToWindowHandle("invalid-window-handle"); - test:assertTrue(err is NoSuchWindowError, "Expected NoSuchWindowError, but got another result."); -} - -@test:Config { - dependsOn: [testNoSuchWindowError], - dataProvider: driverProvider -} -function testJavascriptError(WebDriver driver) returns Error? { - Error? err = driver.executeJavascript("consle.log('hello world')"); - test:assertTrue(err is JavascriptError, "Expected JavascriptError, but got another result."); -} - -@test:Config { - dependsOn: [testNoSuchWindowError], - dataProvider: driverProvider -} -function testInvalidArgumentError(WebDriver driver) returns Error? { - WebDriver|Error err = new({url: "invalid-url", headlessMode: true}); - test:assertTrue(err is InvalidArgumentError, "Expected InvalidArgumentError, but got another result."); -} - -@test:Config { - dependsOn: [testInvalidArgumentError], - dataProvider: driverProvider -} -function testInvalidSelectorError(WebDriver driver) returns Error? { - WebElement|Error err = driver.findByCssSelector("input:invalid-pseudo-class"); - test:assertTrue(err is InvalidSelectorError, "Expected InvalidSelectorError, but got another result."); -} - -@test:Config { - dependsOn: [testInvalidSelectorError], - dataProvider: driverProvider -} -function testUnhandledAlertError(WebDriver driver) returns Error? { - WebElement element = check driver.findById("home-button"); - check element.click(); - Error? err = element.click(); - test:assertTrue(err is UnhandledAlertError, "Expected UnhandledAlertError, but got another result."); -} - -@test:AfterSuite -function teardown() { - Error? chromeQuitErr = chromeDriver.quit(); - Error? firefoxQuitErr = firefoxDriver.quit(); - if chromeQuitErr is Error { - test:assertFail("Failed to quit Chrome driver"); - } - if firefoxQuitErr is Error { - test:assertFail("Failed to quit Firefox driver"); - } -} - -function validateFindAll(WebElement[]|Error elements, int expectedCount) { - if (elements is Error) { - test:assertFail(elements.message()); - } else { - test:assertEquals(elements.length(), expectedCount, "Element count mismatched"); - } -} - -function driverProvider() returns WebDriver[][] { - return [[chromeDriver], [firefoxDriver]]; -} diff --git a/native/src/main/java/io/xlibb/selenium/SeleniumWebDriver.java b/native/src/main/java/io/xlibb/selenium/SeleniumWebDriver.java index 67f17d8..84a07c8 100644 --- a/native/src/main/java/io/xlibb/selenium/SeleniumWebDriver.java +++ b/native/src/main/java/io/xlibb/selenium/SeleniumWebDriver.java @@ -35,11 +35,11 @@ import java.util.List; import java.util.Set; +/** + * Provide APIs to interact with web browsers. + */ public class SeleniumWebDriver { - public static final String DRIVER_OBJECT = "nativeDriverObject"; - public static final String WEB_ELEMENT_OBJECT_TYPE = "WebElement"; - public static Object openChrome(BObject webDriver, BMap options) { boolean headless = options.getBooleanValue(StringUtils.fromString("headlessMode")); String url = options.getStringValue(StringUtils.fromString("url")).toString(); @@ -58,7 +58,7 @@ public static Object openChrome(BObject webDriver, BMap options for (String arg: additionalArguments) { chromeOptions.addArguments(arg); } - webDriver.addNativeData(DRIVER_OBJECT, new ChromeDriver(chromeOptions)); + webDriver.addNativeData(Utils.DRIVER_OBJECT, new ChromeDriver(chromeOptions)); Utils.getDriverNObject(webDriver).get(url); return null; } catch (Exception e) { @@ -87,7 +87,7 @@ public static Object openFirefox(BObject webDriver, BMap option for (String arg: additionalArguments) { firefoxOptions.addArguments(arg); } - webDriver.addNativeData(DRIVER_OBJECT, new FirefoxDriver(firefoxOptions)); + webDriver.addNativeData(Utils.DRIVER_OBJECT, new FirefoxDriver(firefoxOptions)); Utils.getDriverNObject(webDriver).get(url); return null; } catch (Exception e) { @@ -253,8 +253,8 @@ public static Object findAllByTagName(BObject webDriver, BString tagName) { try { List webElements = Utils.getDriverNObject(webDriver) .findElements(By.tagName(tagName.toString())); - return ValueCreator.createArrayValue(Utils.getWebElementBObjectArr(webElements) - , Utils.getArrayType(WEB_ELEMENT_OBJECT_TYPE)); + return ValueCreator.createArrayValue(Utils.getWebElementBObjectArray(webElements) + , Utils.getArrayType(Utils.WEB_ELEMENT_OBJECT_TYPE)); } catch (Exception e) { return Utils.getBError(e.getMessage(), e); } @@ -264,8 +264,8 @@ public static Object findAllByClassName(BObject webDriver, BString className) { try { List webElements = Utils.getDriverNObject(webDriver) .findElements(By.className(className.toString())); - return ValueCreator.createArrayValue(Utils.getWebElementBObjectArr(webElements) - , Utils.getArrayType(WEB_ELEMENT_OBJECT_TYPE)); + return ValueCreator.createArrayValue(Utils.getWebElementBObjectArray(webElements) + , Utils.getArrayType(Utils.WEB_ELEMENT_OBJECT_TYPE)); } catch (Exception e) { return Utils.getBError(e.getMessage(), e); } @@ -275,8 +275,8 @@ public static Object findAllByCssSelector(BObject webDriver, BString cssSelector try { List webElements = Utils.getDriverNObject(webDriver) .findElements(By.cssSelector(cssSelector.toString())); - return ValueCreator.createArrayValue(Utils.getWebElementBObjectArr(webElements) - , Utils.getArrayType(WEB_ELEMENT_OBJECT_TYPE)); + return ValueCreator.createArrayValue(Utils.getWebElementBObjectArray(webElements) + , Utils.getArrayType(Utils.WEB_ELEMENT_OBJECT_TYPE)); } catch (Exception e) { return Utils.getBError(e.getMessage(), e); } @@ -286,8 +286,8 @@ public static Object findAllByLinkText(BObject webDriver, BString linkText) { try { List webElements = Utils.getDriverNObject(webDriver) .findElements(By.linkText(linkText.toString())); - return ValueCreator.createArrayValue(Utils.getWebElementBObjectArr(webElements) - , Utils.getArrayType(WEB_ELEMENT_OBJECT_TYPE)); + return ValueCreator.createArrayValue(Utils.getWebElementBObjectArray(webElements) + , Utils.getArrayType(Utils.WEB_ELEMENT_OBJECT_TYPE)); } catch (Exception e) { return Utils.getBError(e.getMessage(), e); } @@ -297,8 +297,8 @@ public static Object findAllByPartialLinkText(BObject webDriver, BString partial try { List webElements = Utils.getDriverNObject(webDriver).findElements( By.partialLinkText(partialLinkText.toString())); - return ValueCreator.createArrayValue(Utils.getWebElementBObjectArr(webElements) - , Utils.getArrayType(WEB_ELEMENT_OBJECT_TYPE)); + return ValueCreator.createArrayValue(Utils.getWebElementBObjectArray(webElements) + , Utils.getArrayType(Utils.WEB_ELEMENT_OBJECT_TYPE)); } catch (Exception e) { return Utils.getBError(e.getMessage(), e); } @@ -307,8 +307,8 @@ public static Object findAllByPartialLinkText(BObject webDriver, BString partial public static Object findAllByXpath(BObject webDriver, BString xpath) { try { List webElements = Utils.getDriverNObject(webDriver).findElements(By.xpath(xpath.toString())); - return ValueCreator.createArrayValue(Utils.getWebElementBObjectArr(webElements) - , Utils.getArrayType(WEB_ELEMENT_OBJECT_TYPE)); + return ValueCreator.createArrayValue(Utils.getWebElementBObjectArray(webElements) + , Utils.getArrayType(Utils.WEB_ELEMENT_OBJECT_TYPE)); } catch (Exception e) { return Utils.getBError(e.getMessage(), e); } @@ -317,8 +317,8 @@ public static Object findAllByXpath(BObject webDriver, BString xpath) { public static Object findAllByName(BObject webDriver, BString name) { try { List webElements = Utils.getDriverNObject(webDriver).findElements(By.name(name.toString())); - return ValueCreator.createArrayValue(Utils.getWebElementBObjectArr(webElements) - , Utils.getArrayType(WEB_ELEMENT_OBJECT_TYPE)); + return ValueCreator.createArrayValue(Utils.getWebElementBObjectArray(webElements) + , Utils.getArrayType(Utils.WEB_ELEMENT_OBJECT_TYPE)); } catch (Exception e) { return Utils.getBError(e.getMessage(), e); } diff --git a/native/src/main/java/io/xlibb/selenium/SeleniumWebElement.java b/native/src/main/java/io/xlibb/selenium/SeleniumWebElement.java index 6aec730..510ff63 100644 --- a/native/src/main/java/io/xlibb/selenium/SeleniumWebElement.java +++ b/native/src/main/java/io/xlibb/selenium/SeleniumWebElement.java @@ -26,14 +26,14 @@ import java.util.List; +/** + * Provide APIs to interact with web elements. + */ public class SeleniumWebElement { - public static final String WEB_ELEMENT_OBJECT = "nativeWebElementObject"; - public static final String WEB_ELEMENT_OBJECT_TYPE = "WebElement"; - public static Object click(BObject element) { try { - WebElement nativeElement = (WebElement) element.getNativeData(WEB_ELEMENT_OBJECT); + WebElement nativeElement = (WebElement) element.getNativeData(Utils.WEB_ELEMENT_OBJECT); nativeElement.click(); return null; } catch (Exception e) { @@ -43,7 +43,7 @@ public static Object click(BObject element) { public static Object clear(BObject element) { try { - WebElement nativeElement = (WebElement) element.getNativeData(WEB_ELEMENT_OBJECT); + WebElement nativeElement = (WebElement) element.getNativeData(Utils.WEB_ELEMENT_OBJECT); nativeElement.clear(); return null; } catch (Exception e) { @@ -53,7 +53,7 @@ public static Object clear(BObject element) { public static Object sendKeys(BObject element, BString value) { try { - WebElement nativeElement = (WebElement) element.getNativeData(WEB_ELEMENT_OBJECT); + WebElement nativeElement = (WebElement) element.getNativeData(Utils.WEB_ELEMENT_OBJECT); nativeElement.sendKeys(value.toString()); return null; } catch (Exception e) { @@ -63,7 +63,7 @@ public static Object sendKeys(BObject element, BString value) { public static Object getTagName(BObject element) { try { - WebElement nativeElement = (WebElement) element.getNativeData(WEB_ELEMENT_OBJECT); + WebElement nativeElement = (WebElement) element.getNativeData(Utils.WEB_ELEMENT_OBJECT); return StringUtils.fromString(nativeElement.getTagName()); } catch (Exception e) { return Utils.getBError(e.getMessage(), e); @@ -72,7 +72,7 @@ public static Object getTagName(BObject element) { public static Object getText(BObject element) { try { - WebElement nativeElement = (WebElement) element.getNativeData(WEB_ELEMENT_OBJECT); + WebElement nativeElement = (WebElement) element.getNativeData(Utils.WEB_ELEMENT_OBJECT); return StringUtils.fromString(nativeElement.getText()); } catch (Exception e) { return Utils.getBError(e.getMessage(), e); @@ -81,7 +81,7 @@ public static Object getText(BObject element) { public static Object getDomAttribute(BObject element, BString value) { try { - WebElement nativeElement = (WebElement) element.getNativeData(WEB_ELEMENT_OBJECT); + WebElement nativeElement = (WebElement) element.getNativeData(Utils.WEB_ELEMENT_OBJECT); return StringUtils.fromString(nativeElement.getDomAttribute(value.toString())); } catch (Exception e) { return Utils.getBError(e.getMessage(), e); @@ -90,7 +90,7 @@ public static Object getDomAttribute(BObject element, BString value) { public static Object getDomProperty(BObject element, BString value) { try { - WebElement nativeElement = (WebElement) element.getNativeData(WEB_ELEMENT_OBJECT); + WebElement nativeElement = (WebElement) element.getNativeData(Utils.WEB_ELEMENT_OBJECT); return StringUtils.fromString(nativeElement.getDomProperty(value.toString())); } catch (Exception e) { return Utils.getBError(e.getMessage(), e); @@ -99,7 +99,7 @@ public static Object getDomProperty(BObject element, BString value) { public static Object isDisplayed(BObject element) { try { - WebElement nativeElement = (WebElement) element.getNativeData(WEB_ELEMENT_OBJECT); + WebElement nativeElement = (WebElement) element.getNativeData(Utils.WEB_ELEMENT_OBJECT); return nativeElement.isDisplayed(); } catch (Exception e) { return Utils.getBError(e.getMessage(), e); @@ -108,7 +108,7 @@ public static Object isDisplayed(BObject element) { public static Object isEnabled(BObject element) { try { - WebElement nativeElement = (WebElement) element.getNativeData(WEB_ELEMENT_OBJECT); + WebElement nativeElement = (WebElement) element.getNativeData(Utils.WEB_ELEMENT_OBJECT); return nativeElement.isEnabled(); } catch (Exception e) { return Utils.getBError(e.getMessage(), e); @@ -117,7 +117,7 @@ public static Object isEnabled(BObject element) { public static Object isSelected(BObject element) { try { - WebElement nativeElement = (WebElement) element.getNativeData(WEB_ELEMENT_OBJECT); + WebElement nativeElement = (WebElement) element.getNativeData(Utils.WEB_ELEMENT_OBJECT); return nativeElement.isSelected(); } catch (Exception e) { return Utils.getBError(e.getMessage(), e); @@ -126,7 +126,7 @@ public static Object isSelected(BObject element) { public static Object findById(BObject element, BString id) { try { - WebElement nativeElement = (WebElement) element.getNativeData(WEB_ELEMENT_OBJECT); + WebElement nativeElement = (WebElement) element.getNativeData(Utils.WEB_ELEMENT_OBJECT); return Utils.getWebElementBObject(nativeElement.findElement(By.id(id.toString()))); } catch (Exception e) { return Utils.getBError(e.getMessage(), e); @@ -135,7 +135,7 @@ public static Object findById(BObject element, BString id) { public static Object findByClassName(BObject element, BString className) { try { - WebElement nativeElement = (WebElement) element.getNativeData(WEB_ELEMENT_OBJECT); + WebElement nativeElement = (WebElement) element.getNativeData(Utils.WEB_ELEMENT_OBJECT); return Utils.getWebElementBObject(nativeElement.findElement(By.className(className.toString()))); } catch (Exception e) { return Utils.getBError(e.getMessage(), e); @@ -144,7 +144,7 @@ public static Object findByClassName(BObject element, BString className) { public static Object findByTagName(BObject element, BString tagName) { try { - WebElement nativeElement = (WebElement) element.getNativeData(WEB_ELEMENT_OBJECT); + WebElement nativeElement = (WebElement) element.getNativeData(Utils.WEB_ELEMENT_OBJECT); return Utils.getWebElementBObject(nativeElement.findElement(By.tagName(tagName.toString()))); } catch (Exception e) { return Utils.getBError(e.getMessage(), e); @@ -152,13 +152,13 @@ public static Object findByTagName(BObject element, BString tagName) { } public static Object findByXpath(BObject element, BString xpath) { - WebElement nativeElement = (WebElement) element.getNativeData(WEB_ELEMENT_OBJECT); + WebElement nativeElement = (WebElement) element.getNativeData(Utils.WEB_ELEMENT_OBJECT); return Utils.getWebElementBObject(nativeElement.findElement(By.xpath(xpath.toString()))); } public static Object findByCssSelector(BObject element, BString cssSelector) { try { - WebElement nativeElement = (WebElement) element.getNativeData(WEB_ELEMENT_OBJECT); + WebElement nativeElement = (WebElement) element.getNativeData(Utils.WEB_ELEMENT_OBJECT); return Utils.getWebElementBObject(nativeElement.findElement(By.cssSelector(cssSelector.toString()))); } catch (Exception e) { return Utils.getBError(e.getMessage(), e); @@ -167,7 +167,7 @@ public static Object findByCssSelector(BObject element, BString cssSelector) { public static Object findByName(BObject element, BString name) { try { - WebElement nativeElement = (WebElement) element.getNativeData(WEB_ELEMENT_OBJECT); + WebElement nativeElement = (WebElement) element.getNativeData(Utils.WEB_ELEMENT_OBJECT); return Utils.getWebElementBObject(nativeElement.findElement(By.name(name.toString()))); } catch (Exception e) { return Utils.getBError(e.getMessage(), e); @@ -176,7 +176,7 @@ public static Object findByName(BObject element, BString name) { public static Object findByLinkText(BObject element, BString linkText) { try { - WebElement nativeElement = (WebElement) element.getNativeData(WEB_ELEMENT_OBJECT); + WebElement nativeElement = (WebElement) element.getNativeData(Utils.WEB_ELEMENT_OBJECT); return Utils.getWebElementBObject(nativeElement.findElement(By.linkText(linkText.toString()))); } catch (Exception e) { return Utils.getBError(e.getMessage(), e); @@ -185,7 +185,7 @@ public static Object findByLinkText(BObject element, BString linkText) { public static Object findByPartialLinkText(BObject element, BString partialLinkText) { try { - WebElement nativeElement = (WebElement) element.getNativeData(WEB_ELEMENT_OBJECT); + WebElement nativeElement = (WebElement) element.getNativeData(Utils.WEB_ELEMENT_OBJECT); return Utils.getWebElementBObject(nativeElement .findElement(By.partialLinkText(partialLinkText.toString()))); } catch (Exception e) { @@ -195,10 +195,10 @@ public static Object findByPartialLinkText(BObject element, BString partialLinkT public static Object findAllByTagName(BObject element, BString tagName) { try { - WebElement nativeElement = (WebElement) element.getNativeData(WEB_ELEMENT_OBJECT); + WebElement nativeElement = (WebElement) element.getNativeData(Utils.WEB_ELEMENT_OBJECT); List nestedElements = nativeElement.findElements(By.tagName(tagName.toString())); - return ValueCreator.createArrayValue(Utils.getWebElementBObjectArr(nestedElements), - Utils.getArrayType(WEB_ELEMENT_OBJECT_TYPE)); + return ValueCreator.createArrayValue(Utils.getWebElementBObjectArray(nestedElements), + Utils.getArrayType(Utils.WEB_ELEMENT_OBJECT_TYPE)); } catch (Exception e) { return Utils.getBError(e.getMessage(), e); } @@ -206,10 +206,10 @@ public static Object findAllByTagName(BObject element, BString tagName) { public static Object findAllByClassName(BObject element, BString className) { try { - WebElement nativeElement = (WebElement) element.getNativeData(WEB_ELEMENT_OBJECT); + WebElement nativeElement = (WebElement) element.getNativeData(Utils.WEB_ELEMENT_OBJECT); List nestedElements = nativeElement.findElements(By.className(className.toString())); - return ValueCreator.createArrayValue(Utils.getWebElementBObjectArr(nestedElements), - Utils.getArrayType(WEB_ELEMENT_OBJECT_TYPE)); + return ValueCreator.createArrayValue(Utils.getWebElementBObjectArray(nestedElements), + Utils.getArrayType(Utils.WEB_ELEMENT_OBJECT_TYPE)); } catch (Exception e) { return Utils.getBError(e.getMessage(), e); } @@ -217,10 +217,10 @@ public static Object findAllByClassName(BObject element, BString className) { public static Object findAllByCssSelector(BObject element, BString cssSelector) { try { - WebElement nativeElement = (WebElement) element.getNativeData(WEB_ELEMENT_OBJECT); + WebElement nativeElement = (WebElement) element.getNativeData(Utils.WEB_ELEMENT_OBJECT); List nestedElements = nativeElement.findElements(By.cssSelector(cssSelector.toString())); - return ValueCreator.createArrayValue(Utils.getWebElementBObjectArr(nestedElements), - Utils.getArrayType(WEB_ELEMENT_OBJECT_TYPE)); + return ValueCreator.createArrayValue(Utils.getWebElementBObjectArray(nestedElements), + Utils.getArrayType(Utils.WEB_ELEMENT_OBJECT_TYPE)); } catch (Exception e) { return Utils.getBError(e.getMessage(), e); } @@ -228,10 +228,10 @@ public static Object findAllByCssSelector(BObject element, BString cssSelector) public static Object findAllByLinkText(BObject element, BString linkText) { try { - WebElement nativeElement = (WebElement) element.getNativeData(WEB_ELEMENT_OBJECT); + WebElement nativeElement = (WebElement) element.getNativeData(Utils.WEB_ELEMENT_OBJECT); List nestedElements = nativeElement.findElements(By.linkText(linkText.toString())); - return ValueCreator.createArrayValue(Utils.getWebElementBObjectArr(nestedElements), - Utils.getArrayType(WEB_ELEMENT_OBJECT_TYPE)); + return ValueCreator.createArrayValue(Utils.getWebElementBObjectArray(nestedElements), + Utils.getArrayType(Utils.WEB_ELEMENT_OBJECT_TYPE)); } catch (Exception e) { return Utils.getBError(e.getMessage(), e); } @@ -239,11 +239,11 @@ public static Object findAllByLinkText(BObject element, BString linkText) { public static Object findAllByPartialLinkText(BObject element, BString partialLinkText) { try { - WebElement nativeElement = (WebElement) element.getNativeData(WEB_ELEMENT_OBJECT); + WebElement nativeElement = (WebElement) element.getNativeData(Utils.WEB_ELEMENT_OBJECT); List nestedElements = nativeElement.findElements(By .partialLinkText(partialLinkText.toString())); - return ValueCreator.createArrayValue(Utils.getWebElementBObjectArr(nestedElements), - Utils.getArrayType(WEB_ELEMENT_OBJECT_TYPE)); + return ValueCreator.createArrayValue(Utils.getWebElementBObjectArray(nestedElements), + Utils.getArrayType(Utils.WEB_ELEMENT_OBJECT_TYPE)); } catch (Exception e) { return Utils.getBError(e.getMessage(), e); } @@ -251,10 +251,10 @@ public static Object findAllByPartialLinkText(BObject element, BString partialLi public static Object findAllByXpath(BObject element, BString xpath) { try { - WebElement nativeElement = (WebElement) element.getNativeData(WEB_ELEMENT_OBJECT); + WebElement nativeElement = (WebElement) element.getNativeData(Utils.WEB_ELEMENT_OBJECT); List nestedElements = nativeElement.findElements(By.xpath(xpath.toString())); - return ValueCreator.createArrayValue(Utils.getWebElementBObjectArr(nestedElements), - Utils.getArrayType(WEB_ELEMENT_OBJECT_TYPE)); + return ValueCreator.createArrayValue(Utils.getWebElementBObjectArray(nestedElements), + Utils.getArrayType(Utils.WEB_ELEMENT_OBJECT_TYPE)); } catch (Exception e) { return Utils.getBError(e.getMessage(), e); } @@ -262,10 +262,10 @@ public static Object findAllByXpath(BObject element, BString xpath) { public static Object findAllByName(BObject element, BString name) { try { - WebElement nativeElement = (WebElement) element.getNativeData(WEB_ELEMENT_OBJECT); + WebElement nativeElement = (WebElement) element.getNativeData(Utils.WEB_ELEMENT_OBJECT); List nestedElements = nativeElement.findElements(By.name(name.toString())); - return ValueCreator.createArrayValue(Utils.getWebElementBObjectArr(nestedElements), - Utils.getArrayType(WEB_ELEMENT_OBJECT_TYPE)); + return ValueCreator.createArrayValue(Utils.getWebElementBObjectArray(nestedElements), + Utils.getArrayType(Utils.WEB_ELEMENT_OBJECT_TYPE)); } catch (Exception e) { return Utils.getBError(e.getMessage(), e); } diff --git a/native/src/main/java/io/xlibb/selenium/utils/Utils.java b/native/src/main/java/io/xlibb/selenium/utils/Utils.java index 4d40a97..32acc28 100644 --- a/native/src/main/java/io/xlibb/selenium/utils/Utils.java +++ b/native/src/main/java/io/xlibb/selenium/utils/Utils.java @@ -29,8 +29,7 @@ import java.util.List; - -public class Utils { +public final class Utils { public static final String DRIVER_OBJECT = "nativeDriverObject"; public static final String WEB_ELEMENT_OBJECT = "nativeWebElementObject"; @@ -51,6 +50,9 @@ public class Utils { public static final String TIMEOUT_ERROR_TYPE = "TimeoutError"; public static final String UNHANDLED_ALERT_ERROR_TYPE = "UnhandledAlertError"; + private Utils() { + } + public static WebDriver getDriverNObject(BObject object) { return (WebDriver) object.getNativeData(DRIVER_OBJECT); } @@ -62,7 +64,7 @@ public static BObject getWebElementBObject(WebElement webElement) { return elementBObj; } - public static BObject[] getWebElementBObjectArr(List webElements) { + public static BObject[] getWebElementBObjectArray(List webElements) { BObject[] elementArr = new BObject[webElements.size()]; for (int i = 0; i < webElements.size(); i++) { elementArr[i] = getWebElementBObject(webElements.get(i)); From fa215b3955eb0cac009ce29252a5934071fb37ca Mon Sep 17 00:00:00 2001 From: dharshi Date: Tue, 21 Jan 2025 10:04:00 +0530 Subject: [PATCH 42/43] [Automated] Update the native jar versions --- ballerina/Dependencies.toml | 65 ++++++++++++++++++++++++++++++++++++- 1 file changed, 64 insertions(+), 1 deletion(-) diff --git a/ballerina/Dependencies.toml b/ballerina/Dependencies.toml index 7ae51d0..ef62d24 100644 --- a/ballerina/Dependencies.toml +++ b/ballerina/Dependencies.toml @@ -15,12 +15,75 @@ modules = [ {org = "ballerina", packageName = "jballerina.java", moduleName = "jballerina.java"} ] +[[package]] +org = "ballerina" +name = "lang.__internal" +version = "0.0.0" +scope = "testOnly" +dependencies = [ + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "lang.object"} +] + +[[package]] +org = "ballerina" +name = "lang.array" +version = "0.0.0" +scope = "testOnly" +dependencies = [ + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "lang.__internal"} +] + +[[package]] +org = "ballerina" +name = "lang.error" +version = "0.0.0" +scope = "testOnly" +dependencies = [ + {org = "ballerina", name = "jballerina.java"} +] + +[[package]] +org = "ballerina" +name = "lang.object" +version = "0.0.0" +scope = "testOnly" + +[[package]] +org = "ballerina" +name = "lang.runtime" +version = "0.0.0" +scope = "testOnly" +dependencies = [ + {org = "ballerina", name = "jballerina.java"} +] +modules = [ + {org = "ballerina", packageName = "lang.runtime", moduleName = "lang.runtime"} +] + +[[package]] +org = "ballerina" +name = "test" +version = "0.0.0" +scope = "testOnly" +dependencies = [ + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "lang.array"}, + {org = "ballerina", name = "lang.error"} +] +modules = [ + {org = "ballerina", packageName = "test", moduleName = "test"} +] + [[package]] org = "xlibb" name = "selenium" version = "0.1.0" dependencies = [ - {org = "ballerina", name = "jballerina.java"} + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "lang.runtime"}, + {org = "ballerina", name = "test"} ] modules = [ {org = "xlibb", packageName = "selenium", moduleName = "selenium"} From 24ac89ce763ba964975d3e6bcef57d304d0a2e41 Mon Sep 17 00:00:00 2001 From: dharshi Date: Tue, 21 Jan 2025 10:06:49 +0530 Subject: [PATCH 43/43] Apply review changes --- .../io/xlibb/selenium/SeleniumWebDriver.java | 125 ++++++++---------- 1 file changed, 58 insertions(+), 67 deletions(-) diff --git a/native/src/main/java/io/xlibb/selenium/SeleniumWebDriver.java b/native/src/main/java/io/xlibb/selenium/SeleniumWebDriver.java index 84a07c8..e458b96 100644 --- a/native/src/main/java/io/xlibb/selenium/SeleniumWebDriver.java +++ b/native/src/main/java/io/xlibb/selenium/SeleniumWebDriver.java @@ -41,61 +41,53 @@ public class SeleniumWebDriver { public static Object openChrome(BObject webDriver, BMap options) { - boolean headless = options.getBooleanValue(StringUtils.fromString("headlessMode")); - String url = options.getStringValue(StringUtils.fromString("url")).toString(); - boolean incognito = options.getBooleanValue(StringUtils.fromString("incognitoMode")); - String[] additionalArguments = options.getArrayValue(StringUtils.fromString("additionalArguments")) - .getStringArray(); - if (Utils.getDriverNObject(webDriver) == null) { - try { - ChromeOptions chromeOptions = new ChromeOptions(); - if (headless) { - chromeOptions.addArguments("--headless"); - } - if (incognito) { - chromeOptions.addArguments("--incognito"); - } - for (String arg: additionalArguments) { - chromeOptions.addArguments(arg); - } - webDriver.addNativeData(Utils.DRIVER_OBJECT, new ChromeDriver(chromeOptions)); - Utils.getDriverNObject(webDriver).get(url); - return null; - } catch (Exception e) { - return Utils.getBError(e.getMessage(), e); + try { + boolean headless = options.getBooleanValue(StringUtils.fromString("headlessMode")); + String url = options.getStringValue(StringUtils.fromString("url")).toString(); + boolean incognito = options.getBooleanValue(StringUtils.fromString("incognitoMode")); + String[] additionalArguments = options.getArrayValue(StringUtils.fromString("additionalArguments")) + .getStringArray(); + ChromeOptions chromeOptions = new ChromeOptions(); + if (headless) { + chromeOptions.addArguments("--headless"); + } + if (incognito) { + chromeOptions.addArguments("--incognito"); } + for (String arg : additionalArguments) { + chromeOptions.addArguments(arg); + } + webDriver.addNativeData(Utils.DRIVER_OBJECT, new ChromeDriver(chromeOptions)); + Utils.getDriverNObject(webDriver).get(url); + return null; + } catch (Exception e) { + return Utils.getBError(e.getMessage(), e); } - return Utils.getBError("error: A WebDriver instance is already active. Please quit the current " + - "instance before starting a new one.", null); } public static Object openFirefox(BObject webDriver, BMap options) { - boolean headless = options.getBooleanValue(StringUtils.fromString("headlessMode")); - String url = options.getStringValue(StringUtils.fromString("url")).toString(); - boolean incognito = options.getBooleanValue(StringUtils.fromString("incognitoMode")); - String[] additionalArguments = options.getArrayValue(StringUtils.fromString("additionalArguments")) - .getStringArray(); - if (Utils.getDriverNObject(webDriver) == null) { - try { - FirefoxOptions firefoxOptions = new FirefoxOptions(); - if (headless) { - firefoxOptions.addArguments("--headless"); - } - if (incognito) { - firefoxOptions.addArguments("--incognito"); - } - for (String arg: additionalArguments) { - firefoxOptions.addArguments(arg); - } - webDriver.addNativeData(Utils.DRIVER_OBJECT, new FirefoxDriver(firefoxOptions)); - Utils.getDriverNObject(webDriver).get(url); - return null; - } catch (Exception e) { - return Utils.getBError(e.getMessage(), e); + try { + boolean headless = options.getBooleanValue(StringUtils.fromString("headlessMode")); + String url = options.getStringValue(StringUtils.fromString("url")).toString(); + boolean incognito = options.getBooleanValue(StringUtils.fromString("incognitoMode")); + String[] additionalArguments = options.getArrayValue(StringUtils.fromString("additionalArguments")) + .getStringArray(); + FirefoxOptions firefoxOptions = new FirefoxOptions(); + if (headless) { + firefoxOptions.addArguments("--headless"); } + if (incognito) { + firefoxOptions.addArguments("--incognito"); + } + for (String arg : additionalArguments) { + firefoxOptions.addArguments(arg); + } + webDriver.addNativeData(Utils.DRIVER_OBJECT, new FirefoxDriver(firefoxOptions)); + Utils.getDriverNObject(webDriver).get(url); + return null; + } catch (Exception e) { + return Utils.getBError(e.getMessage(), e); } - return Utils.getBError("error: A WebDriver instance is already active. Please quit the current " + - "instance before starting a new one.", null); } public static Object getTitle(BObject webDriver) { @@ -180,8 +172,7 @@ public static Object getCurrentUrl(BObject webDriver) { public static Object findById(BObject webDriver, BString id) { try { return Utils.getWebElementBObject( - Utils.getDriverNObject(webDriver).findElement(By.id(id.toString())) - ); + Utils.getDriverNObject(webDriver).findElement(By.id(id.toString()))); } catch (Exception e) { return Utils.getBError(e.getMessage(), e); } @@ -253,8 +244,8 @@ public static Object findAllByTagName(BObject webDriver, BString tagName) { try { List webElements = Utils.getDriverNObject(webDriver) .findElements(By.tagName(tagName.toString())); - return ValueCreator.createArrayValue(Utils.getWebElementBObjectArray(webElements) - , Utils.getArrayType(Utils.WEB_ELEMENT_OBJECT_TYPE)); + return ValueCreator.createArrayValue(Utils.getWebElementBObjectArray(webElements), + Utils.getArrayType(Utils.WEB_ELEMENT_OBJECT_TYPE)); } catch (Exception e) { return Utils.getBError(e.getMessage(), e); } @@ -264,8 +255,8 @@ public static Object findAllByClassName(BObject webDriver, BString className) { try { List webElements = Utils.getDriverNObject(webDriver) .findElements(By.className(className.toString())); - return ValueCreator.createArrayValue(Utils.getWebElementBObjectArray(webElements) - , Utils.getArrayType(Utils.WEB_ELEMENT_OBJECT_TYPE)); + return ValueCreator.createArrayValue(Utils.getWebElementBObjectArray(webElements), + Utils.getArrayType(Utils.WEB_ELEMENT_OBJECT_TYPE)); } catch (Exception e) { return Utils.getBError(e.getMessage(), e); } @@ -275,8 +266,8 @@ public static Object findAllByCssSelector(BObject webDriver, BString cssSelector try { List webElements = Utils.getDriverNObject(webDriver) .findElements(By.cssSelector(cssSelector.toString())); - return ValueCreator.createArrayValue(Utils.getWebElementBObjectArray(webElements) - , Utils.getArrayType(Utils.WEB_ELEMENT_OBJECT_TYPE)); + return ValueCreator.createArrayValue(Utils.getWebElementBObjectArray(webElements), + Utils.getArrayType(Utils.WEB_ELEMENT_OBJECT_TYPE)); } catch (Exception e) { return Utils.getBError(e.getMessage(), e); } @@ -286,8 +277,8 @@ public static Object findAllByLinkText(BObject webDriver, BString linkText) { try { List webElements = Utils.getDriverNObject(webDriver) .findElements(By.linkText(linkText.toString())); - return ValueCreator.createArrayValue(Utils.getWebElementBObjectArray(webElements) - , Utils.getArrayType(Utils.WEB_ELEMENT_OBJECT_TYPE)); + return ValueCreator.createArrayValue(Utils.getWebElementBObjectArray(webElements), + Utils.getArrayType(Utils.WEB_ELEMENT_OBJECT_TYPE)); } catch (Exception e) { return Utils.getBError(e.getMessage(), e); } @@ -297,8 +288,8 @@ public static Object findAllByPartialLinkText(BObject webDriver, BString partial try { List webElements = Utils.getDriverNObject(webDriver).findElements( By.partialLinkText(partialLinkText.toString())); - return ValueCreator.createArrayValue(Utils.getWebElementBObjectArray(webElements) - , Utils.getArrayType(Utils.WEB_ELEMENT_OBJECT_TYPE)); + return ValueCreator.createArrayValue(Utils.getWebElementBObjectArray(webElements), + Utils.getArrayType(Utils.WEB_ELEMENT_OBJECT_TYPE)); } catch (Exception e) { return Utils.getBError(e.getMessage(), e); } @@ -307,8 +298,8 @@ public static Object findAllByPartialLinkText(BObject webDriver, BString partial public static Object findAllByXpath(BObject webDriver, BString xpath) { try { List webElements = Utils.getDriverNObject(webDriver).findElements(By.xpath(xpath.toString())); - return ValueCreator.createArrayValue(Utils.getWebElementBObjectArray(webElements) - , Utils.getArrayType(Utils.WEB_ELEMENT_OBJECT_TYPE)); + return ValueCreator.createArrayValue(Utils.getWebElementBObjectArray(webElements), + Utils.getArrayType(Utils.WEB_ELEMENT_OBJECT_TYPE)); } catch (Exception e) { return Utils.getBError(e.getMessage(), e); } @@ -317,8 +308,8 @@ public static Object findAllByXpath(BObject webDriver, BString xpath) { public static Object findAllByName(BObject webDriver, BString name) { try { List webElements = Utils.getDriverNObject(webDriver).findElements(By.name(name.toString())); - return ValueCreator.createArrayValue(Utils.getWebElementBObjectArray(webElements) - , Utils.getArrayType(Utils.WEB_ELEMENT_OBJECT_TYPE)); + return ValueCreator.createArrayValue(Utils.getWebElementBObjectArray(webElements), + Utils.getArrayType(Utils.WEB_ELEMENT_OBJECT_TYPE)); } catch (Exception e) { return Utils.getBError(e.getMessage(), e); } @@ -326,10 +317,10 @@ public static Object findAllByName(BObject webDriver, BString name) { public static Object acceptAlert(BObject webDriver) { try { - Utils.getDriverNObject(webDriver).switchTo().alert().accept(); - return null; + Utils.getDriverNObject(webDriver).switchTo().alert().accept(); + return null; } catch (Exception e) { - return Utils.getBError(e.getMessage(), e); + return Utils.getBError(e.getMessage(), e); } }