gpt4 book ai didi

java - 无法将键发送到 div 元素 Selenium - Java

转载 作者:行者123 更新时间:2023-12-02 10:45:56 25 4
gpt4 key购买 nike

您好,我正在尝试使用 xpath 将值填充到文本框(检查下图)。

Actions actions = new Actions(driver);
actions.moveToElement(driver.findElement(By.xpath("//*[@class='CzI8E']")));
actions.click();
Thread.sleep(3000);
actions.moveToElement(driver.findElement(By.xpath("//*[@class='_2S1VP copyable-text selectable-text']")));//_2S1VP copyable-text selectable-text
actions.sendKeys(WhatsappConstants.TEXT_MESSAGE);
actions.build().perform();

但是我遇到了这个异常

org.openqa.selenium.WebDriverException:未知错误:ChromeDriver 仅支持 BMP 中的字符

其他 stackoverflow 答案说使用 Firefox 驱动程序,但就我而言,我需要您仅使用 chrome。

enter image description here

最佳答案

这是 Chromedriver 的已知限制,请参阅 http://crbug.com/chromedriver/2269查看官方错误跟踪器中的错误报告。

您可以做的就是仅将自己限制为支持的字符,基本上来自:http://www.columbia.edu/kermit/ucs2.html

或者,您可以模拟输入,而不是使用前端 JS 片段真正发送 key ,如下所示:

(function (element, text) {
Array.prototype.forEach.call(text, function (char) {
element.value += char;
element.dispatchEvent(new KeyboardEvent("keydown"));
element.dispatchEvent(new KeyboardEvent("keypress"));
element.dispatchEvent(new KeyboardEvent("input"));
element.dispatchEvent(new KeyboardEvent("keyup"));
});
}).apply(null, arguments);

然后您可以使用 JavascriptExecutor 进行调用:

((JavascriptExecutor) driver).executeScript(JS_CODE, element, text);

该代码段适用于具有可写 .value 属性的元素,它可以扩展为支持 contenteditable 元素。

请注意,事件的字段设置为其默认值,包括按键代码等,请参阅 https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/KeyboardEvent此外,您可能还需要添加要触发的其他事件,以更好地模拟用户输入。

关于java - 无法将键发送到 div 元素 Selenium - Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52575938/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com