2

我正在尝试设置要输入的文本,然后单击隐藏的链接(听起来可能很愚蠢,但这是另一个问题的解决方法)。所以我尝试了类似的东西

WebElement element = webDriver.findElement(By.cssSelector("input[id$='inputId']"));
((JavascriptExecutor) webDriver).executeScript("arguments[0].style.visibility='visible';", element);
element.sendKeys(text);

我也试过

((JavascriptExecutor) webDriver).executeScript("arguments[0].setText(" + text + ")", element);
or "arguments[0].text="someText"

这些都不起作用,测试总是以

java.lang.IllegalArgumentException: Argument is of an illegal type: $Proxy30

当我调试它时,我可以看到该元素已正确找到,但在执行脚本期间出现此异常。那么我在这里做错了什么?

PS我如何点击那个链接,我也必须使用JS Executor吗?

4

1 回答 1

2

在半固态浏览器中,您甚至可以通过 JavaScript 搜索元素,只需运行以下命令:

var elem = document.querySelector("input[id$='inputId']");
elem.value = "some text";

还要注意value. 我从未见过元素上的setText()方法或text属性,所以也许我弄错了。但我确信输入值是由value属性设置的。

在 WebDriver 中:

JavascriptExecutor js = (JavascriptExecutor)webDriver;
js.executeScript(
    "document.querySelector(\"input[id$='inputId']\").value = '" + someText + "';");
于 2013-01-18T13:12:01.963 回答