У меня на странице есть редактор форматированного текста, и там нужно напечатать какой-то текст. Я написал решение, но, похоже, оно работает только с перерывами. Вот что я уже пробовал:
var iframe = _driver.SwitchTo().Frame(Driver.FindElement(By.XPath(xpath)));
var editor = iframe.FindElement(By.XPath("//*"));
for (var i = 1; _driver.FindElement(By.XPath("//*")).Text == String.Empty; i++)
{
switch (i)
{
case 1:
editor.SendKeys(text);
break;
case 2:
editor.SendKeys(Keys.Control + "a");
editor.SendKeys(Keys.Delete);
editor.SendKeys(text);
break;
case 3:
editor.Click();
editor.SendKeys(text);
break;
case 4:
throw new Exception("Rich Text Editor can't be reached");
}
editor.SendKeys(text);
В цикле я проверяю, набран ли текст. Если это не так, я пробую разные случаи. Кроме того, если я попытаюсь выполнить editor.Clear();, я постоянно получаю сообщение об ошибке «Элемент должен быть доступен для редактирования пользователем, чтобы его можно было очистить». Я могу печатать (время от времени), но не могу очистить (постоянно). Итак, вопрос в том, как стабилизировать этот код?