硒无效的密钥序列

时间:2012-12-10 16:14:22

标签: selenium

我正在使用以下按键序列

protected void assertFieldValues(String fieldId, String value) {
    focus("id=" + fieldId);
    type("id=" + fieldId, value);
    keyDown("id=" + fieldId, value);
    keyUp("id=" + fieldId, value);
}

当我第一次调用该方法时,它没有问题,

public String REQUISITION_TOTAL = "requisitionTotal";

//initially add total
assertFieldValues2(REQUISITION_TOTAL, "1500"); 

当我第二次调用它来覆盖原始值时,

//Overwrite total, but fails. 
assertFieldValues2(REQUISITION_TOTAL, "2500");  

我收到以下错误,无效的密钥序列。它似乎在keydown失败,如果我删除keydown它在keyup上失败。

任何想法我做错了什么?我需要keyup来运行js计算。

2 个答案:

答案 0 :(得分:1)

这取决于您要按下哪个键并释放。例如,如果您想按“Enter键”,代码将如下所示:

selenium.keyDown(REQUISITION_TOTAL."\13");
selenium.keyUp(REQUISITION_TOTAL."\13");

13是Enter Key 的关键值。

对于模式密钥代码,请参阅此链接Key Codes and ASCII Values

答案 1 :(得分:0)

在覆盖字段之前,始终建议清除字段的先前内容。

query = Driver.FindElement(By.Id(fieldId));
query.Clear();

我希望这会有所帮助...一切顺利:)