在执行以下代码时
1:AppiumDriver<?> driver;
2:JavascriptExecutor js=driver;
3:js.executeScript("$('ul[id='ulFolder'] > li:eq(2) >div:eq(0) > div:eq(1)').trigger('tap')");
报错如下:
org.openqa.selenium.WebDriverException: An unknown server-side error occurred while processing the command. Original error: unknown error: Runtime.evaluate threw exception: SyntaxError: missing ) after argument list
(Session info: chrome=64.0.3282.137)
这个错误很明显是说缺少小括号),仔细检查上述第三行代码发现没有少括号,后来发现是 单引号与双引号嵌套,导致报缺少小括号的错误。(单引号中如果还需要引号时,需要使用双引号)
修改后,正确
js.executeScript("$('ul[id=\"ulFolder\"] > li:eq(2) >div:eq(0) > div:eq(1)').trigger('tap')");
不再报缺少小括号的错误
但执行后仍然报:org.openqa.selenium.InvalidElementStateException: invalid element state: Failed to execute 'querySelectorAll' on 'Document': 'ul[id="ulFolder"] > li:eq(2) >div:eq(0) > div' is not a valid selector.
(Session info: chrome=64.0.3282.137)
初步判断是 页面引用的jquery 版本低导致的,所以尝试 另外元素的选择器