我已经完成了脚本在循环中填充所有可见输入字段的操作。 但是,我需要在填充输入字段之间放慢速度。我需要放慢脚步,因为当您快速填充(乐观逻辑)时,我们的服务器端会抛出错误消息 有什么想法可以做到吗?
我用于检测输入字段+填充它们的代码如下:
List<WebElement> allInputFields = driver.findElements(By.cssSelector("cm-edit-request-form dx-text-area textarea"));
if (allInputFields.size() != 0) {
for (WebElement allInputFieldsElement : allInputFields) {
if (allInputFieldsElement.isEnabled()) {
wait.until(ExpectedConditions.elementToBeClickable((allInputFieldsElement)));
allInputFieldsElement.sendKeys("Automation text" + uuid);
}
}
}
答案 0 :(得分:0)
您可以像这样将每个字符逐个延迟地发送到输入框(假设uuid是您在其他地方初始化的字符串)-
if (allInputFieldsElement.isEnabled()) {
wait.until(ExpectedConditions.elementToBeClickable((allInputFieldsElement)));
String inputText = "Automation text" + uuid;
for (int i = 0; i < inputText.length(); i++) {
allInputFieldsElement.sendKeys(inputText.substring(i, i+1));
Thread.sleep(1000);
}
}
答案 1 :(得分:0)
您可以为某些WebElement的sendKeys编写自定义实现:
public void sendKeys(String keysToSend,WebElement element){
for(char c:keysToSend.toCharArray()){
element.sendKeys(Character.toString(c));
try {
Thread.sleep(300);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
答案 2 :(得分:-1)
尝试使用
Thread.sleep(1000);
1000 是程序将暂停的毫秒数。