2017-01-15 3 views
0

Использование C# Я пытался заменить значение из поля ввода, как этотКак предотвратить ошибку: элемент в настоящее время не может быть трудноразрешимым и не может быть обработан?

 for (int second = 0; ; second++) 
     { 
      if (second >= 60) Assert.Fail("timeout"); 
      if (second > 15) break; 

     Thread.Sleep(1000); 
     } 

     driver.FindElement(By.Id("input1")).Clear(); 
     driver.FindElement(By.Id("input1")).SendKeys(xxxx"); 

, но я получаю ошибку «элемент не в настоящее время трудноразрешимой и не может манипулировать» на ясном() линии, то почему, что, хотя Я жду, пока загрузится страница?

HTML

<input class="valid" id="input1" name="input1" value="http://dddd" nametemplate="url_to_5D" type="text"> 
+0

Какой драйвер вы используете? Может быть, ghostdriver/phantomJS? – acikojevic

+0

только Firefox с webdriver – Wel

+0

Является ли он интерактивным, если вы используете только SendKeys без Clear()? И только одно примечание: вы не дождались загрузки страницы, вы просто ждёте 15 секунд независимо от того, загружена ли страница или нет. – acikojevic

ответ

2

Вы можете попробовать ждать его:

WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10)); 
IWebElement element = wait.Until(ExpectedConditions.ElementExists(By.Id("input1"))); 

, а затем:

element.Clear(); 
element.SendKeys("xxxx"); 

Для того, чтобы ждать водителя перед любым действием просто:

driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(10)); 

Если вы используете приведенный выше код, вы можете удалить все действия Thread.Sleep(1000).

+0

Я пробовал, но браузер никогда не будет ждать. перед этими строками я нажимаю ссылку, открывающую новую вкладку, есть ли что-то, что я должен сделать, чтобы ожидание и элемент выполнялись на новой открытой вкладке? – Wel

+0

Что вы подразумеваете под "never wait"? –

+0

Выполнение не останавливается в строке ожидания, и я получаю сообщение об ошибке сразу в строке clear(). «input1» находится на новой открытой вкладке. – Wel

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