Description | Documentation | Features | Getting started | Configuration | Contributing | License | Acknowledgements
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.
Reference | Description | |
---|---|---|
W3C WebDriver | Official W3C WebDriver standard/specification. | |
π | WebDriver Wiki | Further information about this UDF (project) like big picture, capabilities, troubleshooting and more. |
π | au3WebDriver.chm | Help file that comes with this UDF (project) download. |
π | Change Log | Record of all notable changes to the project |
Chrome | Edge | Firefox | Opera |
---|---|---|---|
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_DebugSwitch | Switch to new debug level or switch back to saved debug level. |
_WD_DispatchEvent | Create and dispatch events. |
_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_FrameListFindElement | Search the current document and return locations of matching elements. |
_WD_GetBrowserPath | Retrieve path to browser executable from registry. |
_WD_GetBrowserVersion | Get version number of specified browser. |
_WD_GetContext | Retrieve the element ID of the current browsing context. |
_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_GetFreePort | Locate and return an available TCP port within a defined range. |
_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_WaitScript | Wait for a JavaScript snippet to return true. |
_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 |
Download and add the following mandatory Third-Party UDFs to your project folder (independent of the browser you want to automate).
- Mandatory β
- Json UDF - Archive includes Json.au3 & BinaryCall.au3.
- WinHTTP UDF - Archive includes WinHttp.au3 & WinHttpConstants.au3.
- Optional β
- WinHttp_WebSocket UDF - Needed for websocket CDP functionality.
Download and install one of the following WebDrivers (depending on the browser type and version you want to automate).
Browser | Download | Implementation status |
---|---|---|
Chrome | Status | |
Edge | Status | |
Firefox | Status 1 | |
Opera | 2 |
Limitation notice. 3
To automate your browser, follow the following steps.
- Download at least the mandatory Third-Party UDFs.
- 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.
- Move your desired WebDriver of choice to the directory containing the wd_*.au3 files.
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.
Useful information about possible configurations following soon.
To ensure your GitHub project always has the latest version of the UDF --
- Open your prefered shell (cmd, powershell, bash, zsh)
- Navigate to your GitHub Autoit repository
- Run
git submodule add https://github.com/Danp2/au3WebDriver
- (OPTIONALLY) Run
git mv au3WebDriver Includes\au3WebDriver
to relocate the UDF into an Includes folder
Just look at CONTRIBUTING, thank you!
Distributed under the MIT License. See LICENSE for more information.
- 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
- 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