Selenium F12 的 elment 找不到的文本,要怎么获取

自娱自乐 · 2020年12月21日 · 最后由 自娱自乐 回复于 2020年12月22日 · 3816 次阅读

如图所示的文本要如何获取:

共收到 11 条回复 时间 点赞

@Faerie1999 小姐姐,求助

自娱自乐 回复

你这问题有点没太看明白,你不是已经定位到这个元素了吗?然后 selenium 定位到这个元素再.text 不就取到文本了。还是说你纠结定位到这个元素的 element 信息里没有展示这个 5.55?

element.get_attribute("value")

kisom 回复

对,我就是纠结他的属性都没有 5.55


还是获取不到那个 5.55

自娱自乐 回复

或许是 title,看到 input 里面有一个 title 属性 没有值

可能问一下开发比较好。

可以通过 get_attribute('outerHTML') 获取元素 html 。 但是 get_attribute('innerHTML')) 获取不到元素 HTML。 get_attribute('data-value')) 还是获取不到数据。 开发只能教我再控制台获取。。

  • 不是所有的都是通过 get_attribute 获取的,比如 text,而且像 textContent/data-value 一般都是没有的

这个函数的意思是获取元素属性,比如

里面的 value,maxlength 等在尖括号里面的都是属性,如果在两个尖括号之间,则是 text,是通过直接 element.text 获取。(get_attribute('innerHTML')) 获取不到元素 HTML,说明不是 text)

  • 问开发的前端的问题是:“这个输入框中的填入的内容是放在哪里了呢?是 value 吗还是哪个属性?” 之前我也遇到过 outerHTML 我也找不出的情况,因为不是所有的都会出现一个属性=值的形式展示在输入框元素中。

试过了 get_attribute('title') 吗

自娱自乐 回复

你这里的前端代码用到了 data-name=“rate”,其实你只要找开发问下他们这个 rate 这个变量在页面里是怎么定义的,最后去对比这个变量 rate 展示得是否正确,我觉得你可以换这个思路去试一下

自娱自乐 回复

你这个定位的 xpath 不大对吧,标题的截图里,这个 input 元素明显是在 td/div 里面的,但你 c3 对象对应的 xpath 只是到了 tr 级别,所以对应的并不是 input 元素。

另外,既然开发能让你从控制台(console)拿到值,那是否可以考虑直接用 execute_script() 方法执行那个控制台(console)能拿到值的代码?

陈恒捷 回复

解决了~ 定位细点和 js 都可以获取到值~ 感谢大佬

自娱自乐 关闭了讨论 12月22日 15:24
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册