Selenium typeKeys从键入的String中删除点

时间:2009-04-29 19:13:54

标签: java eclipse junit selenium

以下说明

Selenium.typeKeys("location", "gmail.com");

键入字符串gmailcom而不是gmail.com

那里发生了什么?

来自评论:
我正在尝试模拟自动填充,目前在selenium上执行此操作的唯一方法是组合type和typeKeys。例如:

selenium.type("assigned_to", split[0]+"@");
selenium.typeKeys("assigned_to", "gmail.com");

现在我的问题是为什么typeKeys不在gmail.com之间输入'dot'?

8 个答案:

答案 0 :(得分:4)

您是否尝试过使用Native键功能和javascript char codes? 我无法使用它们获得'句号'字符(char 190),但是我得到了十进制(字符110)才能正常工作,文本框也不应该有问题。

selenium.Focus("assigned_to");
selenium.Type("assigned_to", split[0]+"@");
selenium.TypeKeys("assigned_to", "gmail");
selenium.KeyPressNative("110");
selenium.TypeKeys("assigned_to", "com");

答案 1 :(得分:2)

使用type方法。

来自javadoc for typekeys

  

此命令可能有也可能没有   可见效果,即使在哪些情况下   键入键通常会有一个   可见效果

     

...

     

在某些情况下,你可以   需要使用简单的“类型”命令   然后设置字段的值   发送“typeKeys”命令   击键事件对应什么   你刚输入。

答案 2 :(得分:1)

我们在selenium python中使用typekeys时遇到了类似的问题。

我们想要解决此问题的一个解决方法是使用'type'和'type_keys'的组合。您可能知道,类型没有这样的问题。

我们在selenium python脚本中这样做了,它运行得很好。

例如: 如果要在文本框中输入电子邮件地址:test.me@test.me.uk

然后做

type(locator,’test.me@test.me.’)
type_keys(locator,’uk’)

也许是一种非常粗暴的方式,但它确实起了作用。

希望这可以帮助其他有类似问题的人。

答案 3 :(得分:1)

假设使用typeKeys键入的字符串是“abc.xyz.efg”。然后,我们可以使用typetypeKeys命令来编写给定的字符串。

type(locator,"abc.xyz.")
typeKeys(locator,"efg")

只要您想在下拉框中选择一个元素,上述两个步骤就很有用,只有在我们使用typeKeys命令时才会弹出下拉列表。

答案 4 :(得分:1)

在写入之前,还要尝试将焦点设置在元素上。

selenium.focus(locator);
selenium.typeKeys(locator, value);

它在我的情况下起作用,处理输入类型=密码。

答案 5 :(得分:0)

我在使用Selenium RC(C#)时也看到了这种行为,并且使用了不同的字符(例如'y',它似乎也会从输入操作中删除字符跟踪它。)

对于某些情况,完全有可能通过使用TypeKeys或KeyPress函数键入键来解决问题,但我还没有设法找到一个解决方案,当您想在字段中键入文本时,输入控制字符(例如[Enter]或换行符),然后键入更多文本..(在这种情况下使用'Type'函数只是覆盖字段内容...)。

如果有人设法找到这个问题的合理解决方案,请将它添加到这个问题,因为它现在开始出现在谷歌中,可能会帮助很多人..(如果可以,我会开始赏金..)

答案 6 :(得分:0)

这是Selenium中的一个漏洞(bug SEL-519)。

经过一番摆弄,我终于成功进入'。'使用JavaScript进入textarea。通过window.document.getElementById('assigned_to').value += '.'等执行storeEval之类的内容。

答案 7 :(得分:0)

我得到了相同的行为,但通过将变量传递给Type命令而不是字符串来修复它。

string email = @"name@gmail.com";
selenium.Type(inputfield, email);

它就像一个魅力!