【问题标题】:Ampersand is omitted with SendKeys() in Firefox在 Firefox 中使用 SendKeys() 省略了与号
【发布时间】:2015-05-07 15:50:41
【问题描述】:

https://code.google.com/p/selenium/issues/detail?id=6074

我正在使用 Selenium 和 jQuery UI 自动完成功能。我正在尝试发送一个带有&符号的单词,但省略了&符号。如果我在界面上手动输入与号,它可以正常工作。该问题专门发生在 Firefox 上,但不适用于 Chrome。

我注意到这是在 2 年前(2013 年)作为 Selenium 中的一个错误提出的,但似乎没有任何更新。

上述链接中建议的解决此问题的方法如下:

textBox.sendKeys("R/&d")
textBox.sendKeys(Keys.LEFT);
textBox.sendKeys(Keys.LEFT);
textBox.sendKeys(Keys.BACK_SPACE);

这不是一个选项,因为字符串可能是动态的,这需要知道与符号的确切位置。这是一个非常不必要的黑客!我们这里不是在处理 Internet Explorer。

2年后真的没有解决方案吗?

【问题讨论】:

  • 您的意思是输入R\&d 吗?
  • 您是否尝试过使用& 而不仅仅是&?因此,例如,“R&d”...
  • 是的,尝试了链接中的所有内容。

标签: java selenium cucumber jquery-ui-autocomplete


【解决方案1】:

您可以尝试使用 javascript 输入文本,例如(在 C# 中):

    public void SendKeysUsingJS(IWebElement element, string text)
    {
        IJavaScriptExecutor exec = (IJavaScriptExecutor)driver;
        exec.ExecuteScript("arguments[0].value = '" + text + "';", element);
    }

显然 driver 是你的 webdriver 实例。

【讨论】:

  • 这个方法的问题是它不会产生任何sendKeys产生的关键事件。在许多情况下,这很重要,因为正在测试的正是关键事件是否得到正确处理。
  • 可以与普通的 sendkeys 方法结合使用,仅用于 & 符号。没有明确说明需要关键事件,只是需要输入和与号。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-11-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-16
  • 2013-01-16
  • 2011-06-23
相关资源
最近更新 更多