c# - 带有 Chromedriver 的 Selenium SendKeys() 使用剪贴板内容而不是电子邮件地址中的“@”字符
问题描述
我试图在 C# 中使用 Selenium 和 ChromeDriver 将电子邮件地址写入输入字段。到目前为止没有什么壮观的。但是对于包含“@”字符的字符串,它发送的是剪贴板的内容而不是这个字符。
例如:剪贴板的内容是“####MYCLIPBOARDCONTENT######”复制的Ctrl+C
行的执行
var input = _webDriver.FindElement(By.Id(id));
input.Clear();
input.SendKeys("abc@def.test");
在 UI 中导致这个
任何人都可以确认这种行为吗?如何处理?我不想通过一些奇怪的黑客来绕过这个。
解决方案
使用动作链构建“AltGr + Q”。
var actions = new OpenQA.Selenium.Interactions.Actions(driver);
actions.KeyDown(Keys.Control).KeyDown(Keys.Alt); //press Alt
actions.SendKeys("Q"); //press Q
actions.KeyUp(Keys.Control).KeyUp(Keys.Alt); //Release key
actions.Build().Perform();
推荐阅读
- spring-boot - 春季安全| 安全配置 permitall 不起作用
- leaflet - 无法用leafletjs 可视化我的geojson 数据
- java - 没有特定原因的 Android / google ANR 崩溃
- java - 我应该在 Java8 中使用什么版本的 JasperReport
- vue.js - 如何根据多个值在 Vue.js 中选择类?
- html - 为什么背景图像不能正确放入引导流体容器中?
- amazon-web-services - 如何使用 Lambda 和 API 网关部署 AWS Sagemaker 创建的乳腺癌预测端点?
- r - 在计算 ACI 之前对多个文件应用 afilter() 函数
- android - 使用应用程序哈希密钥作为加密是个好主意吗?
- docker - 使用docker安装go的应用程序时如何解决“未定义:math.Round”的问题