为什么Selenium WebDriver 的方法 send_keys() 没有发送完整的字符串

Image result for program在尝试变通方法之前,作为健全性检查,请确保在您发送密钥时输入字段已准备好接收输入。您也可以在调用 SendKeys 之前尝试清除该字段。我假设您看到您的字符串被截断,而不是字符丢失或带有某些工件的前缀(如占位符文本或先前测试的剩余输入)。

如果这不起作用,一些解决方法:

使用 JavaScript 设置输入字段的值,而不是调用 SetKeys。在我执行此操作的某些网站上,除非我还触发输入更改事件,否则实际上无法识别输入值。C# 中的示例。希望您需要的唯一更改是将 ExecuteScript 改为 executeScript。

driver.ExecuteScript("var exampleInput = document.getElementById('exampleInput'); exampleInput.value = '" + testInputValue + "'; exampleInput.dispatchEvent(new Event('change'));");

您当然可以将其分成两行,第一行用于设置值,第二行用于调度事件。

单独发送每个密钥。这是我从有关此问题的线程中多次看到的解决方法。

for (var i = 0; i < first_name.length; i++) {

name_field.sendKeys(first_name.charAt(i));

}

为什么Selenium WebDriver 的方法 send_keys() 没有发送完整的字符串

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注