我正在开发一个不包含几个文本框的 id 属性的应用程序。如果我不使用焦点事件,则无法使用"sendKeys"来设置文本框的值。因此我用了
js.executeScript ("document.getElementById('x').focus()");
但是由于某些文本框没有id属性,因此我无法使用上述属性,因此尝试使用
js.executeScript ("document.getElementByName('xyz').focus()");
执行以下异常消息时会生成:
org.openqa.selenium.WebDriverException: document.getElementByName is not a function (WARNING: The server did not provide any stacktrace information); duration or timeout: 26 milliseconds
我不相信有getElementByName
.您需要执行getElementsByName
(请注意元素的"s")。
getElementsByName
返回一个集合,因此您需要指定索引:
js.executeScript ("document.getElementsByName('xyz')[0].focus()");
您可以尝试单击元素来设置焦点。
driver.findElement(By.name("someName")).click();