Может случиться так, что любой JavaScript, который запускается при загрузке страницы, не был завершен до отправки вашей команды Selenium. Например, если ввод, который вы пытаетесь ввести, изначально отключен, Selenium может пытаться ввести его до завершения JavaScript, который его включил.
Если это так, вы можете попробовать добавить соответствующую команду waitForCondition
в ваш тест, она будет постоянно переоцениваться и продолжаться после выполнения условия, что намного лучше, чем произвольный сон.
Следующий пример будет ожидать включения элемента:
selenium.waitForCondition("var value = selenium.isEditable('id=myElement'); value == true", "60000");
Я бы также порекомендовал просмотреть ваш локатор, поскольку в настоящее время это очень хрупкий XPath, и небольшое изменение исходного кода HTML вашего веб-приложения может нарушить ваш тест. Попробуйте найти атрибут id
и создать свой xpath относительно него.
Например, если ваш финальный стол имеет id
из myTable
, вы можете использовать:
xpath=id('myTable')//tr[3]/td[2]/input