2015-05-07 2 views
0

https://code.google.com/p/selenium/issues/detail?id=6074Ampersand опускается с SendKeys() в Firefox

Я использую Селен и JQuery UI автозаполнения. Я пытаюсь отправить слово с амперсандом в нем, но амперсанд опущен. Если я набираю амперсанд вручную на интерфейсе, он отлично работает. Проблема возникает именно с Firefox, но не с Chrome.

Я заметил, что это было поднято как ошибка в Selenium 2 года назад (2013), но, похоже, нет никаких обновлений.

Обходной к этой проблеме, которая была предложена в ссылке выше было что-то вроде этого:

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

Это не вариант, как строка может быть динамичным, и это потребовало бы знать точное положение амперсанд , Это действительно ненужный взлом! Не похоже, что мы имеем дело с Internet Explorer.

Действительно ли нет решения для этого через 2 года?

+0

Вы имели в виду подписать 'R \ & d' вместо этого? – Saifur

+0

Вы пытались использовать '&' вместо просто '&'? Так, например, «R & d» ... – dcsohl

+0

Да, попробовал все в ссылке. –

ответ

0

Вы можете попробовать использовать JavaScript, чтобы ввести текст, что-то вроде (в C#):

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

Очевидно водитель ваш экземпляр WebDriver.

+0

Проблема с этим методом заключается в том, что он не будет генерировать ни одно из ключевых событий, генерируемых 'sendKeys'. Во многих случаях это важно, потому что проверяется, правильно ли выполняются ключевые события. – Louis

+0

Может использоваться в сочетании с обычным методом sendkeys только для амперсандов. В явном виде не указано, что ключевые события необходимы только для того, чтобы вводить и вводить амперсанды. – cerberus07

 Смежные вопросы

  • Нет связанных вопросов^_^