Webdriver焦点事件:js.executeScript(“document.getElementByName('')。focus()”);

时间:2012-05-16 13:36:45

标签: selenium webdriver selenium-webdriver

我正在处理不包含少量文本框的id属性的应用程序。其他txtbox有id。如果我不使用焦点事件我'我无法使用'sendKeys'来设置文本框的值。 因此我用了

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

但由于某些文本框没有id属性,因此无法使用上述内容,因此尝试使用

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

生成以下异常消息msg:

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

2 个答案:

答案 0 :(得分:1)

我不相信有getElementByName。你需要做getElementsByName(注意元素的's'。

getElementsByName返回一个集合,因此您需要指定索引:

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

答案 1 :(得分:1)

您可以尝试点击元素来设置焦点。

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