2012-05-16 2 views
1

Я работаю над приложением, которое не содержит идентификатор атрибута для нескольких текстовых .Других txtboxes имеют id.If Я не использую событие фокуса я не в состоянии использовать «SendKeys» для установка значений для текстовых полей. Поэтому я использовалСобытие фокусировки Webdriver: js.executeScript ("document.getElementByName ('') .focus()");

js.executeScript ("document.getElementById('x').focus()"); 

Но поскольку некоторые текстовые поля не иметь атрибут я не могу использовать выше, следовательно, пытались использовать

js.executeScript ("document.getElementByName('xyz').focus()"); 

Ondoing это следующее тзд генерируется исключение:

org.openqa.selenium.WebDriverException: document.getElementByName is not a function (WARNING: The server did not provide any stacktrace information); duration or timeout: 26 milliseconds 

ответ

1

Я не верю, что есть getElementByName. Вам нужно сделать getElementsByName (обратите внимание на 's' для элементов).

getElementsByName возвращает коллекцию, так что вам нужно будет указать индекс:

js.executeScript ("document.getElementsByName('xyz')[0].focus()"); 
+0

Спасибо! за помощь. – Mandy

1

Вы можете попробовать нажав на элемент, чтобы установить фокус.

driver.findElement(By.name("someName")).click(); 
+0

Думаю, он должен работать –

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