当使用Selenium将文本跨越多行时,如何通过文本识别元素



是否可以使用包含文本(下面是我想要的,但不起作用(来编写xpath

//ul[@role='listbox']/..//span[contains(text(),'Fast-Food Restaurent')] 

页面代码:

<span class="item-title" md-highlight-text="searchText" md-highlight-flags="i">Fast-<span class="highlight">Food</span> Restaurant</span>

当我输入单词food时,它是一个自动完成的文本框,有一些选项,我想从中选择快餐店。

提前谢谢。

要识别元素,可以使用以下基于xpath的定位器策略之一:

  • 使用文本食品快速

    //ul[@role='listbox']/..//span[.//span[text()='Food']][contains(.,'Fast-')]
    
  • 使用文本食品餐厅

    //ul[@role='listbox']/..//span[.//span[text()='Food']][contains(.,'Restaurant')]
    
  • 使用文本食品快餐餐厅

    //ul[@role='listbox']/..//span[.//span[text()='Food']][contains(.,'Fast-') and contains(.,'Restaurant')]
    

您可以根据其字符串表示来选择所需的span节点:

//span[.='Fast-Food Restaurant']

您可以将路径修改为以下路径:

//ul[@role='listbox']/..//span[contains(normalize-space(), 'Fast-Food Restaurant')] 

相关内容

  • 没有找到相关文章

最新更新