【问题标题】:OpenQA.Selenium.WebDriverException: 'unknown error: ChromeDriver only supports characters in the BMP while sending an emoji through C# SeleniumOpenQA.Selenium.WebDriverException:'未知错误:ChromeDriver 仅支持 BMP 中的字符,同时通过 C# Selenium 发送表情符号
【发布时间】:2018-10-30 12:58:33
【问题描述】:

我正在尝试发送表情符号。我尝试通过应对信号 ???? 来发送它,但它引发了此异常。

OpenQA.Selenium.WebDriverException: 'unknown error: ChromeDriver only supports characters in the BMP

比我尝试将其作为 unicode 发送,但没有任何成功。这不是理想的标志。

input.SendKeys("/u1F44D")

发送表情符号的正确方法是什么?

【问题讨论】:

    标签: c# selenium google-chrome selenium-chromedriver


    【解决方案1】:

    此错误消息...

    OpenQA.Selenium.WebDriverException: 'unknown error: ChromeDriver only supports characters in the BMP
    

    ...暗示 ChromeDriver 无法发送 emoji 即 ??通过SendKeys()方法发出信号。

    从@JimEvans answer 中取出一片叶子,目前ChromeDriver 仅支持Plane 0Basic Multilingual Plane (BMP) 中的代码点。

    使用 GeckoDriver/FirefoxIEDriverServer/IE 组合会为您带来更好的结果。

    您可以在Web Platform Test Suite 中找到专门发送表情符号的特定测试的当前状态,这些测试也适用于其他浏览器。

    但是,要通过 C# 发送 emoji,您可以使用以下语法:

    input.SendKeys("\u1F44D");
    

    【讨论】:

    • 希望 Chrome 驱动程序能尽快解决这个问题
    • @Kostas 希望如此
    【解决方案2】:

    解决方案

        async sendKeysWithEmojis(element, text) {
            const script = `var elm = arguments[0],
            txt = arguments[1];elm.value += txt;
            elm.dispatchEvent(new Event('keydown', {bubbles: true}));
            elm.dispatchEvent(new Event('keypress', {bubbles: true}));
            elm.dispatchEvent(new Event('input', {bubbles: true}));
            elm.dispatchEvent(new Event('keyup', {bubbles: true}));`;
            await this.driver.executeScript(script, element, text);
        }
    

    这样称呼

    const element = await this.driver.findElement(selector);
    await sendKeysWithEmojis(element, '?? This one shall pass ??');
    

    这里发生了什么? 我们正在使用事件模拟原生按键

    请注意,{bubbles: true} 是可选的(在我的情况下由于复杂的包装输入而需要)

    【讨论】:

      猜你喜欢
      • 2020-03-27
      • 2022-06-02
      • 2013-05-14
      • 2018-09-02
      • 2021-12-30
      • 1970-01-01
      • 1970-01-01
      • 2022-01-03
      • 2011-10-24
      相关资源
      最近更新 更多