当我试图找到
css=table#Salarytable.dataTable.3.4
在 selenium ide 中,单元格被正确突出显示。但是当我在我的硒代码中使用这个定位器时..
String salary=driver.findElement(By.cssSelector("table#Salarytable.dataTable.3.4")).getText();
它给了我错误,因为存在非法字符串。编辑:html代码如下:
<table id="Salarytable" class="dataTable" cellspacing="0" border="0" style="border-collapse:collapse;">
堆栈跟踪是:
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at FunctionLibrary.FrameworkFunctions.runDriverIteration(FrameworkFunctions.java:1959)
at FunctionLibrary.FrameworkFunctions.setActionScript(FrameworkFunctions.java:999)
at AutomatedScripts.TableTesting.main(TableTesting.java:20)
Caused by: org.openqa.selenium.WebDriverException: An invalid or illegal string was specified
Command duration or timeout: 31 milliseconds
Build info: version: '2.35.0', revision: '8df0c6b', time: '2013-08-12 15:43:19'
System info: os.name: 'Windows 2003', os.arch: 'x86', os.version: '5.2', java.version: '1.6.0_35'
Session ID: 5d42a483-5544-4622-97aa-fc4ce00622eb
Driver info: org.openqa.selenium.firefox.FirefoxDriver
Capabilities [{platform=XP, acceptSslCerts=true, javascriptEnabled=true, browserName=firefox, rotatable=false, locationContextEnabled=true, version=14.0.1, cssSelectorsEnabled=true, databaseEnabled=true, handlesAlerts=true, browserConnectionEnabled=true, nativeEvents=true, webStorageEnabled=true, applicationCacheEnabled=true, takesScreenshot=true}]
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:191)
at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:145)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:554)
at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:307)
at org.openqa.selenium.remote.RemoteWebDriver.findElementByCssSelector(RemoteWebDriver.java:396)
at org.openqa.selenium.By$ByCssSelector.findElement(By.java:407)
at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:299)
at FunctionLibrary.FrameworkFunctions.tbl_GetCellData(FrameworkFunctions.java:3105)
at ReusableActions.GeneralActions.BC_TableTesting(GeneralActions.java:69)
... 7 more
Caused by: org.openqa.selenium.remote.ErrorHandler$UnknownServerException: An invalid or illegal string was specified
Build info: version: '2.35.0', revision: '8df0c6b', time: '2013-08-12 15:43:19'
System info: os.name: 'Windows 2003', os.arch: 'x86', os.version: '5.2', java.version: '1.6.0_35'
Driver info: driver.version: unknown
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at FunctionLibrary.FrameworkFunctions.runDriverIteration(FrameworkFunctions.java:1959)
at FunctionLibrary.FrameworkFunctions.setActionScript(FrameworkFunctions.java:999)
at AutomatedScripts.TableTesting.main(TableTesting.java:20)
Caused by: org.openqa.selenium.WebDriverException: An invalid or illegal string was specified
Command duration or timeout: 31 milliseconds
Build info: version: '2.35.0', revision: '8df0c6b', time: '2013-08-12 15:43:19'
System info: os.name: 'Windows 2003', os.arch: 'x86', os.version: '5.2', java.version: '1.6.0_35'
Session ID: 5d42a483-5544-4622-97aa-fc4ce00622eb
Driver info: org.openqa.selenium.firefox.FirefoxDriver
Capabilities [{platform=XP, acceptSslCerts=true, javascriptEnabled=true, browserName=firefox, rotatable=false, locationContextEnabled=true, version=14.0.1, cssSelectorsEnabled=true, databaseEnabled=true, handlesAlerts=true, browserConnectionEnabled=true, nativeEvents=true, webStorageEnabled=true, applicationCacheEnabled=true, takesScreenshot=true}]
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:191)
at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:145)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:554)
at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:307)
at org.openqa.selenium.remote.RemoteWebDriver.findElementByCssSelector(RemoteWebDriver.java:396)
at org.openqa.selenium.By$ByCssSelector.findElement(By.java:407)
at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:299)
at FunctionLibrary.FrameworkFunctions.tbl_GetCellData(FrameworkFunctions.java:3105)
at ReusableActions.GeneralActions.BC_TableTesting(GeneralActions.java:69)
... 7 more
Caused by: org.openqa.selenium.remote.ErrorHandler$UnknownServerException: An invalid or illegal string was specified
Build info: version: '2.35.0', revision: '8df0c6b', time: '2013-08-12 15:43:19'
System info: os.name: 'Windows 2003', os.arch: 'x86', os.version: '5.2', java.version: '1.6.0_35'
Driver info: driver.version: unknown
我知道它是如何使用 xpath 完成的,但我想专门在 css 中完成它。我该怎么做。编辑:我现在在我的 webdriver 代码中给出了 table#Salarytable > tbody > tr:nth-of-type(3) > td:nth-of-type(4) 并且它工作正常。但是我不明白如何在 selenium ide 中工作的 locator(css=table#Salarytable.dataTable.3.4) 在 webdriver 代码中不起作用。谢谢你。