元素当前不可见,因此可能无法与之交互

Lur*_*rtz 3 selenium webdriver

目前我正在尝试解析一个示例网站.在该站点中有一个设置为"display:none"以便应用css效果.实际上我的意思是选择组件是可见的.

如何设置该html 选择组件的值?

这是我的代码:

 WebElement element = driver.findElement(By.name("paper"));
 Select paperList = new Select(element);
 paperList .selectByValue("73"); // it gives error
 driver.findElement(By.className("btn1")).click();
Run Code Online (Sandbox Code Playgroud)

我正在使用Java + Selenium WebDriver 2.0

这是一个例外:

引起:org.openqa.selenium.remote.ErrorHandler $ UnknownServerException:元素当前不可见,因此可能无法与构建信息进行交互:版本:'2.14.0',修订版:'未知',时间:'2011-11 -29 13:13:16'系统信息:os.name:'Windows XP',os.arch:'x86',os.version:'5.1',java.version:'1.7.0-ea'

谢谢.

CBR*_*cer 7

那么我有两种不同的方法可以解决这个问题.首先清理页面上的css,以便在同一元素上没有两个冲突的样式.其次我的猜测是你有一些形式的javascript启用选择菜单,这可能是在你的硒测试抓住对象并且说它不可见之后触发的.在获取代码之前尝试删除thread.sleep,仅用于测试目的.如果这解决了问题,那么我将创建一个寻找document.readyState的javascript,如果它是"完整的",那么我将开始用Selenium解析页面.

------编辑------

要使用selenium修改DOM,您需要使用JavascriptExecutor类并将其强制转换为WebDriver.完成后,您可以从页面上的selenium应用程序执行javascript,这意味着您可以操作DOM.

这是一个例子:

WebDriver driver; // Assigned elsewhere
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("document.getElementById('//elementID').removeAttr('display');");
Run Code Online (Sandbox Code Playgroud)

http://code.google.com/p/selenium/wiki/FrequentlyAskedQuestions

http://selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/selenium/JavascriptExecutor.html