Jump to content

Recommended Posts

  • 2 weeks later...
Posted (edited)

📢 Announcing Enterprise Mode — An extra Automation Architecture for the CDP UDF

A major new feature has been added to the CDP UDF: Enterprise Mode, a layered automation model designed for system‑level and acceptance‑level testing.

✔ UI Script Layer

Modular page‑level automation under UI\.

✔ Functional Area (FA) Layer

Business‑process automation under FA\.

✔ Hierarchical Datapools

CSV‑driven test data across Release → Environment → Functional Area tiers.

✔ Enterprise Logging

High‑precision datetime stamps and full script call‑chaining logs showing caller script, callee method, and line numbers.

Enterprise Mode allows you to build scalable, maintainable automation that mirrors real business workflows while keeping UI automation clean and modular.

This is an optional feature you can enable with the line:

$cdp.config.enterpriseMode = True

Examples are now available in the GitHub repository. Look for:

  • Example Enterprise Mode Acceptance Tests.au3
  • Example Enterprise Mode System Tests.au3

Documentation will be added in due course.

Edited by seangriffin

Cheers, Sean.

See my other UDFs:

Chrome UDF - Automate Chrome | SAP UDF - Automate SAP | Java UDF - Automate Java Applications & Applets | Tesseract (OCR) UDF - Capture text from applications, controls and the desktop | Textract (OCR) UDF - Capture text from applications and controls | FileSystemMonitor UDF - File, Folder, Drive and Shell Monitoring | VLC (Media Player) UDF - Creating and controlling a VLC control in AutoIT | Google Maps UDF - Creating and controlling Google Maps (inc. GE) in AutoIT | SAPIListBox (Speech Recognition) UDF - Speech Recognition via the Microsoft Speech (SAPI) ListBox | eBay UDF - Automate eBay using the eBay API | ChildProc (Parallel Processing) UDF - Parallel processing functions for AutoIT | HyperCam (Screen Recording) UDF - Automate the HyperCam screen recorder | Twitter UDF - Automate Twitter using OAuth and the Twitter API | cURL UDF - a UDF for transferring data with URL syntax

See my other Tools:

Rapid Menu Writer - Add menus to DVDs in seconds | TV Player - Automates the process of playing videos on an external TV / Monitor | Rapid Video Converter - A tool for resizing and reformatting videos | [topic130531]Rapid DVD Creator - Convert videos to DVD fast and for free | ZapPF - A tool for killing processes and recycling files | Sean's eBay Bargain Hunter - Find last minute bargains in eBay using AutoIT | Sean's GUI Inspector - A scripting tool for querying GUIs | TransLink Journey Planner with maps - Incorporating Google Maps into an Australian Journey Planner | Automate Qt and QWidgets | Brisbane City Council Event Viewer - See what's going on in Brisbane, Australia
  • 3 weeks later...
Posted
20 hours ago, alb19542006 said:

Thanks for this, it has great potential! Would it be possible to see an example using this with Edge Chromium?

I expect that would be possible.  I know MS Edge is built on chromium so I would expect the underlying devtools protocol is the same.

Thanks for the suggestion I'll look into it.

Cheers, Sean.

See my other UDFs:

Chrome UDF - Automate Chrome | SAP UDF - Automate SAP | Java UDF - Automate Java Applications & Applets | Tesseract (OCR) UDF - Capture text from applications, controls and the desktop | Textract (OCR) UDF - Capture text from applications and controls | FileSystemMonitor UDF - File, Folder, Drive and Shell Monitoring | VLC (Media Player) UDF - Creating and controlling a VLC control in AutoIT | Google Maps UDF - Creating and controlling Google Maps (inc. GE) in AutoIT | SAPIListBox (Speech Recognition) UDF - Speech Recognition via the Microsoft Speech (SAPI) ListBox | eBay UDF - Automate eBay using the eBay API | ChildProc (Parallel Processing) UDF - Parallel processing functions for AutoIT | HyperCam (Screen Recording) UDF - Automate the HyperCam screen recorder | Twitter UDF - Automate Twitter using OAuth and the Twitter API | cURL UDF - a UDF for transferring data with URL syntax

See my other Tools:

