一个 selenium 的问题

2019-05-27 07:47:10 +08:00
 lasuar

它有一个 find_element_by_css_selector()的方法,这个方法只能传入一个具体的 css 路径参数。
我的问题是:
需要定位一个元素,这个元素在网页深处,只能通过 dlv 的 class 属性快速定位,但是与他 class 相同的元素有多个,有一个笨办法是从最上层的标签一个一个找下来(通过 dlv:nth-child,我用的 css),但这个效率太低,还容易出错。
一个 css 表达式是否可以先筛选标签的属性,再从筛选出的标签中选择第几个我要的?如果有,是怎么写的?

先谢过各位^.^!

4024 次点击
所在节点    编程
11 条回复
YuxiangLuo
2019-05-27 08:03:32 +08:00
[title=qqq]:nth-of-type(3)
lasuar
2019-05-27 08:09:37 +08:00
@YuxiangLuo 谢谢,我先试下!
lasuar
2019-05-27 08:49:25 +08:00
@YuxiangLuo 老哥,如何根据 text 筛选呢?看了很多文档貌似都不行。
yejianmail
2019-05-27 09:11:37 +08:00
用 xpath 应该支持根据 text 筛选
andylsr
2019-05-27 09:29:35 +08:00
你没必要一层一层找啊~你只需要找到一个唯一标签,这个唯一可以用 id 或者 class 或者 name,再从这个唯一标签定位到目标标签
hebwjb
2019-05-27 10:23:08 +08:00
楼上正解
lasuar
2019-05-27 10:40:03 +08:00
@andylsr 我说的就是通过 id/class/name 属性无法定位具体元素的情况。
loryyang
2019-05-27 10:48:33 +08:00
学一下 xpath,别的 find 函数就不需要了
lasuar
2019-05-27 10:59:12 +08:00
@loryyang 嗯,xpath 确实很强大,我主要是喜欢 css 的语法简洁性
lasuar
2019-05-27 14:42:44 +08:00
@lasuar 老哥,你说的这个在这里还是不行;不过我找到办法了,可以看下我的 append。
lasuar
2019-05-27 14:42:56 +08:00
@YuxiangLuo 老哥,你说的这个在这里还是不行;不过我找到办法了,可以看下我的 append。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/567892

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX