将"@"符号转换为CharSequence

4

我正在使用selenium测试网站,需要向其中一个字段发送电子邮件。目前,我正在使用以下Java方法:

 String email = "test@example.com"
 WebElement emailField = driver.findElement(By.id("mainForm:accountPanelTabId:1:accountEmails");
 emailField.sendKeys(email);

但出于(对我来说)未知的原因,它确切地将此值发送到该字段:

testvexample.com

所以基本上"@"被替换成了"v"。 只是出于好奇:我是捷克人,有捷克键盘。输入"@"符号的一种快捷方式是按下右Alt + v,所以我认为这可能与此有关... 因此,我正在寻找任何“万无一失”的方法来始终输入“@”符号。任何帮助都将不胜感激。
编辑 sendKeys是Selenium的方法,它模拟键盘输入。 javadoc在此处:http://selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/selenium/WebElement.html#sendKeys%28java.lang.CharSequence...%29
1个回答

0

以下应该可以工作:String email = "test\u0040example.com";

之前误读了问题,抱歉。

我认为你将不得不使用Keys枚举中的正确值调用sendKeys来模拟获取at符号的方式。使用Keys.ALT和你的“v”一起弹奏:

sendKeys(Keys.chord(Keys.ALT, "v"));

坏消息...还是一样的 :( - Pavel Janicek
很抱歉听到这个。这意味着 sendKeys 方法对您的字符串进行了某些操作。我还以为您使用了奇怪的字体。;-) 您能获取 sendKeys 的源代码吗? - Ray Toal
Javadoc在这里:http://selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/selenium/WebElement.html#sendKeys%28java.lang.CharSequence...%29 - Pavel Janicek
帮我找到了解决方案:当我将键盘默认语言从“捷克语”更改为“英语”(现在,英语键盘是默认的)时,原始代码开始工作。非常感谢您的帮助! - Pavel Janicek
虽然有点晚了,但正确的组合键是Keys.chord(Keys.ALT, Keys.CONTROL, "v"),因为右侧的Alt键通常会像ALT+CTRL一样工作。 - Jan Zdrha

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接