2014-03-04 53 views
0

我有在選擇從下拉列表的選項,其中選項是type=radio在webdriver的麻煩,如下圖所示:無法點擊下拉菜單,其中每個選項是一個單選按鈕,使用webdriver的

<input id="ui-multiselect-companyListSelect-option-2" type="radio" title=" Display Deleted " value="deleted" name="multiselect_companyListSelect" aria-selected="true"> 
<span> Display Deleted </span> 

我使用以下XPath表達式:

selectDisplayDeleted = //input[@name='multiselect_companyListSelect']/../span[text()=' Display Deleted '] and executing selectDisplayDeleted.click() on this element. 

我收到以下異常:

Caused by: org.openqa.selenium.ElementNotVisibleException: element not visible 
    (Session info: chrome=32.0.1700.76) 
    (Driver info: chromedriver=2.8.241075,platform=Windows NT 6.1 SP1 x86_64) (WARNING: The server did not provide any stacktrace information) 
Command duration or timeout: 12 milliseconds 
Build info: version: '2.25.0', revision: '17482', time: '2012-07-18 21:08:56' 
System info: os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.6.0_37' 
Driver info: driver.version: RemoteWebDriver 
Session ID: f667a12c7452cc7d9cf69a07523f1ed4 
Build info: version: '2.36.0', revision: '9b50f805d0a53506a5ee6a55be8669f106d8d34e', time: '2013-10-17 11:09:21' 
System info: host: 'gc-wk-rbah-01', ip: '10.10.20.75', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.6.0_37' 
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:188) 
    at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:145) 
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:498) 
    at org.openqa.selenium.remote.RemoteWebElement.execute(RemoteWebElement.java:244) 
    at org.openqa.selenium.remote.RemoteWebElement.click(RemoteWebElement.java:77) 
    at sun.reflect.GeneratedMethodAccessor26.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:597) 
    at org.openqa.selenium.support.events.EventFiringWebDriver$EventFiringWebElement$1.invoke(EventFiringWebDriver.java:327) 
    at $Proxy2.click(Unknown Source) 
    at org.openqa.selenium.support.events.EventFiringWebDriver$EventFiringWebElement.click(EventFiringWebDriver.java:340) 
    at sun.reflect.GeneratedMethodAccessor26.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:597) 

回答

0

嘗試雙擊一下步驟。首先在下拉菜單中,然後選擇選項值。基於你提供的xpath,第一次點擊將在元素輸入[@ name ='multiselect_companyListSelect']上,然後是選項值。

0

嗯,您的XPath對我來說看起來有點過於寬鬆,最好使用following-siblingpreceding-sibling軸來獲得span。你的跨文本中似乎還有一些空白可能導致問題?

//span[contains(text(), 'Display Deleted'][preceding-sibling::input/@name eq 'multiselect_companyListSelect'] 
相關問題