5

我想用 selenium web-driver 在文本框中输入 & 键。但是 selenium-2 在键入 & 符号时会从 type-box 失去焦点。我的命令是 self.type("&", :update => true)

我知道在 selenium 中,密钥以 UTF_8 格式发送,并且我尝试发送与 & 符等效的内容,但行为仍然相同(如预期的那样)。我知道 XML 或 HTML 支持带有一些特殊转义字符的 & 符号。我想知道有没有办法在 send_keys 或 type_keys 命令中用一些转义序列(如(HTML 代码)“&”或“&”替换 & 符号?

或者有没有其他方法可以在 selenium-2 的文本框中键入 & 符号?

请让我知道你的建议。

谢谢, 斯里

4

5 回答 5

2

我花了好几天的时间在这上面,最终@Asaph 告诉我“暂时删除你所有的 javascript,看看这是否是导致 & 符号空白的原因。” 他是对的。现在$searchBox->send_keys("bath & body");工作正常。

我最终将其缩小到干扰的 Jquery-ui 自动完成的一部分。此属性: source:function( request, response ) { //implementation removed } 所有其他 javascript 都可以保留并正常工作。我现在想弄清楚为什么 Jquery-ui > Autocomplete > Source 与 WebDriver 冲突,看看是否有解决方法。

于 2012-08-14T17:12:33.070 回答
0

我的要求是在文本字段中输入“R&d”,在下面的代码中尝试过,它起作用了。

textBox.sendKeys("R/&d")
textBox.sendKeys(Keys.LEFT);
textBox.sendKeys(Keys.LEFT);
textBox.sendKeys(Keys.BACK_SPACE);
于 2015-02-26T12:10:52.760 回答
0

正如这里所说,“ &”是 & 符号的 HTML 实体。试试看。

但是,我能够毫无问题地通过 WebDriver 和 Java 放置一个 & 符号。在其他一些输入上尝试一下,看看它是否不是本地问题......

于 2012-04-26T19:18:15.047 回答
0

我遇到了同样的问题,并通过执行 JavaScript 而不是使用 Selenium SendKeys 方法来解决它。

IJavaScriptExecutor jsExec = (IJavaScriptExecutor)webDriver;
jsExec.ExecuteScript("document.getElementById('your-input-id-here').value = " + JsonConvert.SerializeObject(yourValueHere));

JsonConvert.SerializeObject() 来自 JSON.NET,这是一种对要在 JavaScript 中使用的字符串值进行编码的便捷方法。但是您可以以任何在 JavaScript 中正确格式化的方式对您的字符串值进行编码。

于 2014-06-05T15:25:24.733 回答
0

嘿,我首先解决了它,从 Adroid Driver 使它成为 Appium 驱动程序

接下来我手动打开了手机中的谷歌键盘,它被设置为 appium 键盘后来我只是隐藏了键盘,它对我有用。

无论如何,谢谢你在那里。

于 2017-11-10T05:38:46.710 回答