All Projects → Danp2 → WebDriver

Danp2 / WebDriver

Licence: MIT license
Web Driver UDF for AutoIt

Programming Languages

AutoIt
60 projects

Projects that are alternatives of or similar to WebDriver

Webdriver Rust
Library implementing the wire protocol for the W3C WebDriver standard.
Stars: ✭ 56 (-24.32%)
Mutual labels:  webdriver, w3c
WebGrid
Decentralized, scalable and robust implementation of a selenium-grid equivalent. Based on the WebDriver specification by the W3C.
Stars: ✭ 17 (-77.03%)
Mutual labels:  webdriver, w3c
slimdom.js
Fast, tiny, standards-compliant XML DOM implementation for node and the browser
Stars: ✭ 21 (-71.62%)
Mutual labels:  w3c
SeleniumTDD
A Selenium TDD framework that incorporates key features of Selenium and TestNG which can be used to create web-based automation scripts.
Stars: ✭ 23 (-68.92%)
Mutual labels:  webdriver
interledger-payment-app-example
An implementation of the Interledger spec through an Android's Payment App
Stars: ✭ 26 (-64.86%)
Mutual labels:  w3c
google-meet-bot
Bot for scheduling and entering google meet sessions automatically
Stars: ✭ 33 (-55.41%)
Mutual labels:  webdriver
webdriver-binaries-gradle-plugin
A Gradle plugin that downloads and caches WebDriver binaries specific to the OS the build runs on
Stars: ✭ 31 (-58.11%)
Mutual labels:  webdriver
pycdlib
Python library to read and write ISOs
Stars: ✭ 110 (+48.65%)
Mutual labels:  udf
lingua
A PHP-7 language codes converter, from and to the most common formats (ISO or not)
Stars: ✭ 35 (-52.7%)
Mutual labels:  w3c
appium-mac2-driver
Next-gen Appium macOS driver, backed by Apple XCTest
Stars: ✭ 55 (-25.68%)
Mutual labels:  webdriver
spydriver
🕵️ Lightweight utility to intercept WebDriver and WebElement method calls.
Stars: ✭ 24 (-67.57%)
Mutual labels:  webdriver
multi-brand-colors
Multi Brand Colors with support for CSS/CSS-Vars/SCSS/SASS/Stylus/LESS/JSON
Stars: ✭ 26 (-64.86%)
Mutual labels:  w3c
Assistive-Webdriver
Assistive-Webdriver is a tool to automate end-to-end web application tests with a screen reader.
Stars: ✭ 19 (-74.32%)
Mutual labels:  webdriver
lego
🚀 Web-components made lightweight & Future-Proof.
Stars: ✭ 69 (-6.76%)
Mutual labels:  w3c
mugshot
Framework independent visual testing library
Stars: ✭ 126 (+70.27%)
Mutual labels:  webdriver
wd.py
Python Client binding for Macaca
Stars: ✭ 33 (-55.41%)
Mutual labels:  webdriver
selenium-download
allow downloading of latest selenium standalone server and chromedriver
Stars: ✭ 28 (-62.16%)
Mutual labels:  webdriver
seletest
Seletest is a web and mobile automation testing framework
Stars: ✭ 19 (-74.32%)
Mutual labels:  webdriver
basic-selenium-project
an example selenium test project
Stars: ✭ 55 (-25.68%)
Mutual labels:  webdriver
hadoop-etl-udfs
The Hadoop ETL UDFs are the main way to load data from Hadoop into EXASOL
Stars: ✭ 17 (-77.03%)
Mutual labels:  udf

Welcome to au3WebDriver

license contributors repo size last commit release os stars

Description | Documentation | Features | Getting started | Configuration | Contributing | License | Acknowledgements

Description

This au3WebDriver UDF (project) allows to interact with any browser that supports the W3C WebDriver specifications. Supporting multiple browsers via the same code base is now possible with just a few configuration settings.

Documentation

Reference Description
W3C WebDriver Official W3C WebDriver standard/specification.
📚 WebDriver Wiki Further information about this UDF (project) like big picture, capabilities, troubleshooting and more.
📖 Webdriver.chm Function CHM help file that comes with this UDF (project) download.

