当使用 Selenium 将文本跨越多行时如何通过文本识别元素
How to identify element by text when text is spanned over multiple lines using 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>
当我输入食物这个词时,它是一个自动完成的文本框,有一些选项,我想从中select快餐店。
提前致谢。
您可以 select 需要 span
节点基于其 字符串表示 :
//span[.='Fast-Food Restaurant']
要识别元素,您可以使用以下任一方法 xpath based :
使用文本 食物 和 快速:
//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')]
您可以将路径修改为:
//ul[@role='listbox']/..//span[contains(normalize-space(), 'Fast-Food Restaurant')]
是否可以使用包含文本的 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>
当我输入食物这个词时,它是一个自动完成的文本框,有一些选项,我想从中select快餐店。
提前致谢。
您可以 select 需要 span
节点基于其 字符串表示 :
//span[.='Fast-Food Restaurant']
要识别元素,您可以使用以下任一方法 xpath based
使用文本 食物 和 快速:
//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')]
您可以将路径修改为:
//ul[@role='listbox']/..//span[contains(normalize-space(), 'Fast-Food Restaurant')]