我使用 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”之后,同样的问题再次出现。这次,相反的修改解决了这个问题。仍然不知道原因。