首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不能仅使用特殊字符从不可键入的键构造KeyEvent,只能使用Selenium-chromedriver。

不能仅使用特殊字符从不可键入的键构造KeyEvent,只能使用Selenium-chromedriver。
EN

Stack Overflow用户
提问于 2022-02-14 13:30:43
回答 1查看 637关注 0票数 1

当我通过selenium发送键(其中包含“@”等特殊字符)时,我得到了以下错误:

无法从不可键入的键构造KeyEvent

但是,对于字母表字符,函数.send_keys()可以工作。我想将我的用户名发送到正方形登录页面,作为"foo@email.com“。我曾尝试使用Chrome、Safari、Firefox作为网络驱动程序,在所有情况下都会出现相同的错误。

可复制代码示例:

代码语言:javascript
复制
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome()
url = "https://login.squarespace.com/"
driver.get(url)
email_but = driver.find_element_by_name("email")
email_but.send_keys('foo@email.com')

我试图通过复制到剪贴板,然后粘贴到字段中来避免错误:

代码语言:javascript
复制
import xerox
username = "foo@email.com"
xerox.copy(username)
email_but = driver.find_element_by_name("email")
email_but.click()
email_but.send_keys(Keys.CONTROL, 'v')

但同样的错误出现了。

我目前正在使用:

  • OSX诉12.0.1
  • Chromedriver诉98.0.4758.80
  • Chrome诉98.0.4758.80
  • Safari诉15.1
EN

回答 1

Stack Overflow用户

发布于 2022-02-14 22:18:01

这个错误信息..。

代码语言:javascript
复制
Cannot construct KeyEvent from non-typeable key

...using ChromeDriver v98是以下回归的结果:

问题3999:执行sendKeys(Keys.chord())会导致使用Chrome / driver 98在输入文本中加上额外的符号字符

在试图解决非BMP问题时:

问题2269:不可能使用非BMP字符(代码点以上U+FFFF)

然而,CL一直是还原"WebDriver支持SendKeys中的非BMP字符“,但由于问题1295243: ChromeDriver sendKeys中的回归而被阻塞。

固定可用性

该修复程序经过验证,并将与v98.0.4758.99和ChromeDriver v99.0.4844.29.一起发布。

替代方案

作为替代,您还可以将谷歌铬 v98.0与ChromeDriver v97.0一起使用。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71112723

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档