我想在Internet Explorer 11中使用SendKeys方法向文本框发送一个特殊字符。在尝试在其他地方发送特殊字符时,我没有这个问题浏览器,但Internet Explorer在发送特殊字符时发送完全不同的字符。用SendKeys向IE发送'@'特殊字符11
大多数特价人物做的工作(如!#()$%& /),但如@ {}§字符不工作,而是这些字符,像vbnm写在文本框中。这些字母代表与特殊符号组合使用的键,它们与Alt Gr(例如Alt Gr + v = @,Alt Gr + b = {,Alt Gr + n =},Alt Gr + m =§)组合在一起创建。
我尝试使用Action对象来发送KeyDown方法的键,但它也不成功,当试图写一个字符串与'@'在它(例如[email protected])特殊符号被替换为字母'v'(usernamevmail.com)。我也尝试使用'@'符号的ASCII等价物,而不是特殊字符,我在文本框中放置了'64'文本。
private static string UserName
{
get { return Browser.GetSingleElement(Login.txtUserName).GetAttribute("value"); }
set
{
if (value == null) return;
var domElement = Browser.GetSingleElement(Login.txtUserName);
Actions action = new Actions(Browser._driver);
action.MoveToElement(domElement);
action.Perform();
domElement.Clear();
action.KeyDown(Keys.LeftAlt);
action.Perform();
action.SendKeys(Keys.NumberPad6);
action.SendKeys(Keys.NumberPad4);
action.Perform();
//action.MoveToElement(Browser.GetSingleElement(Login.txtUserName)).Click().KeyDown(Keys.LeftAlt).SendKeys("64").Perform();
if (!Browser.SendKeys(Browser.GetSingleElement(Login.txtUserName), "@{}§~$%&()="))
throw new Exception("Failed to send keys on Login.txtUserName DOM element.");
}
}
当发送 “@ {}§〜$%&()=” 字符串文本框中我得到这个作为输出。
您是否尝试过使用WebUtility.HtmlDecode(字符串文本)? – IamBatman
@IamBatman现在就试用了,效果很好,谢谢您的评论 –
不客气。很高兴帮助。 – IamBatman