Selenium css 定位如何依次定位多个节点下面的子节点

醋精测试媛 · 2020年10月29日 · 最后由 醋精测试媛 回复于 2020年10月30日 · 2956 次阅读

如果 html 是这样的:

<div A>
    <div a>
    <div a>
    <div a>
<div A>
    <div a>
    <div a>
<div A>
    <div a>
<div A>
    <div a>
    <div a>

div A 代表父元素,class 什么的都是一样的
div a 代表子元素,class 什么的也是一样的
但是第一个 div A 下面的子元素和之后的不一定相同
而我也不确定 div A 的个数
如何通过 div A 定位到每一个 div a 呢?

我尝试了这样子做:

A_el = self.find_elements(By.CLASS_NAME, "class A")
for A in A_el:
    a_el = A.find_elements(By.CLASS_NAME, "class a")

但是我的 a_el,包括了所有的 div a,即 a_el 定位到了 8 个,如何只定位到某一个 A 里面包含的那几个 a 呢?

共收到 7 条回复 时间 点赞

让开发把每一个块都加上不同的标识 id 或者 name

css 不怎么用 如果用 xpath 可以这样

eleAs = driver.findelementsbyxpath(".//div[@class='A']")
eleAs.foreach(eleA->{ eleas = eleA.findelementsbyxpath(".//div[@class=a]") })

Elsie 回复

估计不行,这是一颗树

我记得有 find son 类似这样的方法吧 你查一下

Elsie 回复

没有吧,确实有父元素定位子元素,但是依次多个父元素下的多个子元素(仅某个父元素下的)还是不太会

Elsie 回复

好的,谢谢你

醋精测试媛 关闭了讨论 10月30日 14:23
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册