如何找到动态xpath元素

问题描述 投票:0回答:1

我有一个xpath会自动生成的web元素,但以“ _2”结尾。xpath具有以下格式:

//*[@id="hNQjKwNtHyHqFtVtOQTm_2"]
//*[@id="dZcUekrklXsbv_AlImka_2"]

我已经尝试过:

    //input[ends-with(@id,'_2')]"
    //*[contains(@id="_2")]'

和包含的不同组合,但我没有运气。我似乎无法做到这一点,是否有另一种方法可以解决?还是可以帮助我了解问题所在?

在量角器中,我收到一条错误消息,通知我xpath无效

<input data-bind=" attr: { maxlength: maxlength, type: type, id: id, 'data-type': dataType, disabled: disabled, 'aria-disabled': disabled, 'pattern': pattern, 'inputmode': 'numeric', 'max': $data.max, 'min': $data.min, 'step': $data.step, 'tabindex': $data.tabIndex, 'aria-invalid': isInvalid, 'aria-label': label }, value: val, valueUpdate: valueUpdate, css: { error: $data.err, hasFocus: hasFocus, hideCaret: $data.hideCaret, hasValue: hasValue }, event: { focus: onFocus, blur: onBlur }" autocomplete="off" autocapitalize="off" autocorrect="off" formnovalidate="" required="" maxlength="11" type="tel" id="dZcUekrklXsbv_AlImka_2" pattern="[0-9]*" tabindex="2000" aria-invalid="true" class="">
javascript xpath protractor
1个回答
0
投票
您的第一个xpath表达式

//input[ends-with(@id,'_2')]

应该正常工作。不幸的是,您的系统可能仅支持xpath 1.0,ends-with()是xpath 2.0表达式。

您可以尝试通过使用此限制来破解

//input[substring(@id,string-length(@id)-1 )="_2"]

并查看是否有效。
© www.soinside.com 2019 - 2024. All rights reserved.