selenium icon indicating copy to clipboard operation
selenium copied to clipboard

[šŸ› Bug]: Text transformation issue with `text-transform: capitalize;` using Selenium WebDriver with Firefox 127.0.2

Open Usielrivas opened this issue 1 year ago • 2 comments

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:

  1. Install Node.js.
  2. Create a new project and install Selenium WebDriver.
    npm init -y
    npm install selenium-webdriver // last version
    
  3. Download geckodriver 0.34 and place it in a specific directory.
  4. 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();
    }
})();
  1. 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>
  1. 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 avatar Jul 17 '24 14:07 Usielrivas

@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!

github-actions[bot] avatar Jul 17 '24 14:07 github-actions[bot]

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 avatar Jul 17 '24 18:07 whimboo

@whimboo what change is needed in the Atoms?

diemol avatar Nov 05 '24 11:11 diemol

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.

whimboo avatar Nov 05 '24 12:11 whimboo

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.

github-actions[bot] avatar May 05 '25 10:05 github-actions[bot]

It's not stale and it should still be fixed.

whimboo avatar May 05 '25 10:05 whimboo

This issue is looking for contributors.

Please comment below or reach out to us through our IRC/Slack/Matrix channels if you are interested.

selenium-ci avatar May 05 '25 18:05 selenium-ci

@whimboo @diemol I tried to fix this bug in the PR #16275 - could you please take a look

vicky-iv avatar Aug 29 '25 20:08 vicky-iv

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.

github-actions[bot] avatar Oct 02 '25 22:10 github-actions[bot]