我正在尝试设置要输入的文本,然后单击隐藏的链接(声音可能很愚蠢,但这是另一个问题的解决方法)。所以我尝试过像
这样的东西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?
答案 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 + "';");