Selenium通过java-sendKeys不';t将特定字符发送到输入

Selenium通过java-sendKeys不';t将特定字符发送到输入,java,selenium,Java,Selenium,我遇到了一个奇怪的情况,我试图使用sendKeys在输入中键入内容,问题是输入中似乎根本没有实现特定的字符。 我想做的是: webDriver.findElement(By.id("additionalInfo(token_autocompleteSelectInputId)")).sendKeys("(test)"); 结果是输入字段现在是:test),缺少的字符是“(”。 如果我愿意尝试 webDriver.findElement(By.id("additionalInfo(token_a

我遇到了一个奇怪的情况,我试图使用sendKeys在输入中键入内容,问题是输入中似乎根本没有实现特定的字符。 我想做的是:

webDriver.findElement(By.id("additionalInfo(token_autocompleteSelectInputId)")).sendKeys("(test)");
结果是输入字段现在是:test),缺少的字符是“(”。 如果我愿意尝试

webDriver.findElement(By.id("additionalInfo(token_autocompleteSelectInputId)")).sendKeys("((((((((((")
结果是输入为空

以前有人遇到过这个问题吗?它发生在应用程序中的一个非常特定的输入上,在html代码中找不到任何与之相关的内容。 提前谢谢


编辑:我可以手动键入(在输入字段中)。

可能这是selenium的一个特殊字符,您是否尝试过使用转义字符?如果允许的话,可以在转义字符前面加上反斜杠

编辑:我在去年的github上发现了一些问题报告,不确定他们是否同意不修复它。执行脚本键入“(”似乎是另一种选择。
来源:

可能这是selenium的一个特殊字符,您是否尝试过使用转义字符?如果允许的话,可以在转义字符前面加上反斜杠

编辑:我在去年的github上发现了一些问题报告,不确定他们是否同意不修复它。执行脚本键入“(”似乎是另一种选择。
来源:

首先尝试将密钥声明为字符串

String keyToSend = "(test)";

webDriver.findElement(By.id("additionalInfo(token_autocompleteSelectInputId)")).sendKeys(keyToSend);

首先尝试将密钥声明为字符串

String keyToSend = "(test)";

webDriver.findElement(By.id("additionalInfo(token_autocompleteSelectInputId)")).sendKeys(keyToSend);

在这种情况下,您应该尝试使用
JavascriptExecutor
,如下所示:-

WebElement el = webDriver.findElement(By.id("additionalInfo(token_autocompleteSelectInputId)"));

((JavascriptExecutor)webDriver).executeScript("arguments[0].value = arguments[1]", el, "(test)");

希望对您有所帮助:)

在这种情况下,您应该尝试使用
JavascriptExecutor
,如下所示:-

WebElement el = webDriver.findElement(By.id("additionalInfo(token_autocompleteSelectInputId)"));

((JavascriptExecutor)webDriver).executeScript("arguments[0].value = arguments[1]", el, "(test)");


希望有帮助:)

你能手动输入那个“(“字符到字段中吗?也许这是不允许的。我忘了提到你可以手动输入“(“我看到selenium和发送字符有一些有趣的事情。试着先在字段中执行单击操作,这会有所帮助。@AlexRosenfeld我已经尝试过单击,但不起作用:(您可以手动输入“(”字符到字段中吗?也许这是不允许的。我忘了提到您可以手动输入“(”我看到了selenium和发送字符的一些有趣的操作。尝试先在字段中执行单击操作,这会有所帮助。@AlexRosenfeld我已经尝试过单击,但不起作用:(我不熟悉selenium的escape chars,你知道我应该键入什么吗?我尝试了反斜杠,但它不起作用。我认为它不起作用,值得一试。我想你只能选择另一种。我想我必须执行JS值实现:(我不熟悉selenium的escape chars,你知道我应该键入什么吗?我尝试了反斜杠,但它不起作用。我认为它不起作用,值得一试。我想你只能选择另一种。我想我必须执行JS值实现:(您使用的是最新的webdriver吗?您尝试过多个浏览器吗?这似乎是FF的问题,我在更换时已经找到了解决方法\(使用shift键9ah,我在chrome上运行了一个测试,它成功了,这就是我无法重新创建的原因。您是否使用了最新的webdriver?您是否尝试了多个浏览器?这似乎是FF问题,在我更换浏览器的那一刻,我已经找到了解决方法\(使用shift键9ah,我在chrome上运行了一个测试,它成功了,这就是我无法重新创建的原因嘿,谢谢你的回答,这是一个我已经想到要使用的解决方法,但我想看看是否有一些不使用JS的解决方法嘿,谢谢你的回答,这是一个我已经想到要使用的解决方法,但我想看看是否有有一些不使用JS的变通方法