2012-05-16 5 views
1

Je travaille sur une application qui ne contient pas l'attribut id pour quelques zones de texte txtboxes .D'autres ont id.If Je ne me l'événement de mise au point Je ne suis pas en mesure d'utiliser « sendkeys » pour définir les valeurs pour les zones de texte. Par conséquent, j'utiliséÉvénement focus Webdriver: js.executeScript ("document.getElementByName ('') .focus()");

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

Mais puisque certains ne textboxes ont pas un attribut id je ne peux pas utiliser ce qui précède donc essayé d'utiliser

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

Ondoing cette exception suivante msg est générée:

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

Répondre

1

Je ne crois pas qu'il y ait un getElementByName. Vous devez faire getElementsByName (notez les 's' pour les éléments).

getElementsByName retourne une collection, vous devez spécifier l'index:

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

Merci! pour l'aide. – Mandy

1

Vous pouvez essayer en cliquant sur l'élément pour définir le focus.

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

Je pense, ça devrait marcher –