以下说明
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'?
答案 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
方法。
此命令可能有也可能没有 可见效果,即使在哪些情况下 键入键通常会有一个 可见效果
...
在某些情况下,你可以 需要使用简单的“类型”命令 然后设置字段的值 发送“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”。然后,我们可以使用type
和typeKeys
命令来编写给定的字符串。
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);
它就像一个魅力!