请教 关于查找元素【元素选择】和【遍历子元素】的问题

哈哈秀 2019-3-20 2127

<body>
    <div data-tag="gateway-wrapper">
        <div data-reactroot="" class="next-overlay-wrapper opened">
            <div class="next-overlay-inner sell-shop-category-overlay" style="position: absolute; left: 325px; top: 4220.45px;">
                <div class="parent-node">
                    <div class="title">分类标题一</div>
                    <div class="leaf-node">
                        <label>
                            <span class="next-checkbox ">
                                <span class="next-checkbox-inner"><i class="next-icon next-icon-select next-icon-xs"></i></span>
                                <input type="checkbox" aria-checked="false" value="on">
                            </span><span class="next-checkbox-label">分类一</span>
                        </label>
                    </div>
                    <div class="leaf-node">
                        <label>
                            <span class="next-checkbox ">
                                <span class="next-checkbox-inner"><i class="next-icon next-icon-select next-icon-xs"></i></span>
                                <input type="checkbox" aria-checked="false" value="on">
                            </span>
                            <span class="next-checkbox-label">分类二</span>
                        </label>
                    </div>
                </div>
                <div class="parent-node">
                    <div class="title">分类标题二</div>
                    <div class="leaf-node">
                        <label>
                            <span class="next-checkbox ">
                                <span class="next-checkbox-inner"><i class="next-icon next-icon-select next-icon-xs"></i></span>
                                <input type="checkbox" aria-checked="false" value="on">
                            </span><span class="next-checkbox-label">分类三</span>
                        </label>
                    </div>
                    <div class="leaf-node">
                        <label>
                            <span class="next-checkbox ">
                                <span class="next-checkbox-inner"><i class="next-icon next-icon-select next-icon-xs"></i></span>
                                <input type="checkbox" aria-checked="false" value="on">
                            </span>
                            <span class="next-checkbox-label">分数四</span>
                        </label>
                    </div>
                </div>
            </div>
        </div>
    </div>
</body>

这是一个下拉菜单的模型

_请教 关于查找元素【元素选择】和【遍历子元素】的问题

获取第4行,元素下的所有子元素:

<div class="next-overlay-inner sell-shop-category-overlay" style="position: absolute; left: 325px; top: 4220.45px;">

读取子元素返回的"aaname" : "分类标题一 分类一 分类二",

但我实际是想通过和分类一 分类二 分类三 分类四 及所有的分类时行比对,来查找这个分类的checkbox在位置,以便实现元素勾选;如勾选分类一 checkbox 位置在 1

"html":{"url":iHttp,"title":iTitle,"tagName":"INPUT","attrMap":{"tag":"INPUT","type":"checkbox","css-selector":"body>div>div>div>div>div>label>span>input"},"index":1}

目前暂时不考虑用字符串空格区别的方法(寻找更好的方法)

不知道在遍历子元素的时候,能不能只获取

<span class="next-checkbox-label">

里的内容

先提问到这里,我去试一下。

最新回复 (6)
  • 哈哈秀 2019-3-20
    2
    "tagName":"DIV","attrMap":{"tag":"DIV","aaname":"分类一"},"index":0
    "tagName":"DIV" 和  "SPAN"
    attrMap":{"tag":"DIV","aaname":"分类一"} :"tag":"DIV" "SPAN";"aaname":文本;"css-selector":"body>div>div>div>div" ; "type":"checkbox"
    "index":0 是不是相同元素,第几个?

    记录用

  • 哈哈秀 2019-3-20
    3
    【元素选择】 还是不会用
    暂时用【元素勾选】实现吧
    等解答
  • 哈哈秀 2019-4-30
    4
    网页上的界面元素的特征分为两部分,一部分是wnd信息,另一部分是html信息。wnd信息和其他C/S软件类似,而html信息则是其他C/S软件所不具备的。实际上,wnd信息标明了这个网页所在的浏览器窗口,html信息才是网页上的界面元素的关键信息。

    html:代表这是一个网页界面元素;
    url:对应浏览器地址栏中显示的URL,其实并不参与界面元素的特征匹配。仅在“绑定外部浏览器”命令中(在“浏览器”类命令中可以找到)用到,用于选择想要绑定的浏览器活动标签页;
    title:与url类似,对应浏览器标签页的标题,不参与界面元素的特征匹配,也仅在“绑定外部浏览器”命令中使用;
    tagName:代表这个网页界面元素的html标签类型,常见的有div、a、input等等。熟悉html的读者对此一定倍感亲切,不熟悉也没关系,打个比方:如果说html代表人类,那么tagName则代表这个元素是亚洲人、美洲人或者欧洲人;
    attrMap:代表这个网页界面元素的更具象的html描述,我们同样拿上面这个比方:attrMap就像是这个元素的户口本,更为详细的描述了这个元素属于哪个国家和省份,父母是谁,是否独生子,等等;
    index:一般起辅助作用,说明在满足特征条件情况下,元素出现的顺序。UiBot的index是从数字1开始的,当index没有填写或取0时,则会选择第一个出现的元素。
  • 瞌睡蟲子 2019-4-30
    5
    遍历子元素,是遍历父下的直接子元素,不是后代元素。你这里第4行,子元素只能获取2个 <div class="parent-node">。index 0,1是第一个,2是第二个。
  • 瞌睡蟲子 2019-4-30
    6

    想直接获取<span class="next-checkbox ">的话。用 "attrMap":{"css-selector":"span.next-checkbox"}。通过index直接定位

  • 哈哈秀 2019-4-30
    7
    <label>
    	<span class="next-checkbox ">
                                    <span class="next-checkbox-inner"><i class="next-icon next-icon-select next-icon-xs"></i></span>
                                    <input type="checkbox" aria-checked="false" value="on">
    	</span>
    	<span class="next-checkbox-label">分类一</span>
    </label>
    谢谢, "attrMap":{"css-selector":"span.next-checkbox"}可以找到checkbox,

    目前我不知道能不能通过 next-checkbox-label 找到 分类一 的文字


    我想通过匹配 这个    分类一

    <span class="next-checkbox-label">分类一</span>


    来勾选这个checkbox

    <input type="checkbox" aria-checked="false" value="on">


返回
发新帖