You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Watir使用following_sibling定位元素失败并报错的问题求助

Watir使用following_sibling定位元素失败并报错的问题求助

嘿,我来帮你排查这个问题~

首先,你代码里的报错原因很明确:visible: 'Website'这个写法完全错了!Watir的visible定位器参数只能接受布尔值(true或false),用来判断元素是否处于可见状态,根本不能用来匹配元素的文本内容。你想用“Website”这个文本定位元素,得用text定位器才行。

给你几个修正后的可行方案,选顺手的用就行:

方案1:修正定位器+调整following_sibling索引

把visible换成text,同时注意following_sibling的索引是从0开始的,你要找的是的第一个兄弟元素,所以索引用0:

website = b.element(class: 'vcard').element(text: 'Website').following_sibling(index: 0).text

甚至可以省略index参数,默认会取第一个匹配的兄弟元素:

website = b.element(class: 'vcard').element(text: 'Website').following_sibling.text

方案2:通过父元素定位

既然和属于同一个行,也可以先找到的父元素,再直接定位里面的:

website = b.element(class: 'vcard').element(text: 'Website').parent.element(tag_name: 'td').text

方案3:用XPath直接定位目标

如果喜欢用XPath,可以一步到位定位到对应行的:

website = b.element(class: 'vcard').element(xpath: './tbody/tr[th/text()="Website"]/td').text

另外补充一句:你提到这是Wikipedia页面的infobox,其实也可以直接通过infobox-data类来定位,不过前提是这个网站链接是唯一的infobox-data元素(或者是第N个),但用文本匹配的方式更稳妥,避免页面结构变动导致定位失效。

备注:内容来源于stack exchange,提问作者Rich_F

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.23 13:57:36