Releases: GCuser99/SeleniumVBA
Releases · GCuser99/SeleniumVBA
v4.6
version update General "house cleaning" update... Refactored WebDriverManager class: - Incorporated recently published ChromeDriver release end-points that do not require json parsing - Added "channel" argument to GetLatestDriverVersion method [@6DiegoDiego9] - Improved use of RegExp for searching/parsing - General code cleanup Reviewed object instantiation: - Removed New_WebElement & New_WebShadowRoot methods of ClassFactory class - these cannot be instantiated with New keyword - Bug fix: if WebElements class is instantiated with New and element objects added with Add method, Highlight and UnHighlight fail - Added example in test_Highlight module to test above bug fix - Set class attribute VB_Creatable = False in DLL for all classes that cannot be instantiated with New - Added table to "Object Instantiation" section of Wiki summarizing means of instantiation for each class Removed all DEPRECATED methods/properties (see https://github.com/GCuser99/SeleniumVBA/discussions/86) Renamed GetAlertText method of WebAlert class to GetText Changed RemoveAll method of WebCookies and WebElements classes from Friend to Public to be consistent with associated Public Remove methods in same classes Bug fix: new (default) Json Viewer feature of Edge browser broke PageToJson* methods - now supported Added SwitchTo method to WebWindow class (synonym for Activate method) Replaced all instantiations of WebJsonConverter object with predeclared reference [@6DiegoDiego9] Modified test modules code for all of above DLL installer now checks for 64-bit Office and reports to user if not [private email from user] Replaced BuildAddin.xlsm in dev\tools with a refactored and more complete UpdateVersion.xlsm Updated Readme files, Wiki Help topics, and Object Model Overview Minor code cleanups
v4.5
version update Refactored WebDriverManager to handle new ChromeDriver api Added DeleteDriver* methods to WebDriverManager class to help facilitate testing Made some efficiency improvements using RegExp for parsing WebDriver release json Added "platform" (32-bit vs 64-bit) input argument to Align* and DownloadAndInstall methods of WebDriverManager class Removed InitializeFor* methods of WebCapabilities class - no utility Updated Wiki Object Model section Updated README.md file
v4.4
version update Added WebWindow and WebWindows classes for improved windows management: - More OOP approach - windows handles not required - Solves windows activation issues mentioned in Selenium Docs - Added SwitchToByTitle and SwitchToNext methods for improved window switching - Added ActiveWindow and Windows methods to WebDriver class to facilitate above - Modified test_Windows module to illustrate improvements above - Added associated section to SeleniumVBA Wiki (Managing Windows) Added optional modifierKeys input argument for Click method of Webdriver/WebElement classes New CtrlKey method added to WebKeyboard class Moved private getResponseErrorMessage and isResponseError of WebDriver class to WebShared module Updated no-registration example in dev directory of GitHub repository Updated main README.md file Improved ActiveX DLL work-around for twinBasic compiler Err.Raise error which is still not fixed Code cleanup: - Capitalized first character of all Selector enums in WebDriver class for consistency - Replaced LCase, UCase, and Format VBA functions with typed-equivalents - a few other minor edits Marked as DEPRECATED: - Control method of WebKeyboard class - use Ctrl method - GetWindowHandles of WebDriver class - use WebWindows.Handles - SwitchToNewWindow of WebDriver class - use WebWindows.SwitchToNew - SwitchToWindow of WebDriver class - use WebWindows.Item().Activate - GetTitle of WebDriver class - use WebWindow.Title - CloseWindow of WebDriver class - use WebWindow.CloseIt - GetWindowRect of WebDriver class - use WebWindow.Bounds property - SetWindowRect of WebDriver class - use WebWindow.Bounds property - SetWindowSize of WebDriver class - use WebWindow.SetSize - SetWindowPosition of WebDriver class - use WebWindow.SetPosition - MaximizeWindow of WebDriver class - use WebWindow.Maximize - FullScreenWindow of WebDriver class - use WebWindow.FullScreen - MinimizeWindow of WebDriver class - use WebWindow.Minimize Reminder of DEPRECATED methods/properties carried over from v4.3: - AlertAccept of the WebDriver class - use SwitchToAlert.Accept - AlertDismiss of the WebDriver class - use SwitchToAlert.Dismiss - GetAlertText of the WebDriver class - use SwitchToAlert.GetAlertText - SetAlertText of the WebDriver class - use SwitchToAlert.SendKeys - SetFocusNoScroll of the WebDriver/WebElement classes - use SetFocus Famous last words - this is probably the last "development" update I'll make - going into maintainence mode for now... I will post a discussion about future status of DEPRECATED methods and properties to get your input, if you have any. I also need to update the ActiveX DLL once twinBasic fixes the Err.Raise bug.
v4.3
version update Improved Alert management - added WebAlert class - added SwitchToAlert method of WebDriver class to wait up to a user-specified maximum time for alert to show, and then return a WebAlert object for further interaction (Accept, Dismiss, SendKeys, and GetAlertText) - removed SendAlert method of WebDriver class (limited usefullness - reversion from v4.2) Added SendKeysToOS method of WebDriver class to send keys to (possibly execution-blocking) non-browser windows [@GHRyunosuke, @6DiegoDiego9] Improved SendKeys support - Refactored to redirect to WebActionChain's Sendkeys for special keys support - Added more special keys to WebKeyboard class as per latest W3C WebDriver document - Added Chord method to WebKeyboard class for structured approach to using modifier keys (Shift, Ctrl, Alt) - Added Repeat method to WebKeyboard class for concatenating a repeated substring a user-specified number of times - Modifier keys found in a key sequence are now considered "sticky", ie, characters that follow are modified until a special Null key is found) - changed default value of clearBeforeTyping argument of SendKeys method to False Added QuerySelector and QuerySelectorAll methods to WebDriver/WebElement classes (same as FindElementByCssSelector and FindElementsByCssSelector methods) Added more options to SetFocus method of WebDriver/WebElement classes (SetFocusNoScroll no longer needed) Added HasFocus method of WebDriver/WebElement classes Refactored Click method of WebDriver class to click on active element if no element specified Refactored WebActionChain class for better clarity, made ResetActions public, and removed ResetActions from Perform method because it was interfering with JavaScript alerts following any triggering action Refactored WaitUntilReady, WaitForDownload, WaitUntilNotPresent, and IsAlertPresent for more clarity and consistency Added/modified test procedures to reflect/demonstrate above Added "Managing JavaScript Alerts" and "Browser-Keyboard Interaction with SendKeys" sections to the Wiki General code cleanup - removed unnecessary "New Dictionary" passed to params argument of private execute method - removed unnecessary arguments passed to private execute with CMD_CLEAR_ELEMENT command Marked as DEPRECATED the following methods - please use the available alternatives: - AlertAccept, AlertDismiss, IsAlertPresent, GetAlertText, SetAlertText of the WebDriver class - use SwitchToAlert instead - SetFocusNoScroll of the WebDriver/WebElement classes - use SetFocus instead
v4.2
version update Added ExecuteCDP method to WebDriver class to expose Chrome DevTools Protocol methods for browser automation Added ExecuteCmd method to WebDriver class to facilitate testing of new/unwrapped Selenium WebDriver commands Added SaveBase64StringToFile, and ResolvePath helper methods for above to WebDriver class Added GetElementId helper method for above to WebDriver and WebElement classes Added SendAlert method to WebDriver class Refactored execute procedure of WebDriver class for improved clarity and error handling: - Added optional receiveTimeout input argument - Moved OpenBrowser-specific error handling to OpenBrowser method - Added code to handle non-standard Selenium and server communication errors - Added clientStatus error code to response package for caller error handling Added implicit wait, page load timeout, and script timeout default parameters to SeleniumVBA ini file Added globals to WebDriver class to track timeout settings for avoiding unnecessary calls to Selenium WebDriver Extended OpenBrowser receiveTimeout from 3 secs to 10 secs to accomodate slower computers Added optional arguments to NavigateToFile method of WebDriver class to align with same in NavigateTo method Added file-exits check to NavigateToFile method of WebDriver class Modified DefaultIOfolder get property of WebDriver class to return the default path Added full screenshot option to SaveScreenshot method of WebDriver class Added SetGeolocationAware method to WebCapabilities class to turn on/off browser geolocation Added CtrlShiftKey method to WebActionChain class Added test_ExecuteCmd and test_ExcuteCDP standard modules Removed test_UserAgent standard module Added more test procedures to test_ExecuteScript, test_Wait, test_IsPresent and others Minor code mods and cleanup Designed DLL work-around for twinBASIC Err.Raise issue https://github.com/twinbasic/twinbasic/issues/464 Updated Help and Object model pages in Wiki, and SeleniumVBA Readme file
v4.1
version update Enhancements\fixes to ScrollIntoView method of WebDriver and WebElement classes [@6DiegoDiego9] Set shorter default timeout when executing "capabilities" commands if no web communication [@6DiegoDiego9] More user-friendly error is raised when unsupported XPath selector is used in Shadow Roots [@6DiegoDiego9] Added IsPresent method to WebElement class [@GHRyunosuke, @GCUser99] Added test_IsPresent module to testing source [@GCUser99] Minor cleanups [@6DiegoDiego9, @GCUser99] Refactored code base for proper handling of Unicode characters in strings: [@GCUser99] Replaced all Ansi Windows API declares with Unicode Wide versions Replaced all native VBA7 file system functions with FSO and ADODB versions Added ADODB library to references Modified CreateSettingsFile method of WebDriver class to output Unicode text
v4.0
version update Fixed bug in GetLatestDriverVersion method of WebDriverManager class that prevented minor build updates for IEDriverServer from being recognized Fixed bug in WaitForDownload method of WebDriver class that would occasionally cause an infinite loop while waiting for download Minor updates to README files and test_Capabilities module
v3.9
version update Fixed bug in addToOptionsList of WebCapabilities class that was not correctly merging runtime specified capabilities with preloaded capabilities Added new headless mode argument value to Edge browser in WebCapabilities class Added optional parameter to IsPresent method of WebDriver class to allow user to obtain a reference to the element object, if present [@6DiegoDiego9]
v3.8
Fixed bug in FindElementsFromShadowRoot method of WebDriver class [@6DiegoDiego9]
Implemented new headless mode for Chrome browser - see issue #78 concerning Edge browser
Fixed bug in RunIncognito method of WebCapabilities class (IE browser not set correctly)
Removed error trap for Firefox browser in GetArialRole and GetArialLabel methods of WebDriver class (supported for Geckodriver v0.33.0 and Firefox browser v113)
Removed comment in PrintPDF method of WebDriver class warning that the PrintPDF method only applies to headless mode - this condition is no longer necessary.
Modified test_Print module to reflect the changes in PrintPDF