2014-12-10 6 views
0

Я пытаюсь ввести текст в текстовом поле и ниже ошибки я получаю:Селен - элемент не виден

Исключения типа «OpenQA.Selenium.ElementNotVisibleException» произошло в WebDriver.dll, но не было обрабатываются в пользовательском коде

Дополнительная информация: элемент в настоящее время не видно и поэтому не может быть взаимодействовали с

Однако этот элемент interactable и вы можете ввести в него текст. Отображаемое поле для элемента является ложным. Есть ли способ переопределить это силовое селение для ввода текста? Возможно, используя javascript? Если у вас есть идеи, пожалуйста, дайте мне знать.

Большое спасибо, Рахул Диксит

+0

Сначала вы должны включите это текстовое поле через селен, затем попробуйте ввести текст. –

+0

Можете ли вы показать нам общедоступный URL-адрес, где мы можем подражать этому сценарию? И использование java-скрипта всегда обескураживает вашу информацию. –

+0

Вы противоречите себе. Сначала вы говорите, что элемент интерактивен, и текст может быть введен, а затем вы говорите, что атрибут «отображается» элемента «false» (для которого я предполагаю, что значение «none»). Как это возможно ? Кроме того, в случае, если элемент отображается через определенный промежуток времени, попробуйте использовать [Явные ожидания] (http://docs.seleniumhq.org/docs/04_webdriver_advanced.jsp#explicit-waits) – Subh

ответ

0

Первое, что вам нужно сделать, это выполнить JavaScript для того, чтобы текстовое поле позже вы можете запустить свой код селена

, например:

String textbox = "document.getElementsByName('lname')[0].removeAttribute('disabled');"; 

    javascript.executeScript(textbox); 

    Thread.sleep(3000); 
+0

Нить спать действительно, очень плохой подход .. – Edgar

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