Hybrid混合应用—js定位元素的问题

本文记录了在使用AppiumDriver与Chrome浏览器交互时遇到的JS语法错误,详细解析了如何正确处理单双引号嵌套的问题,并分享了在修正语法后仍出现的元素选择错误及可能的原因——页面引用的jQuery版本过低。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在执行以下代码时

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 版本低导致的,所以尝试 另外元素的选择器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值