当前位置: 首页 > 面试题库 >

为什么XPath last()函数不能按我预期的那样工作?

长孙弘盛
2023-03-14
问题内容

我正在使用Java和Selenium编写测试。我需要将另一个元素内的最后一个元素,所以我使用last()函数,但问题是,当我申请时,它并不总是带给我最后一个:

//a//b[last()]

 <a> 
   <l>
     <b>asas</b> 
   </l>
   <b>as</b>
 </a>

得到<b>as</b>,它带给我:

<b>asas</b>

<b>as</b>

但是当我将其应用于:

 <a>      
   <b>asas</b> 
   <b>as</b>
 </a>

它带给我:

<b>as</b>

问题答案:

这是XPath混乱的常见原因。 首先是简单的部分:

  • //a选择a文档中的所有元素。
  • //a//b选择b文档中属于ahtml" target="_blank">元素后代的所有元素。

到目前为止,正常的东西。 接下来是棘手的部分:

  1. b 兄弟姐妹中a元素之下)选择最后一个元素:
    //a//b[last()]
    

此处,过滤是b选择标准的一部分,因为[]优先级高于//

  1. 要选择 文档中 的最后一个b元素(在元素之下): __a
    (//a//b)[last()]
    

在此,由于last()所有优先b元素()均用于覆盖默认优先级,因此它是所有选定元素列表上的索引。



 类似资料:
  • 我想使用查找从一个集合中获取一些数据并将其放入另一个集合中。 在localfield或foreignfield中写什么都不重要,因为它从player_game_stats中获取所有数据并将其插入player集合中的每个文档中。我想检查localfield和foreignField是否相等,但lookup不检查这一点。我对mongodb使用NoSqlBooster

  • 使用scandir()函数时,我收到以下php警告: Scandir无法打开目录:公共html/page2中不允许操作。php在线3 第2页。php 我想使用这个功能来打印我的根文件夹的文件和子目录,但它不工作。 有人知道怎么修吗?

  • 你好,亲爱的StackOverflow社区,我最近遇到了一个问题,我不能把一个已经保存的对象的引用放进去。我不想保存或更新对象,因为这些对象是预先插入到我们的数据库中的。 所以基本上我的情况是这样的:我有一个父,在本例中它是一个摄取,对象有一个IntakeTimes列表,它们被声明为remainingdoses。有道理,嗯。 我的模型看起来如下: 我期待着任何帮助或提示,谢谢社区。

  • 问题内容: 我已经为此奋斗了2天,尽我所能用Google搜索和stackoverflow,但是我无法解决。 我正在构建一个简单的节点应用程序(+ Express + Mongoose),其登录页面重定向到主页。这是我的服务器JS代码: 登录页面向发出POST请求,在此验证发布的数据。这可行。我可以在Node控制台中看到“我们在这里:’/ credentials’”。 然后是问题:res.redir

  • 在主线程中初始化: 然后在奴隶身上,当它等待主人的时候,我会这样做: 奴隶必须在这里等待: 奴隶: 主人: 下面是我所看到的输出: -gt-

  • 问题内容: 当使用带点名的名称时,例如:,返回的模块不是,返回的内容几乎都是空的!这里发生了什么? 问题答案: 从python文档上: … 当name变量的形式为package.module时,通常返回顶级包(名称直到第一个点),而不是按名称命名的模块。但是,当给出非空的fromlist参数时,将返回按名称命名的模块。这样做是为了与为不同种类的import语句生成的字节码兼容。使用“ import