如何在 CasperJS 中点击具有特定字符串长度的元素?

How click over an element with specific string length, in CasperJS?

我使用 CasperJS,我想点击具有特定长度字符串的元素 (span)。例如,我想要点击长度为 5 个字符的跨度。

<span>ABCDE</span>

有什么办法吗?

如果您想根据内容长度点击一个元素,有多种方法可以实现。 XPath 提供了使用 string-length(string) 函数执行此操作的最简单方法。

  • 如果元素的文本节点之一具有特定长度y:

    casper.click(x("//span[string-length(text())=" + y + "]"));
    
  • 如果所有的内容都需要一定的大小(相当于之前建议除了一个文本节点之外没有其他节点):

    casper.click(x("//span[string-length(.)=" + y + "]"));
    
  • 如果空格是个问题,那么您应该删除它:

    casper.click(x("//span[string-length(normalize-space(text()))=" + y + "]"));
    casper.click(x("//span[string-length(normalize-space(.))=" + y + "]"));
    

XPath 助手通过 var x = require('casper').selectXPath; 提供。