Selenium 破坏了 Firefox 中的日文输入

Selenium 破坏了 Firefox 中的日文输入

我使用 Selenium + Python 启动 Firefox,使用的是现有配置文件,而不是默认的临时配置文件。我注意到,对于我与 Selenium 一起使用的任何配置文件,日语输入从此就失效了。不仅是在从 Selenium 控制 Firefox 时,而且在我正常启动 Firefox 之后也是如此。

我说的“损坏”是指,如果我在网页的输入字段、网址栏或开发者控制台中输入内容,则什么都不会发生。不会出现任何日语或拉丁字符。但是,如果我恢复默认的法语输入,则一切正常。

问题显然出在 Firefox 配置文件级别:日语输入在其他程序中运行良好,并且在其他 Firefox 配置文件中运行良好。

我目前的解决方法是保留一个专为 Selenium 设计的配置文件,但我至少想修复我的其他配置文件。

我不指望有人会有一个现成的解决方案,但我会很感激任何线索,我甚至不知道现在该朝哪个方向搜索。


技术细节 :

我目前正在使用 Debian 测试版、Firefox 102 ESR、fcitx5 + anthy 进行日文输入。但我注意到在 Ubuntu 20.04、Firefox 104、ibus + anthy 上也存在同样的问题,无法进行日文输入。

重现步骤 :

在 Firefox 中,从 about:profiles 创建新配置文件,然后单击“在新浏览器中启动配置文件”。请注意,我可以正常输入日语。关闭浏览器。

使用以下脚本通过 Selenium 启动相同的配置文件:

#!/usr/bin/env python3

from selenium.webdriver import Firefox
from selenium.webdriver.firefox.options import Options

options = Options()
options.add_argument('-profile')
options.add_argument('/home/user123065/.mozilla/firefox/<randomstring>.<profilename>')
driver = Firefox(
    options=options
)

请注意,我无法输入日语。关闭浏览器,通过单击“在新浏览器中启动配置文件”再次打开它(无需 Selenium)。请注意,我仍然无法输入日语。

答案1

经过多次反复尝试后,我发现编辑文件 user.js 并将其替换user_pref("focusmanager.testmode", false);user_pref("focusmanager.testmode", true);可以解决问题。

不知道为什么。

编辑 :

10 个月后,在“apt update”之后,同样的问题再次出现。这次,相反的修改解决了这个问题。仍然不知道原因。

相关内容