
它有一个 find_element_by_css_selector()的方法,这个方法只能传入一个具体的 css 路径参数。
我的问题是:
需要定位一个元素,这个元素在网页深处,只能通过 dlv 的 class 属性快速定位,但是与他 class 相同的元素有多个,有一个笨办法是从最上层的标签一个一个找下来(通过 dlv:nth-child,我用的 css),但这个效率太低,还容易出错。
一个 css 表达式是否可以先筛选标签的属性,再从筛选出的标签中选择第几个我要的?如果有,是怎么写的?
先谢过各位^.^!
已解决。
简单说明一下:我尝试了xpath(//div[@class="xxx"][seq])和css(tag[class="xxx"]:nth-of-type(seq))两种选择器的原生语法都不能解决我的问题,最后用(发现)selenium有对应的find_elements_by_xpath和find_elements_by_css_selector方法才得以解决。(困扰我3个小时...)
eg:
self.browser.find_elements_by_xpath('//div[contains(@class,"ipo-ScoreDisplayPoints_Wrapp")]')[1].click()
重点在后面的下标。
1 1KN6sAqR0a57no6s 2019-05-27 08:03:32 +08:00 via Android [title=qqq]:nth-of-type(3) |
2 lasuar OP @YuxiangLuo 谢谢,我先试下! |
3 lasuar OP @YuxiangLuo 老哥,如何根据 text 筛选呢?看了很多文档貌似都不行。 |
4 yejianmail 2019-05-27 09:11:37 +08:00 via Android 用 xpath 应该支持根据 text 筛选 |
5 andylsr 2019-05-27 09:29:35 +08:00 via Android 你没必要一层一层找啊~你只需要找到一个唯一标签,这个唯一可以用 id 或者 class 或者 name,再从这个唯一标签定位到目标标签 |
6 hebwjb &bsp; 2019-05-27 10:23:08 +08:00 楼上正解 |
8 loryyang 2019-05-27 10:48:33 +08:00 学一下 xpath,别的 find 函数就不需要了 |
11 lasuar OP @YuxiangLuo 老哥,你说的这个在这里还是不行;不过我找到办法了,可以看下我的 append。 |