CẬP NHẬT NHỮNG THAY ĐỔI TRONG PHIÊN BẢN SELENIUM 4

Anh Tester chia sẻ đến bạn các thông tin thay đổi cập nhật mới nhất trong phiên bản Selenium 4 với các lần released chính thức.

Tất cả các ngôn ngữ lập trình: https://github.com/SeleniumHQ/selenium/releases

Dưới đây là những cập nhật trong ngôn ngữ lập trình Java:

v4.22.0

======

* [grid] Log unsuccessful attempts to create a session
* [grid] Prevent UrlChecker leaking threads on timeout
* Add convenience for enabling BiDi (#14029)
* Eliminate assumption of mutable list argument in SeleniumManager.getBinaryPaths() (#14036)
* Add 'toJson' method to Rectangle class to produce expected serialization (#14038)
* Let TracedCommandExecutor delegate NeedsLocalLogs calls
* Add preference to enable CDP in Firefox by default (#14091)
* [grid] Video file name set independently in dynamic grid via se:videoName (#14148)
* Add CDP for Chrome 126 and remove 123
* EdgeOptions.useWebView to return "this" (#14157)
* Various minor performance improvements and code cleanup (#14054)
* Use java.nio to check files (#14088)


v4.21.0

======

* Add CDP for Chrome 125 and remove 122
* [bidi]Add methods to allow all parameters for script callFunction and evaluate method (#13873)
* Setting a connection timeout for the WebSocket connections
* [grid] flatten combined routes to improve routing (#13856)
* Java language level aids (#13834)
* [grid] apply protocol version in relay session factory (#13880)
* Configure Selenium Manager environment from System Properties (#13858)
* [grid] Set test name to video file name in dynamic grid (#13907)
* [grid] Set connection timeout to session-timeout in RemoteNode (#13854)
* Type casting and numeric improvements (#13909)
* Allow filters to recover from failed requests in NetworkInterceptor (#13847)
* Allow a DevTools listener to determinate the order of handler calls (#13921)
* Read selenium manager output as UTF-8 #13653
* Reduce redundant toString() calls (#13932)
* Fixed format of expires in Cookie.toString #13927
* [bidi] Remove root ownership parameter due to update in BiDi spec

v4.20.0

======

* Add CDP for Chrome 124 and remove 121
* [bidi] Deprecate using builder for Locate Node parameters. (#13767)
* [grid] handle baseRoute like the hubRoute and the graphqlRoute (#13772)
* [grid] Fixing Dynamic Grid Docker (#13789)
* [grid] Browser containers provisioned in dynamic grid uses node-docker hostConfig
* Making Selenium Manager a thin wrapper (#13385)
* This change has been made to make it easier to maintain and improve, the interface has
changed and if users were invoking it, they might experience issues. Selenium Manager is
still in beta and these type of changes are expected.
* [grid] Dynamic Grid re-fetch browser images if they were pruned during runtime (#13821)
* [grid] Relay service can set protocol version in fetching status (#13849)
* [cdp] Continue requests without modification for know errors in NetworkInterceptor (#13836)
* [bidi] Update browsing context create method (#13766)

v4.19.1

======
* [bidi] Fix the bazel file after the BiDi breaking change

v4.19.0

======
* Add CDP for Chrome 123 and remove 120
* Use daemon threads in JdkHttpClient #13601
* Use a static class for ProxySelector #13622
* Improve memory allocation of an idle relay node #13643
* Close the httpclient after checking the service status #13643
* [bidi] Add storage module (#13675)
* [bidi] Add browser module (#13677)
* [bidi] Add continueRequest and continueResponse command (#13692)
* [bidi] Add provide response command (#13708)
* [bidi] Add setFiles command of the Input Module (#13711)
* Add JSON serialization for ShadowRoot (#13680)
* [grid] Ensure the original RemoteNode stays DOWN #13646 (#13647)
* Removed usage of FileBackedOutputStream in the client (#13308)
* [grid] Remove "se:bidi" (#13528)
* [bidi] Update the capture screenshot APIs to include all parameters and remove scroll parameter (#13743)

v4.18.1

======

* Add CDP for Chrome 122 and remove 119

v4.18.0

======

* Recommitting self-signed certificate should not require certificate file
* [bidi] Add browsing context destroyed event
* Add missing support events for Web Driver Listener (#13210)
* [bidi] Add network intercept commands
* [bidi] Add command "continuewithAuth"
* [bidi] Add failRequest command
* use the W3C state to detect errors
* [grid] Fixing driver configuration parsing (Fixes #13531)
* [cdp] Ensure dom mutation listener calls to webdriver apis are thread safe (Fixes #13500)
* Fix typo in comment (#13549)
* Allow `null` input in `FluentWait` (#13558)
* Add missing event handlers for `TargetLocator` interface (#13559)
* shutdown the process of a failed driver server start
* ensure ExternalProcess.waitFor will not block
* fixed the format of DriverService
* use message templates in logger calls
* [bidi] Add 'fetchError' event
* Fixing NPE when "se:downloadsEnabled" not set (#13583)
* Make Rectangle fields final to enhance immutability (#13586)
* Use all provided options while merging them for Firefox (#13582)
* Fix access modifier for script module classes
* use the ErrorCodec to build the WebDriverException #13580
* give the driver some time to terminate graceful

v4.17.0

======

* Self-signed certificate do not require certificate file (#13268)
* Remove deprecated event listener classes (#13200)
* Add ability to disable UI on grid (#13212)
* Recognise `chrome-headless-shell` as Chrome browser (#13292)
* Remove most of guava from remote package
* Add java to Selenium Manager input for tracking (see #13288)
* Add cookie support for network module (#13325)
* Refactored log capture and formatting code (#13322)
* Add support for Input module (Actions) (#13259)
* Close http connection for RemoteNode (#13313)
* Add Duration overload to SlowLoadableComponent constructor and deprecate the int (#13309)
* Improve logging errors (#13327)
* Ensure calling close() and quit() don't cause BiDi websocket errors (#13333)
* Check for emptiness instead of using length or size (#13335)
* Remove unnecessary overridden methods (#13336)
* improved logging when driver discovery failed
* WebSocket NoVNC session against the grid URL contains trailing slash (#13353)
* Updating channel name from Aurora to Dev
* Removing mentions to firefox-bin in docs and tests
* Deprecate FirefoxBinary class
* Deprecate json wire related ErrorCodes
* Fix the ScreenshotException message
* Add ShadowRoot.hashCode / .equals #13326
* Deprecate unused RemoteStatus
* Remove use of guava from FluentWait
* Remove all references to firefox-bin
* Deprecate all html5 offline storage implementations See #10397 (#13373)
* Remove endpoints and commands that are not w3c compliant (#13372)
* Deprecate methods for getting and setting location (#13372)
* Deprecate methods for getting and setting network connection (#13372)
* remove non-w3c endpoint references that are mobile specific
* Add auth required event
* Copy the output in a daemon thread
* No longer accept session requests with desiredCapabilities
* Remove requiredCapabilities from metadata ignored list
* Deprecate `AddWebStorage` augmenter provider as well (#13399)
* Update logging and errors for driver management
* Deprecate `ContextAware` interface (#13405)
* Add check back to driver service session factory
* Fix broken driver finder conditional
* Node WebSocket not working with sub-path option (#13407)
* Add window proxy properties class
* Schema HTTPS in Distributor, SessionQueue, SessionMap (#13413)
* Add BiDi Input module release command (#13362)
* Add Node properties class as precursor to BiDi's locateNodes command
* Deprecate `NoSuchContextException` (#13425)
* Ensure the worker thread is stopped
* Log the complete exception
* Add deprecation annotation to FirefoxBinary
* Add a warning while passing a decorated driver to augmenter (#13246)
* Tapping the Node session when there is WebSocket activity (#12223)
* Small code improvement in ProxyWebsocketsIntoGrid
* Using `max-sessions` from Node when it was declared (#12836)
* Fix typo in NodeFlags (#13440)
* Add locate nodes command (#13445)
* Add user friendly methods to locate nodes
* Add click dialog support to Federated Credential Management implementation
* Use the ErrorCodec to encode exceptions
* Ignore null text of UnhandledAlertException
* Add CDP for Chrome 121 and remove 118

v4.16.1

======

* Re-release due to broken packages

v4.16.0

======

* Allow stereotype to always allow browser version of "stable"
* [bidi] Listen to channel message
* [bidi] Add realm related events
* Move the module-info.class to the correct place
* Allow external uri to be configurable for components that support server functionality - #12491 (#12508)
* Close the streams after I/O failure #13096
* Fix events without parameters #13109
* Chrome-based browsers can do CDP-based script pinning (#13125)
* Ensure the complete output is read #13091
* Fixed reading array parameters in the CDP client
* Keep HttpClient alive until unused #12558 (#12978)
* Implement Safe Casting in getPermissions Method (#13143)
* Fix null request in case of chunked request (#13113)
* Set a name for thread started to forward output of external processes (#13142)
* Allow resuing devtools instance with JDK 11 client (#12882, #13165)
* Ensure all print options are sent as map instead of object
* Allow setting print options page ranges using list
* Fix bug replacing setDownloadThroughput for setUploadThroughput (#13187)
* Add macOS 14.0 to Platform enum
* Do not return linux Selenium Manager by default
* [bidi] Add traverse history command
* Make the json parsing exception text more helpful
* Add javadoc to support event classes (#13199)
* Packages should be opened to modules #13217
* Add more tests for java support event class (#13198)
* Add a `/quitquitquit` endpoint to the test server to make killing it easy
* Grid vnc session is not using the --sub-path argument (#12791, #13219)
* Remove retrying on timeout exception (#13224, #12975)
* Must not request further invocations for a broken websocket
* Moved org.openqa.selenium.remote.http.jdk to selenium-http (#13243)
* Add Chrome 120 and remove 117 for CDP

v4.15.0

======

* Fixed the characteristics of the collector
* Marked Client Config version field as final. (#12941)
* Removed use of guava from browser packages
* Removed use of guava from devtools (#12943)
* Do not set browser binary if it is an empty string (#12738)
* Allow setting proxy for all http client instances (#12940)
* Ensure request can be modified while intercepting (#12930)
* Add BiDi browsing contexts events related to navigation and user prompt
* Update Actions.java as removed modifier keys (#12903)
* Removed the unused netty domain socket client and dependencies
* Removed the guava reference from os, manager, bidi package
* Removed the unused sockets test base
* Removed most usages of guava from the support package
* Copy SM binary to cache folder and use it from there (#11359) (#12539)
* Prevent browser to be created and unused in case a short session-request-timeout is set (#12848)
* Add BiDi request data types from Network module
* Remove the http2-settings header in the reverse proxy
* Add BiDi network response data type, network initiator type
* Add value key to delete downloadFile response per w3c convention (#13025)
* Add BiDi BeforeRequestSent type
* Add BiDi mechanism to listen to network event - beforeRequestSent
* Fix bug in downloading files by ensuring browser vendor options in capabilities (#13024)
* Add BiDi network module events - onResponseStarted and onResponseCompleted
* Fixed processing continuation frames #12962
* Remove CDP version dependencies in the server (#12502)
* Add placeholder for BiDi script module commands and events
* Add BiDi script types, remote reference types, and local value types for script module
* Change local value method name for BiDi serialization
* Fixed the invalid session id response #12655
* Add BiDi channel value type, remote value type and evaluate result types
* Add BiDi call script command, evaluate function command, disown command, get realms command
* Open the selenium-manager to the selenium-json package for the Java Module System
* Add message to exception error for downloads error
* Add BiDi command to add and remove preload script
* Add CDP v119 and remove v116
* Implement file downloads (#12979)

 

v4.14.1

======
* Add print, activate and set viewport commands to Browsing Context
* Remove deprecated lift packages (#12917)
* Add validation for browsing context id (#12920)
* Fix default values for print options page size
* Use the java process builder to run external processes (#12898)
* Allow a custom timeout when shutting down a process
* Replacing Guava implementations with native Java implementations
* Allow setting version in Http Client Config (#12919)


v4.14.0

======
* Supported CDP versions: 85, 116, 117, 118
* Replace the EventAttribute(Value) with an AttributeMap (#12684)
* Add browsing context's capture box and element screenshot commands
* Enable handle user prompt tests for Firefox
* Delete SM binary only when SE_MANAGER_PATH is not set (#12840)
* Shutdown executors created for a single tasks
* Ensure closed socket connection does not prevent freeing up resources
* Remove the unused htmlunit-driver from the unit tests (#12849)
* Ensure proper error message gets logged (#12853)
* Allow setting SSL context in client config for HttpClient (#12874)
* Improve warning when CDP version not found (#12880)
* Ensure retry mechanism does not swallow an exception (#12838)
* Require Java 11 and move jdk-http-client into default package (#12843)
* Reduce log noise at FINE level (#12866)
* Refactor frame method to use isEmpty for list check and String check. (#12894)
* Use new 'getArray' method to extract driver configurations (#12716)

v4.13.0

======
* Supported CDP versions: 85, 115, 116, 117
* Deprecate setScriptTimeout(), use scriptTimeout()
* Remove deprecated method move on Point class
* Remove deprecated method GeckoDriverService usingFirefoxBinary, use setBinary
* Remove deprecated method GeckoDriverService createDefaultService with capabilities
* Remove deprecated onConsoleLog in BiDi LogInspector
* Fix NewSession Runner (#12700)
* Add 'getArray' method for array values (#12703)
* Ensure HttpClients not closed while waiting for responses
* Fix bug for overwriting driver log output stream passed in by user
* Update pinned browser versions
* Improve stability with final variables (#12733)
* Fix bug for Appium subclass that sets neither log file nor output (#12696)
* Remove deprecated headless methods from Options classes
* Remove deprecated driver service constructors and methods
* Remove deprecated log_file methods
* Allow users to set Selenium Manager path by environment variable (#12752)

 

Selenium for .NET (4.12.3) and Java (4.12.1) has just been released with bug fixes and improvements.

v4.12.1

======
* Supported CDP versions: 85, 114, 115, 116
* Safari driver service system properties should be public
* [grid] Removing browserVersion before sending payload to driver
* Selenium Manager don't log file paths by default (#12673)
* Parse log output to support streams and file location in system properties (#12674)
* Fixing default service for drivers #12682

v4.12.0

======
* Supported CDP versions: 85, 114, 115, 116
* Update Selenium Manager to use io for executing command line
* Improve logic for deleting Selenium Manager binary on exit
* Remove deprecated BROWSER_LOGFILE
* Ensure grid maps exceptions to the correct error
* Allow deleting remote downloaded files from grid (#12501)
* Deprecate the Remote Response status field
* Remove deprecated UNEXPECTED_ALERT_BEHAVIOR capability in IE Options
* Deprecate disableNativeEvents method in IE Options
* Remove deprecated createPointerDown and createPointerUp methods
* use devtools script pinning mechanism by default (#11622)
* ensure all headers are removed or replaced
* Remove deprecated /file JWP endpoint (#12354)
* Increase maximum depth of generated JSON (see #12581)
* Do not register multiple listeners
* Improve synchronization for network event listeners
* Fix bug for null hashCode in element subclasses (#12442)
* Fix potential deadlock in processing events (#12576)
* Fix proxy breaking in RemoteWebDriver (#12607)
* Grid detects Safari and Safari Technology Preview only on macOS
* Grid avoids using Selenium Manager offline mode when it is enabled in arguments
* Batch copy input to multiple streams
* Remove browserVersion from options in Selenium Manager (#12639)

Highlights

  • Chrome DevTools support is now: v114, v115, and v116 (Firefox still uses v85 for all versions)
  • Quite a few fixes for Selenium Manager, and now with Firefox browser management! Read about all the new Selenium Manager features
  • .NET only explicitly targets netstandard2.0
  • Python no longer supports Python 3.7
  • Ruby no longer supports :capabilities arguments for local drivers (must use :options now)


Những cải tiến có liên quan cho mỗi ngôn ngữ

  • Java
    • Several improvements in working with Selenium Manager
    • Allow deleting remote downloaded files from grid (#12501)
    • Removed deprecated UNEXPECTED_ALERT_BEHAVIORBROWSER_LOGFILEcreatePointerDowncreatePointerUp and JWP /file endpoint
    • Deprecated disableNativeEvents and Remote Response status field
    • See all changes
  • Ruby
    • Fix bug preventing good error messages in Selenium Manager when stdout empty
    • Fix bug with Firefox not loading net/http library by default (#12506)
    • See all changes

 

v4.11.0

======
* Supported CDP versions: 85, 113, 114, 115
* Add Missing W3C Exceptions (#12175)
* Increased the max depth of new session payload (#12205)
* Create less HttpClient instances while creating a CDP connection (#12216)
* Raise a ConnectionFailedException when openSocket failed (#12215)
* Ack the log file argument without need to combine it. Fixes #12225
* Improved the exit code and error handling (#12219)
* No need to have the auto-service dependency in the client bindings (#12244)
* Deprecate all 'lift style' code (#12263)
* Minor spelling Fix (#12258)
* Adding ignore process match for IE Mode across bindings (#12279)
* Extract original driver from decorated driver when Augmenting a driver (#12248)
* BidiException instead of DevToolsException in getBiDi (#12284)
* [grid] Switching to fine log level when clearing caches in LocalNode
* Removing deprecated methods (findElement & findElements)
* less memory allocation (#12320)
* Add move to location method to Actions (#11509)
* [grid] Add supports for list-of-table options (#12363)
* [grid] reject requests only if it has been in the queue before trying… (#12336)
* [grid] do not rely on .hashCode for .equals (#12361)
* Use Selenium Manager to locate drivers on PATH (#12352)
* [grid] Improved the new session handling when the queue is empty (#12385)
* [grid] Using SM to find drivers on PATH
* Using same variable for log output, fixes #12406
* UnreachableBrowserException logs the command parameter details only in debug mode (#11328)
* Filter related fixed in the NettyClient and the JdkHttpClient
* Removing deprecated `createServiceWithConfig` in ChromeDriverService
* Removing deprecated `webdriver.chrome.whitelistedIps` in ChromeDriverService
* Removing deprecated ChromeDriverLogLevel
* Add browser output from Selenium Manager to options (#12424)
* [grid] Make user defined SlotMatcher used everywhere in grid code (#12240)
* Add support for FedCM commands (#12096)
* [grid] Returning se:bidi when the user sends `webSocketUrl`. Fixes #12314
* [grid] Covering use case where a Node is UP after being marked DOWN. Fixes #12116
* Make external modules static (#12294)
* Use double-checked locking to initialise the Selenium Manager instance
* Making sure browser path is not null before setting the binary when value is returned from SM
* Showing SM error when the exception is thrown

Từ phiên bản Selenium 4.11.0 thì Selenium Manager đã tự động cập nhật đường link mới của chromedriver (Chrome for Testing) nên không còn vấn đề support CDP sai phiên bản nữa và cũng không cần add file chromedriver.exe thủ công nữa.
What's new in Selenium Manager with Selenium 4.11.0

Trước đó 4.10.0 nó đang hiểu đường link cũ trỏ đến chromedriver của Google nên sẽ có câu chuyện không cập nhật đúng version browser. Giờ thì cập nhật rồi. Sự kết hợp giữa Chrome và Selenium lần này khá hay.

Chrome for Testing availability



v4.10.0

======
* Supported CDP versions: 85, 112, 113, 114
* Remove Selenium RC and WebDriverBackedSelenium code (#12024)
* Fixed URI in logs (#12000)
* Enhancing stereotype in Dynamic Grid (#12034)
* Support proxies in Selenium Manager (#12036)
* Close websockets when closing JDK HTTP Client (#12035)
* Change bidi loglevel warning level (#12054)
* Allow driving embedded apps without CDP (#11963)
* Fix possible freeze from incompatible HTTP responses (#12055)
* Fix bug when JSON max depth reached (#12056)
* Remove deprecated capabilities `SUPPORTS_JAVASCRIPT` and `SUPPORTS_WEB_STORAGE`
* Remove deprecated setters in `Rectangle`
* improve cleaning of upload and download directories (#12059)
* Fix redirect bug in JDK HTTP Client (#12070)
* Prevent grid from creating sessions that will time out in queue (#12014)
* Respect disabled pretty printing for arrays (#12079)
* Add support for WebView2 in Edge
* Allow setting savefile directory in Chrome when downloads are enabled (#12109)
* Add BiDi support for browing context events
* Enable BiDi functionality for Chromium browsers
* Improve "near" locator behavior (#11290)
* Do not send driver logs to console by default (#12136)
* Fix bug with GeckoDriver option for truncating log lines
* Do not log Selenium Manager details as INFO (#12145)
* Error messages link to Selenium documentation where supported
* Create NoSuchDriverException for referencing driver location problems

 

v4.9.1

======
* Supported CDP versions: 85, 111, 112, 113
* Typo in the "addArguments" method comment (#11945)
* Handling case where -1 is returned as statusCode (#11910)
* Adding remote-allow-origins argument only when the Java 11 http client is not used (#11949)
* Remove deprecated "version" JWP capability
* Remove deprecated "platform" JWP capability
* Remove deprecated "takesScreenshot" JWP capability
* Remove deprecated "unexpectedAlertBehaviour" JWP capability
* [grid] Displaying the real stereotype config at startup
* Add logging for starting the driver
* [grid] Do not switch and remove node in one iteration (#11961)
* Handle fragmented websocket messages (#11962)
* Add more logging to Selenium Manager (#11959)
* Make Driver Services consistent (#11973)
* Using driver path always for Safari and Safari Technology Preview (#11952)
* Overriding methods to have main platform names lowercase (#11952)

v4.9.0

Highlights


======
* Supported CDP versions: 85, 110, 111, 112
* Handle redirects inside the JdkHttpClient (#11816)
* [grid] Remove Json Wire Protocol support (#11823)
* Selenium Manager use binary from Browser Options
* [grid] Allowing binary to be set via options when not set in Grid
* Log exception message (#11922)
* [grid] Fixing remote execution for Edge when Java 8 client is used

v4.8.3

======
* Supported CDP versions: 85, 109, 110, 111
* Fix bug preventing adding items to ArrayList for Selenium Manager command

v4.8.2 (Mar 24, 2023)

======
* Supported CDP versions: 85, 109, 110, 111
* [grid] Enabling `detectDrivers` original behaviour.
* Fix NPE regression in 4.8.0 (#11701)
* Implement DriverFinder completely independent of Service classes (#11491)
* [grid] Allow LocalNode to be extended for customisation (#11718)
* InvalidSelectorException extends WebDriverException (#11727)
* Deprecate CDP instance methods in FirefoxDriver
* Adding allowHosts to GeckoDriverService
* [grid] Passing language env var to child containers
* [grid] Removing unknown capability extensions for IE
* [bidi] Ensure removing listeners does not cause an error
* Process Selenium Manager output as JSON (#11663)
* [grid] Support remote downloads in Grid (#11702)
* Adding `remote-allow-origins` for Chrome
* Invoking Selenium Manager only with `--browser
* [grid] Adding `remote-allow-origins` for Chrome stereotypes
* Overloaded constructors to configure connect and read timeouts for WebDriver objects (#11532)
 

v4.8.1 (Feb 17, 2023)

======
* Supported CDP versions: 85, 108, 109, 110
* Merge capabilities of slot with the new session request capabilities (#11369)
* Keep track of pinned scripts per CDP session (#11598)
* Simplify Augmentation for Basic Auth (#11601)
* Print requested capabilities in SessionNotCreatedException (#11604)
* Simplify Augmentation for Dom Mutation
* Generate a Maven BOM (#11560)
* Synchronize method to get Selenium Manager binary (fix #11620) (#11640)
* Updating Selenium Manager binaries for 4.8.1 release
* File downloads url - Adhere to w3c standards (#11646)

v4.8.0 (Jan 23, 2023)

======
* Supported CDP versions: 85, 107, 108, 109
* Implement Edge and Chrome Driver Services using log level with ChromiumDriverLogLevel enum
* Deprecate Edge Driver Service using log level with String
* Deprecate Chrome Driver Service using log level with ChromeDriverLogLevel enum
* Deprecate setting Chrome Driver Service logging values in Chrome Options
* Close BiDi session on closing the last top-level browsing context
* Add withAllowedListIps() to ChromeDriverService
* Add comment with name of large JS executions (#11038)
* Allow Pointer and Wheel methods to accept Point object (#11477)
* Fix bug where options are not properly merged into capabilities (#11396)
* JDKHttpClient: Fix null pointer bug when responseBody is null (#11450)
* CDP: Ensure child session is created under browser session (#11475)
* Deprecate setHeadless for Chrome and Firefox Options (#11467)
* Grid: Remove translations of non-w3c locators (#11470)
* JDKHttpClient: Handle RQST with no Body [POST/PUT] (#11445)
* Fix bug with decorated webdriver not calling the listeners (#11438)
* BiDi: Add filter parameter to LogInspector methods
* BiDi: Rename 'onConsoleLog' to 'onConsoleEntry'
* CDP: Fix bug with console events returning modified args (#11435)
* Grid: Accommodate ability to specify sub-paths (#11271)
* Grid: fix bug with pulling image using zero content-length (#11342)

Phiên bản Selenium 4.8.0 thì nó đã thay đổi trong chế độ Headless trong Chrome và Firefox và support CDP 109

Trước đây:
ChromeOptions options = new ChromeOptions();
options.setHeadless(true);
WebDriver driver = new ChromeDriver(options);
driver.get("https://anhtester.com");
driver.quit();​

Sau này:

ChromeOptions options = new ChromeOptions();
options.addArguments("--headless=new");
WebDriver driver = new ChromeDriver(options);
driver.get("https://anhtester.com");
driver.quit();


Maven Dependency:
<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-java</artifactId>
    <version>4.8.0</version>
</dependency>​

v4.7.2 (Dec 13, 2022)

======
* Grid: Support file downloads on the node (#11277)
* Change chromium service names from whitelisted to allowed (#11409)
* Avoid closing CDP connection in browser implementation since that logic now sits in RemoteWebDriver (Fixes #11401)
* Fix bug where failing Selenium Manager method results in wrong error
* Allow changing chromium driver log timestamp formatting
* Allow ignoring chromedriver build checks using service builders
* Add support for appendLog to msedgedriver service
* Fix msedgedriver log level logic
* Allow setting chromedriver log level from system properties
* Fix chromedriver log level logic
* Remove deprecated Firefox capabilities
* Removing a few bits more of the magic that moves JWP to W3C
* Removing deprecated SUPPORTS_ALERTS and SUPPORTS_SQL_DATABASE caps
* Removing deprecated OVERLAPPING_CHECK_DISABLED cap
* Removing deprecated LOGGING_PREFS cap
* Removing deprecated HAS_TOUCHSCREEN cap
* Removing deprecated HAS_NATIVE_EVENTS cap
* Removing deprecated ENABLE_PROFILING_CAPABILITY cap
* Removing deprecated ACCEPT_SSL_CERTS cap

Cái mới tại phiên bản này là nó support appendLog cho msedgedriver

Maven Dependency:
<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-java</artifactId>
    <version>4.7.2</version>
</dependency>​


v4.7.1

======
* Supported CDP versions: 85, 106, 107, 108
* Add close method to JDK 11 client. Ensure close methods for Http client is called. (#11345)
* Don’t specify content length when pulling images (#11343)
* Allow arguments to be passed in Node flag "driver-configuration" (#11367)
* Ensure all states of StartOrDie are handled (#11297)

Maven Dependency:
<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-java</artifactId>
    <version>4.7.1</version>
</dependency>​​

v4.7.0

======
* Supported CDP versions: 85, 106, 107, 108
* Remove deprecated classes for Rotatable, AppCache, NetworkConnection, LocationContext
* Remove deprecated capabilities- IE_USE_PRE_PROCESS_PROXY, APPLICATION_NAME, ELEMENT_SCROLL_BEHAVIOR
* Fix bug causing sessions to hang when session stops (#11167)
* Support multiple reads of input stream (#11249)
* Fix reading connection header (#11255)
* BiDi: Implement JavascriptLogEntry
* BiDi: Support browsing context in event subscriptions
* BiDi: Fix type of JavascriptLogEntry
* Grid: improved exception handling when no cause is set (#11286)
* Fix following contract of Closeable (#11282)
* Grid: Get TZ from parent container when not passed as cap (#11289)
* BiDi: Add LogInspector
* Grid: do not offload from multiple threads to a single worker (#11260)
* Add support for Selenium Manager to work with IE Driver
* Improve error handling with Selenium Manager (#11300)
* BiDi: Add constructor parameter for commands without a response
* Grid: remove browser filters from makeW3CSafe
* Fix bug for merging MutableCapabilities and Options

Tại phiên bản này thì cái mới là Selenium Manager nó hỗ trợ cho IE Driver nhưng giờ thì IE cũng không còn được Microsoft support nên chắc cũng không ảnh hưởng mấy.
Chủ yếu là nó support cho Chromium đến version 108 

Maven Dependency:
<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-java</artifactId>
    <version>4.7.0</version>
</dependency>​​

v4.6.0

======
* Supported CDP versions: 85, 105, 106, 107
* Updated IllegalArgumentException to NullPointerException for Null Values in Require Class (#11162)
* Fix page ranges issue in PrintOptions (#11172) (#11174)
* Ensure the correct output stream is used (#11175)
* Add initial support for Selenium Manager
* Revert "[java] only allow enabled select lists for Select class"
* [grid] Closing input pipeline when 404 is returned
* JDK Http client - avoid chunking without buffering to memory (#11198)
* Avoiding pulling same netty dependencies for AsyncHttpClient
* [grid] Only check for IEDriver on Windows.

Chổ này có tính năng mới là từ phiên bản 4.6.0 trở về sau Selenium Manager nó tự động tải driver tương thích với phiên bản của Browser luôn mà chúng ta không cần dùng bên thư viện thứ 3 như WebDriverManager.

Maven Dependency:
<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-java</artifactId>
    <version>4.6.0</version>
</dependency>​​
  • Anh Tester

    Đường dẫu khó chân vẫn cần bước đi
    Đời dẫu khổ tâm vẫn cần nghĩ thấu