Отправка специального символа '@' с помощью SendKeys в IE 11

Я пытаюсь отправить специальный символ в текстовое поле с помощью метода SendKeys в Internet Explorer 11. У меня не было этой проблемы при попытке отправить специальные символы в других браузерах, но Internet Explorer отправляет совершенно другие символы при попытке отправить специальные символы.

Большинство специальных символов работают (например,!#()$%&/), Но такие символы, как @{}§, не работают, и вместо этих символов в текстовом поле записывается что-то вроде vbnm. Эти буквы представляют ключи, с помощью которых создаются специальные знаки в сочетании с ключом Alt Gr (например, Alt Gr + v = @, Alt Gr + b = {, Alt Gr + n = }, Alt Gr + m = §).

Я пытался использовать объект Action для отправки ключей с помощью метода KeyDown, но это также оказалось безуспешным, когда при попытке написать строку с символом "@" (например, username@mail.com) специальный знак заменяется буквой "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.");
        }
    }

При отправке строки "@{}§~$%&()=" в текстовое поле я получаю это в качестве вывода.

Имя пользователя выводится при отправке строки

1 ответ

string a = "@{}§~$%&()=";
string b = WebUtility.HtmlDecode(a);
Другие вопросы по тегам