Features

Browser support

Chrome Edge Firefox Opera
Chrome48 Edge48 Firefox48 Opera48

Functions

Core Functions

Name Description
_WD_CreateSession Request new session from web driver.
_WD_DeleteSession Delete existing session.
_WD_Status Get current web driver state.
_WD_GetSession Get details on existing session.
_WD_Timeouts Set or retrieve the session timeout parameters.
_WD_Navigate Navigate to the designated URL.
_WD_Action Perform various interactions with the web driver session.
_WD_Window Perform interactions related to the current window.
_WD_FindElement Find element(s) by designated strategy.
_WD_ElementAction Perform action on designated element.
_WD_ExecuteScript Execute Javascipt commands.
_WD_Alert Respond to user prompt.
_WD_GetSource Get page source.
_WD_Cookies Gets, sets, or deletes the session's cookies.
_WD_Option Sets and get options for the web driver UDF.
_WD_Startup Launch the designated web driver console app.
_WD_Shutdown Kill the web driver console app.

Helper Functions

Name Description
_WD_Attach Attach to existing browser tab.
_WD_CheckContext Check if browser context is still valid.
_WD_ConsoleVisible Control visibility of the webdriver console app.
_WD_DownloadFile Download file and save to disk.
_WD_ElementActionEx Perform advanced action on designated element.
_WD_ElementOptionSelect Find and click on an option from a Select element.
_WD_ElementSelectAction Perform action on designated Select element.
_WD_ElementStyle Set/Get element style property.
_WD_FrameEnter Enter the specified frame.
_WD_FrameLeave Leave the current frame, to its parent.
_WD_FrameList Retrieves a detailed list of the main document and all associated frames.
_WD_GetBrowserPath Retrieve path to browser executable from registry.
_WD_GetBrowserVersion Get version number of specified browser.
_WD_GetDevicePixelRatio Returns an integer indicating the DevicePixelRatio.
_WD_GetElementById Locate element by id.
_WD_GetElementByName Locate element by name.
_WD_GetElementByRegEx Find element by matching attributes values using Javascript regular expression.
_WD_GetElementFromPoint Retrieves reference to element at specified point.
_WD_GetFrameCount Returns the number of frames/iframes in the current document context.
_WD_GetMouseElement Retrieves reference to element below mouse pointer.
_WD_GetShadowRoot Retrieves the shadow root of an element.
_WD_GetTable Return all elements of a table.
_WD_GetWebDriverVersion Get version number of specifed webdriver.
_WD_HighlightElements Highlights the specified elements.
_WD_IsFullScreen Return a boolean indicating if the session is in full screen mode.
_WD_IsLatestRelease Compares local UDF version to latest release on Github.
_WD_IsWindowTop Returns a boolean of the session being at the top level, or in a frame(s).
_WD_JsonActionKey Formats keyboard "action" strings for use in _WD_Action
_WD_JsonActionPause Formats pause "action" strings for use in _WD_Action
_WD_JsonActionPointer Formats pointer "action" strings for use in _WD_Action
_WD_JsonCookie Formats "cookie" JSON strings for use in _WD_Cookies.
_WD_LastHTTPResponse Return the response of the last WinHTTP request.
_WD_LastHTTPResult Return the result of the last WinHTTP request.
_WD_LinkClickByText Simulate a mouse click on a link with text matching the provided string.
_WD_LoadWait Wait for a browser page load to complete before returning.
_WD_NewTab Create new tab in current browser session.
_WD_PrintToPDF Print the current tab in paginated PDF format.
_WD_Screenshot Takes a screenshot of the Window or Element.
_WD_SelectFiles Select files for uploading to a website.
_WD_SetElementValue Set value of designated element.
_WD_SetTimeouts User friendly function to set webdriver session timeouts.
_WD_Storage Provide access to the browser's localStorage and sessionStorage objects.
_WD_UpdateDriver Replace web driver with newer version, if available.
_WD_WaitElement Wait for an element in the current tab before returning.
_WD_jQuerify Inject jQuery library into current session.

CDP Functions

