0

我正在使用以下键序列,

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 计算。

4

2 回答 2

1

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

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

其中13 是 Enter Key 的键值

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

于 2012-12-12T05:22:18.513 回答
0

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

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

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

于 2012-12-11T05:57:11.530 回答