如何与使用Selenium Webdriver隐藏的元素进行交互?

时间:2015-05-12 07:04:34

标签: javascript jquery selenium selenium-webdriver

元素属性: -

 <textarea id="txtSuffixTitle" class="form-control" tabindex="3" rows="2" placeholder="Suffix Title" name="txtSuffixTitle" maxlength="50" cols="20" style="display: none; visibility: hidden;">Suffix Title </textarea>

Selenium代码: -

driver.findElement(By.id("txtSuffixTitle")).clear();
driver.findElement(By.id("txtSuffixTitle")).sendKeys("Mr.");

错误: -

元素不得隐藏,禁用或只读

我在其中一篇文章中找到了以下解决方案。我能够与元素进行交互,但它打破了用户界面。

WebElement elem = driver.findElement(By.id("txtSuffixTitle"));
String js = "arguments[0].style.display='inline'; arguments[0].style.visibility='visible';";
((JavascriptExecutor) driver).executeScript(js, elem);

有人可以建议吗?我可以手动输入,但由于样式属性,即style =“display:none; visibility:hidden;自动化无法进行交互。

1 个答案:

答案 0 :(得分:0)

如果隐藏了元素,则无法通过硒进行交互。但是使用javascript执行程序,您应该可以执行以下操作:

((JavascriptExecutor)driver).executeScript("document.getElementById('txtSuffixTitle').innerText = 'Mr.'");

希望有所帮助。

相关问题