在Workfusion中,我正在迭代xpath中将要找到的HTML页面中的所有元素:
// * [开始于(@id,“ FormView1_hidRevElement”)] [$ {i}]
当$ {i} = 1时,我得到了预期的结果,但是当$ {i}> 1时,我没有得到预期的结果。
在HTML页面中,我具有以下元素:
id =“ FormView1_hidRevElement12636”
id =“ FormView1_hidRevElement12637”
id =“ FormView1_hidRevElement12642”
等
引发错误: ...
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<div id="app">
<div class='col-md-4 mt-3' v-for="(post, index) in posts" :key="index">
<textarea readonly :ref="'p' + index" class="post-description">
{{post.content}}
</textarea>
<a @click.prevent="setFocusEdit(index)" href="#">Edit Me</a>
</div>
</div>
...
怎么了?
答案 0 :(得分:6)
您创建的XPath错误,因为
// * [开始于(@id,“ FormView1_hidRevElement”)]
将为以下ID返回匹配计数为3
id =“ FormView1_hidRevElement12636”
id =“ FormView1_hidRevElement12637”
id =“ FormView1_hidRevElement12642”
每个id匹配项等于1,那么显然> 1条件将引发错误,因为它不存在。
尝试此XPath:
(// * [starts-with(@id,“ FormView1_hidRevElement”)])[$ {i}]
答案 1 :(得分:-1)
确定以下元素:
id="FormView1_hidRevElement12636"
id="FormView1_hidRevElement12637"
id="FormView1_hidRevElement12642"
您可以使用以下 xpath :
"//*[starts-with(@id,'FormView1_hidRevElement') and contains(@id, '%s')]" % (i)
或
"//*[starts-with(@id,'FormView1_hidRevElement') and contains(@id, '{}')]".format(i)