gpt4 book ai didi

ruby watir 网络驱动程序无法访问动态元素

转载 作者:太空宇宙 更新时间:2023-11-03 17:51:47 26 4
gpt4 key购买 nike

我有一个需要登录的网站,但其中一个输入文本字段的 ID 和名称每次都会更改。有没有办法通过正则表达式访问元素?提前致谢。

例子:

id="form:wrap:j_idt1297:0:j_idt1298:input"
id="表单:wrap:j_idt2151:0:j_idt2152:输入"

<input class="iceInpSecrt large" 
id="form:wrap:j_idt1297:0:j_idt1298:input"
name="form:wrap:j_idt1297:0:j_idt1298:input"
onblur="setFocus('');" onfocus="setFocus(this.id);"
onkeyup="iceSubmit(form,this,event);"
onmousedown="this.focus();" tabindex="" type="password" value="">

最佳答案

是的,您可以使用正则表达式匹配元素。类似于通过字符串定位id/name。

看起来像:

browser.text_field(:id => /a_regex/)

对于您的示例,以下内容将定位具有上述任一 ID 的文本字段:

browser.text_field(:id => /form:wrap:j_idt\d{4}:0:j_idt\d{4}:input/)

注意:

  • 您需要验证此正则表达式最终不会匹配页面上的其他元素。如果是这样,您将需要使用有关元素的其他信息(可能是类)或元素周围的信息(可能是字段的标签)来使您的搜索更加具体。
  • 根据页面上的其他元素,此正则表达式可能比您需要的更具体。例如,也许只有第一部分是独一无二的。在那种情况下,您可以只执行 /form:wrap:j_idt/

关于ruby watir 网络驱动程序无法访问动态元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23660724/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com