新手区 selenium 小白求助,关于 br 元素的定位

只是一个拿锤子的约德尔人 · 2020年06月02日 · 最后由 奥西里斯的天空侠 回复于 2020年06月05日 · 2976 次阅读


😂 selenium 求各位大佬帮忙解答,51testing 注册界面这个问答问题该如何定位呀。。试过好多种定位方法发现还是不行,是我使用姿势不对吗。。

最佳回复

你这个比较特别,包住这个问题文案的 td 标签,内部实际包了 input + a + span + br + 这段文字 。恒温那个方法应该可以,获取 text() 属性,就是只获取标签中的文字,忽略其它同级别的 html 标签内容。

还有一种思路,就是直接用 xpath 等方法把整个 td 标签拿到,这时候它应该是一个 Element 对象。然后再获取这个对象的 text 属性,这样应该也能单独拿到这段文字。

共收到 12 条回复 时间 点赞
$x('//*[@id="secqaa_qSnDW3NH"]/div/table/tbody/tr/td/text()')

恒温 回复

我晚上回去试一下,谢谢大佬

我晚上回去试一下,谢谢大佬,我之前用的是 full xpath 好像失败了,我今晚回去再试试

你这个比较特别,包住这个问题文案的 td 标签,内部实际包了 input + a + span + br + 这段文字 。恒温那个方法应该可以,获取 text() 属性,就是只获取标签中的文字,忽略其它同级别的 html 标签内容。

还有一种思路,就是直接用 xpath 等方法把整个 td 标签拿到,这时候它应该是一个 Element 对象。然后再获取这个对象的 text 属性,这样应该也能单独拿到这段文字。

陈恒捷 回复

用 text() 会报错,显示返回的是 object,但是应该是一个元素。
用了你的方法是可以的。。。

//div[@class="rfm"]//child::td/text()[2]

如果有更好的方式大家可以一起讨论。

Allen.liu 回复

它 ID 是动态变化的,现在我用的都是 Full Xpath

陈恒捷 回复

谢谢老哥,。直接获取到这个 td 标签,获得它的 text()属性,做一下处理就好了。问题解决

恒温 回复

老哥,这个方法返回的是一个 obj 啊不是一个元素。而且 ID 是动态的话,只能用 full xpath 了吗。

用 id 的模糊匹配吧,前半段好像是固定的

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册