Java Can';t将文本设置为隐藏输入
我试图设置一个文本输入,然后点击隐藏链接(听起来可能很愚蠢,但这是另一个问题的解决办法)。所以我试过类似的方法Java Can';t将文本设置为隐藏输入,java,webdriver,selenium-webdriver,Java,Webdriver,Selenium Webdriver,我试图设置一个文本输入,然后点击隐藏链接(听起来可能很愚蠢,但这是另一个问题的解决办法)。所以我试过类似的方法 WebElement element = webDriver.findElement(By.cssSelector("input[id$='inputId']")); ((JavascriptExecutor) webDriver).executeScript("arguments[0].style.visibility='visible';", element); element.s
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
当我调试它时,我可以看到元素被正确地找到,但我在脚本执行期间遇到了这个异常。那么我做错了什么
另外,我如何点击该链接,我是否也必须使用JS Executor?在半固态浏览器中,您甚至可以通过JavaScript搜索元素,只需运行以下命令:
var elem = document.querySelector("input[id$='inputId']");
elem.value = "some text";
还要注意值的使用。我从未见过元素上的setText()
方法或text
属性,所以可能我弄错了。但是我确信输入值是由value
属性设置的
在WebDriver中:
JavascriptExecutor js = (JavascriptExecutor)webDriver;
js.executeScript(
"document.querySelector(\"input[id$='inputId']\").value = '" + someText + "';");
我在什么地方见过,尝试这种方法可能是个愚蠢的想法。不管怎样,我该如何在WebDriver中使用您的代码?我只看到纯JavaScriptI,我以为您知道如何执行任何JS。。。编辑成答案,试一试。对不起,今天是星期五,我有一个相当大的脑死:-)它可以工作,非常感谢。@PetrMensik注意,这在IE的较低版本中不起作用,如果需要的话,我们必须使用selenium的内部JS browserbot功能。那么,什么是较低的呢?我认为我们的测试只在IE 8及以上版本上运行