Rapid Menu Writer - Add menus to DVDs in seconds | TV Player - Automates the process of playing videos on an external TV / Monitor | Rapid Video Converter - A tool for resizing and reformatting videos | [topic130531]Rapid DVD Creator - Convert videos to DVD fast and for free | ZapPF - A tool for killing processes and recycling files | Sean's eBay Bargain Hunter - Find last minute bargains in eBay using AutoIT | Sean's GUI Inspector - A scripting tool for querying GUIs | TransLink Journey Planner with maps - Incorporating Google Maps into an Australian Journey Planner | Automate Qt and QWidgets | Brisbane City Council Event Viewer - See what's going on in Brisbane, Australia
Posted

📢 New Feature: Built‑in Video Capture for CDP UDF

A new feature has been added to the CDP UDF: automatic video capture of test runs using Chrome’s Page.screencastFrame stream and a lightweight FFmpeg‑based recorder.

This makes it easy to record UI behaviour during tests, debug failures, and archive visual evidence of test runs.

🎬 How to enable video capture

A new configuration flag has been added:

$cdp.config.video = $CDPVIDEO_ON

Setting this to ON enables video recording for any test block.

🧪 How video capture works

Video capture automatically starts when you enter a test block:

With test("Basic Inputs test")
    ; your test steps here
EndWith

And automatically stops when the EndWith is reached. No extra commands are required.

📁 Where videos are saved

Each test run writes its video to:

test-results\<test name>\video.webm

For example:

test-results\Basic Inputs test\video.webm

 

This keeps videos neatly organised per test.

📟 Console output

At the end of each test, the runner prints a message showing the full path of the captured video:

🎥 Video: C:\...\test-results\Basic Inputs test\video.webm

This makes it easy to locate and open the recording after the test completes.

📄 Example script included

A new example script has been added:

Example Video Capture.au3

 

Cheers, Sean.

See my other UDFs:

Chrome UDF - Automate Chrome | SAP UDF - Automate SAP | Java UDF - Automate Java Applications & Applets | Tesseract (OCR) UDF - Capture text from applications, controls and the desktop | Textract (OCR) UDF - Capture text from applications and controls | FileSystemMonitor UDF - File, Folder, Drive and Shell Monitoring | VLC (Media Player) UDF - Creating and controlling a VLC control in AutoIT | Google Maps UDF - Creating and controlling Google Maps (inc. GE) in AutoIT | SAPIListBox (Speech Recognition) UDF - Speech Recognition via the Microsoft Speech (SAPI) ListBox | eBay UDF - Automate eBay using the eBay API | ChildProc (Parallel Processing) UDF - Parallel processing functions for AutoIT | HyperCam (Screen Recording) UDF - Automate the HyperCam screen recorder | Twitter UDF - Automate Twitter using OAuth and the Twitter API | cURL UDF - a UDF for transferring data with URL syntax

See my other Tools:

Rapid Menu Writer - Add menus to DVDs in seconds | TV Player - Automates the process of playing videos on an external TV / Monitor | Rapid Video Converter - A tool for resizing and reformatting videos | [topic130531]Rapid DVD Creator - Convert videos to DVD fast and for free | ZapPF - A tool for killing processes and recycling files | Sean's eBay Bargain Hunter - Find last minute bargains in eBay using AutoIT | Sean's GUI Inspector - A scripting tool for querying GUIs | TransLink Journey Planner with maps - Incorporating Google Maps into an Australian Journey Planner | Automate Qt and QWidgets | Brisbane City Council Event Viewer - See what's going on in Brisbane, Australia
Posted

@alb19542006

in the CDP.udf, you can see the Settings for the _CDP_Browser_Launch. I think, you can change your favorite ChromeBrowser there.

Func _CDP_Browser_Launch($oSelf, $browser = Default, $port = Default, $startupSwitches = Default, $profile = Default, $windowSize = Default, $clearCookies = False)

    if $cdp.config.infoPopups = True Then SplashTextOn("AutoIt CDP", "Preparing browser ...", 420, 120)

    if $browser = Default Then $browser = @ProgramFilesDir & "\Google\Chrome\Application\chrome.exe"
    if $port = Default Then $port = 9222
    if $startupSwitches = Default Then $startupSwitches = "--no-first-run --no-default-browser-check --disable-gpu --disable-dev-shm-usage --disable-extensions --disable-background-networking --disable-renderer-backgrounding --disable-sync --metrics-recording-only --mute-audio --hide-crash-restore-bubble --noerrdialogs --disable-infobars --disable-popup-blocking --enable-automation --silent-launch"
    if $profile = Default Then $profile = @ScriptDir & "\chromeprofile"
    if $windowSize <> Default Then $startupSwitches = $startupSwitches & ' --window-size=' & $windowSize