Name Description
_WD_CDPExecuteCommand Execute CDP command.
_WD_CDPGetSettings Retrieve CDP related settings from the browser.

Capabilities Functions

Name Description
_WD_CapabilitiesStartup Start new Capabilities build
_WD_CapabilitiesAdd Add capablitities to JSON string
_WD_CapabilitiesGet Get the JSON string
_WD_CapabilitiesDump Dump to console
_WD_CapabilitiesDefine Define a new capability by selecting a type and specifying a name

Getting started

Preconditions

Download and add the following mandatory Third-Party UDFs to your project folder (independent of the browser you want to automate).

Download and install one of the following WebDrivers (depending on the browser type and version you want to automate).

Browser Download Implementation status
Chrome16 Chrome Status
Edge16 Edge Status
Firefox16 Firefox Status 1
Opera16 Opera 2

Limitation notice. 3

Installation

To automate your browser, follow the following steps.

  1. Download at least the mandatory Third-Party UDFs.
  2. Move the UDFs to your project folder or to a directory where AutoIt can find them.
    • All wd_*.au3 files and the Third-Party UDFs *.au3 should be placed in the same directory.
    • Otherwise you have to adjust the #include statements in the files.
  3. Move your desired WebDriver of choice to the directory containing the wd_*.au3 files.

Usage

Run wd_demo.au3, choose your "Browser" from the dropdown and press the "Run Demo!" button that will perform the "DemoNavigation" demo to validate your installation.

Result example

In case you use Firefox, the result should look similar to this:

1577745813519   geckodriver     DEBUG   Listening on 127.0.0.1:4444
1577745813744   webdriver::server       DEBUG   -> POST /session {"capabilities": {"alwaysMatch": {"browserName": "firefox", "acceptInsecureCerts":true}}}
1577745813746   geckodriver::capabilities       DEBUG   Trying to read firefox version from ini files
1577745813747   geckodriver::capabilities       DEBUG   Found version 71.0
1577745813757   mozrunner::runner       INFO    Running command: "C:\\Program Files\\Mozilla Firefox\\firefox.exe" "-marionette" "-foreground" "-no-remote" "-profile" "C:\\ ...
1577745813783   geckodriver::marionette DEBUG   Waiting 60s to connect to browser on 127.0.0.1:55184
1577745817392   geckodriver::marionette DEBUG   Connection to Marionette established on 127.0.0.1:55184.
1577745817464   webdriver::server       DEBUG   <- 200 OK {"value":{"sessionId":"925641bf-6c5d-4fe2-a985-02de9b1c7c74","capabilities":"acceptInsecureCerts":true,"browserName":"firefox", ...

More useful information following soon.

Configuration

Useful information about possible configurations following soon.

Github Integration

To ensure your GitHub project always has the latest version of the UDF --

  1. Open your prefered shell (cmd, powershell, bash, zsh)
  2. Navigate to your GitHub Autoit repository
  3. Run git submodule add https://github.com/Danp2/au3WebDriver
  4. (OPTIONALLY) Run git mv au3WebDriver Includes\au3WebDriver to relocate the UDF into an Includes folder

Contributing

Just look at CONTRIBUTING, thank you!

License

Distributed under the MIT License. See LICENSE for more information.

Acknowledgements

  • Opportunity by GitHub
  • Badges by Shields
  • Thanks to the authors of the Third-Party UDFs
    • Json UDF by @Ward and @Jos
    • WinHTTP UDF by @trancexx/@dragana-r
    • HtmlTable2Array UDF by @Chimp
    • WinHttp_WebSocket UDF by @Danp2
  • Thanks to the maintainers
    • Thanks to @Danp2 for the project idea, creation and maintenance
    • Thanks to @mLipok for his wd_capabilities.au3
    • Thanks to @Sven-Seyfert for the project logo
    • Big thanks to all the hard-working contributors

To the top

Footnotes

  1. Login Required

  2. Derived from ChromeDriver per project ReadMe

  3. Not all WebDriver functions have been fully implemented by each browser. Keep that in mind and check the "Implementation status" for your desired WebDriver of choice.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].