首页 > 解决方案 > 如何使用两个 Xpath 构造元素 - WebdriverIO

问题描述

我是 WebdriverIO 的新手,并试图通过组合两个 xpath 来定位一个元素,但不确定正确的语法或方法。假设我们在页面上有一个用户块列表,我想找到包含所有用户的整个块,我计划为此使用“$$”,这样我就可以选择我想要对哪个用户执行操作。那么该用户块中有多个操作选项,因此每个操作都有不同的路径。

例子:

var user = browser.$$('//*[@id="react-root-node"]/div/div[2]/div[3]/div[2]/div');

var userAction = browser.$('div[1]/div[2]/div[1]');

我可以使用哪种语法或方法将 xpath 的第二部分添加到第一个部分,并在最后有一个元素。

标签: javascriptseleniumselenium-webdriverelementswebdriver-io

解决方案


您可以使用 and 的链$$$例如:

var users = $$('//*[@id="react-root-node"]/div/div[2]/div[3]/div[2]/div');

// the 1st user in list
users[0].$('./div[1]/div[2]/div[1]')

// the 2st user in list
users[1].$('./div[1]/div[2]/div[1]')

更多细节可以从这里得到


推荐阅读