当标签包含多个文本时,无法按文本选择标签

Xti*_*naS 0 selenium xpath

我正在驾驶自己疯狂.

我在表单中有三个表单字段:

  1. 客户:必填的下拉字段
  2. 重量:必填文本字段
  3. 状态:可选文本字段

每个元素都有该标签.必填字段的标签包含带星号的范围.

我在Chrome中使用Xpather.当我搜索这个时,我得到2个结果,当我得到3:

//*[contains(text(),'t')]
Run Code Online (Sandbox Code Playgroud)

这对我来说毫无意义.

客户,正在工作:

<label for='customer-field'>
  <span class='required-marker'>*</span>
  Customer
  <input id='customer-field' type='text' />
</label>
Run Code Online (Sandbox Code Playgroud)

重量,这是工作:

<label class='control-label'>
  <span id='ctl01_requiredMarker' class='required-marker'>*</span>
  Weight
</label>
Run Code Online (Sandbox Code Playgroud)

状态,正在工作:

<label class='control-label'>
  Status
</label>
Run Code Online (Sandbox Code Playgroud)

对我有用的唯一解决方法是从Weight标签容器中删除所需的标记.但是,这并不能解释"客户"如何匹配.

值得注意的是:我正在尝试自动测试此页面,因此我无法真正删除该span标记.

这是怎么回事?和/或我该怎么办?

Tet*_*ity 6

尝试将XPath更改为以下内容:

//*[text()[contains(.,'t')]]
Run Code Online (Sandbox Code Playgroud)

这个修复程序的来源远比我完成的要好得多,所以请参考它以获得详细解释!我使用Firefox的XPath Checker扩展程序自己测试了它,它匹配你的三个项目.