I'm on the migration path from 2.0b1 -> 2.0b3 -> 2.0rc1. Code that
worked fine in 2.0b1 is having the above problem in b3 when it tries
option.setSelected() in Select.java (as shown below). Code in question
looks like:
public void selectByLabel(String locator, String label) {
locator = locator.startsWith("//") ? locator :
String.format("//*[contains(@id,'%s')]", locator);
Select selector = new
Select(driver.findElement(By.xpath(locator)));
selector.selectByVisibleText(label);
}
which ends up with the following traceback:
org.openqa.selenium.ElementNotVisibleException: Element is not
currently visible and so may not be interacted with
System info:
os.name: 'Mac OS X', os.arch: 'x86_64', os.version:
'10.6.7', java.version: '1.6.0_24'
Driver info: driver.version: RemoteWebDriver
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
Method)
at
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:
39)
at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:
27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at
org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:
131)
at
org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:
105)
at
org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:
409)
at
org.openqa.selenium.remote.RemoteWebElement.execute(RemoteWebElement.java:
197)
at
org.openqa.selenium.remote.RemoteWebElement.setSelected(RemoteWebElement.java:
99)
--> at
org.openqa.selenium.support.ui.Select.selectByVisibleText(Select.java:
114)
at
com.yesmail.enterprise.pages.PageProxy.selectByLabel(PageProxy.java:
251)
at
com.yesmail.enterprise.pages.AdminToolsPageProxy.setMaxHardBounces(AdminToolsPageProxy.java:
197)
at
com.yesmail.enterprise.AdminDeliveryTest.testConsecutiveHardBounceVisibilityAndDefault(AdminDeliveryTest.java:
63)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:
25)
at org.junit.runners.model.FrameworkMethod
$1.runReflectiveCall(FrameworkMethod.java:44)
at
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:
15)
at
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:
41)
at
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:
20)
at com.yesmail.enterprise.testutils.SeleniumJUnitRunner
$1.evaluate(SeleniumJUnitRunner.java:49)
at
org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:
28)
at
org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:
31)
at
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:
76)
at
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:
50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
at org.junit.runner.JUnitCore.run(JUnitCore.java:157)
at
com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:
62)
Caused by: org.openqa.selenium.remote.ErrorHandler
$UnknownServerException: Element is not currently visible and so may
not be interacted with
System info:
os.name: 'Mac OS X', os.arch: 'x86_64', os.version:
'10.6.7', java.version: '1.6.0_24'
Driver info: driver.version: unknown
Help greatly appreciated!
Thanks.
Jonathan