OpenQA.Selenium.WebDriverException:"未知错误:ChromeDriver仅支



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

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

比我试图将其作为 unicode 发送,但没有任何成功。 它不是可决定的标志。

input.SendKeys("/u1F44D")

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

此错误消息...

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

。暗示ChromeDriver无法发送表情符号,即??通过SendKeys()方法发出信号。

从@JimEvans答案中取出一片叶子,目前ChromeDriver仅支持平面0中的代码点,即目前的基本多语言平面(BMP(。

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

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

但是,若要通过 C# 发送表情符号,可以使用以下语法:

input.SendKeys("u1F44D");

Javascript 代码中的解决方案

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}是可选的(由于复杂的包装输入,在我的情况下需要(

相关内容

  • 没有找到相关文章

最新更新