跳到主要内容

获取网页关联元素

指令说明

获取网页中指定元素的//兄弟/子孙元素,父元素始终只有一个,子元素和兄弟元素可能有多个。当查找到多个匹配的子孙元素时会报错,需要修改元素,以确保始终只能匹配到唯一元素。 子孙元素+index也可以实现获取指定元素的第n个直接子元素

指令输入参数

输入参数输入参数类型说明
网页对象WebPage获取该网页的元素
网页元素WebElement 或 ElementDescriptor获取该元素的关联元素,可以选择捕获的网页元素也可以选择获取网页元素获取网页相似元素获取网页关联元素等指令获取到网页元素
关联方式枚举项父元素、子元素、兄弟元素、前一个兄弟元素、后一个兄弟元素、子孙元素
子孙元素ElementDescriptor捕获的网页元素,仅关联方式是子孙元素时需要该参数,会从上面的 网页元素 参数开始查找子孙元素
等待元素出现时长float若元素未出现则一直等待,直到元素出现为止,若超过最长等待时间后元素仍未出现则触发错误或者返回空列表,单位:秒

指令输出参数

输出参数输出参数类型说明
网页元素WebElement 或 List[WebElement]关联方式是父元素、前一个兄弟元素、后一个兄弟元素、子孙元素 时类型是WebElement,否则是 List[WebElement]

类型定义参考

提示

适用场景

  • 当无法唯一定位元素时可以通过关联元素尝试获取期望的元素
  • 商品列表中每件商品都有名称和价格,当获取到商品名称后可以通过关联元素获取这件商品对应的价格

示例

获取taobao商品名称及价格

商品列表(.tbpc-row)包含多个商品元素(.tbpc-col),每个商品元素都有名称元素(A SPAN.info-wrapper-title-text)和价格元素(A DIV.price-wrapper)

流程

  1. 获取商品列表元素
  2. 获取商品列表元素的所有直接子元素,即单个商品元素
  3. 获取每个商品的子孙元素
  • 商品列表元素

  • 子孙元素(商品价格元素)

    由于需要查找每个商品的名称,所以不能勾选 单个商品元素 及之前的元素。 当查找单个商品元素的子孙元素时会通过单个商品元素.querySelectorAll(勾选的Tag1 勾选的Tag2 ...)方式查找,因此可以按需勾选Tag

常见问题

参考 网页操作常见问题