org.openqa.selenium.InvalidSelectorException with nested Xpath

  • Appium version 1.6.3 and appium client 4.1.2
  • java client on Windows
  • Android 6 real device.

I got error at following code.

driver.findElementByXPath("//android.widget.ListView[contains(@resource-id,‘com.android.mms:id/history’)]/android.widget.LinearLayout[[@index=‘0’]");

error is following.
org.openqa.selenium.InvalidSelectorException: Argument was an invalid selector (e.g. XPath/CSS). (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 23 milliseconds
For documentation on this error, please visit: http://seleniumhq.org/exceptions/invalid_selector_exception.html
Build info: version: ‘unknown’, revision: ‘1969d75’, time: ‘2016-10-18 09:43:45 -0700’
System info: host: ‘WACDTL01DK215B’, ip: ‘141.204.181.55’, os.name: ‘Windows 7’, os.arch: ‘amd64’, os.version: ‘6.1’, java.version: ‘1.8.0_112’
Driver info: io.appium.java_client.android.AndroidDriver
Capabilities [{appPackage=com.android.mms, networkConnectionEnabled=true, warnings={}, databaseEnabled=false, locale=US, deviceName=ce031603f5a42f1105, platform=LINUX, deviceUDID=ce031603f5a42f1105, appActivity=com.android.mms.ui.ConversationComposer, desired={appPackage=com.android.mms, appActivity=com.android.mms.ui.ConversationComposer, newCommandTimeout=3000, platformVersion=6.0.1, platformName=Android, udid=ce031603f5a42f1105, locale=US, deviceName=SAMSUNG-SM-G891A}, newCommandTimeout=3000, platformVersion=6.0.1, webStorageEnabled=false, locationContextEnabled=false, takesScreenshot=true, javascriptEnabled=true, platformName=Android, udid=ce031603f5a42f1105}]
Session ID: b142138a-31c0-432c-8bfc-45b53891c086
*** Element info: {Using=xpath, value=//android.widget.ListView[contains(@resource-id,‘com.android.mms:id/history’)]/android.widget.LinearLayout[[@index=‘0’]}
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:216)
at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:168)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:635)
at io.appium.java_client.DefaultGenericMobileDriver.execute(DefaultGenericMobileDriver.java:40)
at io.appium.java_client.AppiumDriver.execute(AppiumDriver.java:1)
at io.appium.java_client.android.AndroidDriver.execute(AndroidDriver.java:1)
at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:368)
at io.appium.java_client.DefaultGenericMobileDriver.findElement(DefaultGenericMobileDriver.java:56)
at io.appium.java_client.AppiumDriver.findElement(AppiumDriver.java:1)
at io.appium.java_client.android.AndroidDriver.findElement(AndroidDriver.java:1)
at org.openqa.selenium.remote.RemoteWebDriver.findElementByXPath(RemoteWebDriver.java:473)
at io.appium.java_client.DefaultGenericMobileDriver.findElementByXPath(DefaultGenericMobileDriver.java:134)
at io.appium.java_client.AppiumDriver.findElementByXPath(AppiumDriver.java:1)
at io.appium.java_client.android.AndroidDriver.findElementByXPath(AndroidDriver.java:1)

I don’t see any problem with xpath syntax.
there was no problem with Appium version 1.4.x
any advice?

there was a typo my xpath string “[[”
it works now.,

remove one [ before @index

Code: self.driver.find_element_by_xpath("//android.widget.FrameLayout//android.widget.LinearLayout//android.support.v7.widget.RecyclerView[contains(@content-desc:ChinaNet-3eSK,Wi-Fi signal full.)]").click()

The same error occurs

what problem with my code