KR, gmmg

Posted
2 hours ago, gmmg said:

@alb19542006

in the CDP.udf, you can see the Settings for the _CDP_Browser_Launch. I think, you can change your favorite ChromeBrowser there.

Func _CDP_Browser_Launch($oSelf, $browser = Default, $port = Default, $startupSwitches = Default, $profile = Default, $windowSize = Default, $clearCookies = False)

    if $cdp.config.infoPopups = True Then SplashTextOn("AutoIt CDP", "Preparing browser ...", 420, 120)

    if $browser = Default Then $browser = @ProgramFilesDir & "\Google\Chrome\Application\chrome.exe"
    if $port = Default Then $port = 9222
    if $startupSwitches = Default Then $startupSwitches = "--no-first-run --no-default-browser-check --disable-gpu --disable-dev-shm-usage --disable-extensions --disable-background-networking --disable-renderer-backgrounding --disable-sync --metrics-recording-only --mute-audio --hide-crash-restore-bubble --noerrdialogs --disable-infobars --disable-popup-blocking --enable-automation --silent-launch"
    if $profile = Default Then $profile = @ScriptDir & "\chromeprofile"
    if $windowSize <> Default Then $startupSwitches = $startupSwitches & ' --window-size=' & $windowSize

KR, gmmg

@gmmg

Thanks, I saw that and have been trying to get it to work with Edge, but I must be doing something wrong - no luck so far. I will keep trying though.....lol

BR, alb19542006

Posted (edited)

Hello @alb19542006,

for a test, a copied the CDP.au3 to CDP_Edge.au3 and changed the Line from chrome in msedge. (line 456)

;if $browser = Default Then $browser = @ProgramFilesDir & "\Google\Chrome\Application\chrome.exe"
    if $browser = Default Then $browser = "C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe"

In the script self, i changed also the include to #include "CDP_Edge.au3"

And it works.

Greetings,

gmmg

 

 

Edited by gmmg
Posted

A better way is to edit the CDP.au3 and add the following code in the _CDP_Browser_Launch Func.

    if $browser = Default Then $browser = @ProgramFilesDir & "\Google\Chrome\Application\chrome.exe"
    if $browser = "msedge" Then $browser = "C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe"

Example:

 

#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_UseX64=y
#AutoIt3Wrapper_Change2CUI=y
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****

#include "CDP.au3"

;VOR DEM START ALLE EVENTUELLEN COOKIE-DATEIEN IM PROFILRADIKAL LÖSCHEN ---
Local $sProfile = @TempDir & "\chromeprofile"
FileDelete($sProfile & "\Default\Cookies")
FileDelete($sProfile & "\Default\Cookies-journal")
FileDelete($sProfile & "\Default\Network\Cookies")
FileDelete($sProfile & "\Default\Network\Cookies-journal")
FileDelete($sProfile & "\Cookies")
FileDelete($sProfile & "\Cookies-journal")

;$chrome = $browser.launch(Default, 9299, Default, Default)
;$chrome = $browser.launch(Default, 9299, Default, @TempDir & "\chromeprofile")
$chrome = $browser.launch("msedge", 9299, Default, @TempDir & "\chromeprofile")
$page = $chrome.newPage()

; Window maximieren
WinWait("[CLASS:Chrome_WidgetWin_1]")
WinSetState("[CLASS:Chrome_WidgetWin_1]", "", @SW_MAXIMIZE)

$page.goto("https://autoit.de/wcf/login/")

$page.locator("//*[@id='username']").sendKeys("username")
Sleep(1000)
$page.locator("//*[@id='password']").sendKeys("password")
Sleep(1000)
$page.locator("//*[@id='submitButton']").click()

;$chrome.close()

gmmg

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...