[š Bug]: Text transformation issue with `text-transform: capitalize;` using Selenium WebDriver with Firefox 127.0.2
What happened?
Description:
There is an issue with the text-transform: capitalize; CSS property when using Selenium WebDriver with Firefox 127.0.2. The text transformation does not handle accented characters correctly, resulting in incorrect capitalization.
Steps to Reproduce:
- Install Node.js.
- Create a new project and install Selenium WebDriver.
npm init -y npm install selenium-webdriver // last version - Download
geckodriver 0.34and place it in a specific directory. - Create the following JavaScript script (
selenium_example.js):
const { Builder, By, until } = require('selenium-webdriver');
const firefox = require('selenium-webdriver/firefox');
const path = require('path');
const geckodriverPath = path.join(process.env.HOME, 'gecko/geckodriver'); // Adjust this path
(async function example() {
let options = new firefox.Options();
options.setBinary(geckodriverPath);
let driver = new Builder()
.forBrowser('firefox')
.setFirefoxOptions(options)
.build();
try {
const url = 'file:///home/user/test/bug/index.html';
await driver.get(url);
await driver.wait(until.elementLocated(By.tagName('h1')), 10000);
let element = await driver.findElement(By.tagName('h1'));
let text = await element.getText();
console.log(`response: ${text}`);
} finally {
await driver.quit();
}
})();
- Create the following HTML file (
index.html):
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Bug Test</title>
<style>
h1 {
text-transform: capitalize;
}
</style>
</head>
<body>
<h1>Fecha de expiración</h1>
</body>
</html>
- Run the script:
node selenium_example.js
Expected Behavior: The output should be:
response: Fecha De Expiración
Actual Behavior: The output is:
response: Fecha De ExpiraciĆN
Additional Information:
- Operating System: Fedora 40
- Node.js: v20.12.2
- Selenium WebDriver: 4.22.0
- geckodriver: 0.34.0 (c44f0d09630a 2024-01-02 15:36 +0000)
- Firefox: 127.0.2
This issue started occurring after updating to Firefox 127.0.2. It appears that the text-transform: capitalize; CSS property does not handle accented characters correctly.
Console Output: No errors in the console.
How can we reproduce the issue?
already described
Relevant log output
already described
Operating System
Fedora 40
Selenium version
4.22.0
What are the browser(s) and version(s) where you see this issue?
Firefox: 127.0.2
What are the browser driver(s) and version(s) where you see this issue?
geckodriver: 0.34.0 (c44f0d09630a 2024-01-02 15:36 +0000)
Are you using Selenium Grid?
No response
@Usielrivas, thank you for creating this issue. We will troubleshoot it as soon as we can.
Info for maintainers
Triage this issue by using labels.
If information is missing, add a helpful comment and then I-issue-template label.
If the issue is a question, add the I-question label.
If the issue is valid but there is no time to troubleshoot it, consider adding the help wanted label.
If the issue requires changes or fixes from an external project (e.g., ChromeDriver, GeckoDriver, MSEdgeDriver, W3C),
add the applicable G-* label, and it will provide the correct link and auto-close the
issue.
After troubleshooting the issue, please add the R-awaiting answer label.
Thank you!
To repeat what I've said on https://github.com/mozilla/geckodriver/issues/2185#issuecomment-2232756443:
In Firefox 127 we landed a fix for https://bugzilla.mozilla.org/show_bug.cgi?id=1888004. That included an update of the Selenium atoms for 'getVisibleText' to revision 33c6b7841a59aaaad55744909c0600f066fd5593. This update includes the changes from https://github.com/SeleniumHQ/selenium/pull/13792.
@diemol could your patch have caused a regression for this atom and behavior for text-transform: capitalize?
There might have been a misunderstanding at that time, and I apologize for that. The change I proposed was only relevant to my case, and I didn't test any other scenarios. I assume there is no test in the Selenium code base that checks for accented characters, which would have caught this regression.
@whimboo what change is needed in the Atoms?
I cannot exactly tell, but I would suggest to revert the change and then find the piece in the regex to update to keep the other test passing.
This issue is stale because it has been open 280 days with no activity. Remove stale label or comment or this will be closed in 14 days.
It's not stale and it should still be fixed.
This issue is looking for contributors.
Please comment below or reach out to us through our IRC/Slack/Matrix channels if you are interested.
@whimboo @diemol I tried to fix this bug in the PR #16275 - could you please take a look
This issue has been automatically locked since there has not been any recent activity since it was closed. Please open a new issue for related bugs.