将@发送到硒中输入的正确方法是什么?

Which is the correct way to send @ to input in selenium?

我正在使用

email.SendKeys("myemail@gmail.com")

但有时会用 myemail2gmail.com,用 2 而不是 @,我已经进行了快速研究,我想知道这是否是最佳解决方案

email.SendKeys("myemail" + Keys.Shift + "2" + Keys.Shift + "gmail.com");

问题出在 IE 11 中,我在 Visual Studio c# 中使用带有 specflow 的 browserstack。

我听说有人在 IE 和 Edge 浏览器中将 sendkeys 与特殊字符结合使用时遇到问题。事实上,正确的做法是:

email.SendKeys("myemail@gmail.com")

如果这不起作用,您可以尝试使用 Javascript 作为解决方法,将电子邮件地址输入到字段中。像这样:

IWebElement email = driver.FindElement(By.Id("email"));

IJavaScriptExecutor js = driver as IJavaScriptExecutor;
string script = "arguments[0].setAttribute('value', 'arguments[1]');";
js.ExecuteScript(script, email, "dummy@user.de");

我用的和@Agent Shoulder 说的类似

var _element= driver.FindElement(By.Id("id"));
IJavaScriptExecutor js = (IJavaScriptExecutor)driver;
js.ExecuteScript("arguments[0].setAttribute('value', 'email@gmail.com')", _element);