无法将文本设置为隐藏输入

时间:2013-01-18 13:02:37

标签: java webdriver selenium-webdriver

我正在尝试设置要输入的文本,然后单击隐藏的链接(声音可能很愚蠢,但这是另一个问题的解决方法)。所以我尝试过像

这样的东西
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

当我调试它时,我可以看到该元素被正确找到但我在执行脚本时遇到了这个异常。那么我在这里做错了什么?

P.S。如何点击该链接,我是否也必须使用JS Executor?

1 个答案:

答案 0 :(得分: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 + "';");