1

我正在开发一个不包含少数文本框的 id 属性的应用程序。其他 txtboxes 有 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
4

2 回答 2

1

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

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

js.executeScript ("document.getElementsByName('xyz')[0].focus()");
于 2012-05-16T13:42:59.093 回答
1

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

driver.findElement(By.name("someName")).click();
于 2012-05-16T16:58:26.510 回答