Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[🐛 Bug]: Text transformation issue with text-transform: capitalize; using Selenium WebDriver with Firefox 127.0.2 #14271

Open
Usielrivas opened this issue Jul 17, 2024 · 4 comments

Comments

@Usielrivas
Copy link

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

Copy link

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

@whimboo
Copy link
Contributor

whimboo commented Jul 17, 2024

To repeat what I've said on mozilla/geckodriver#2185 (comment):

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 #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.

@diemol
Copy link
Member

diemol commented Nov 5, 2024

@whimboo what change is needed in the Atoms?

@whimboo
Copy link
Contributor

whimboo commented Nov 5, 2024

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants