按 class 名称 webdriverio 切换框架

switch frame by class name webdriverio

我正在尝试切换框架,但它们的 ID 和名称属性是动态的。我用过webdriverio。我可以使用 class 名称吗?有什么想法吗?

<iframe id="n33l4d68f0xr" class="KA-JQ" name="n33l4d68f0xr" src="https://docs.google.com/picker?protocol=gadgets&origin=https%3A%2F%2Fmail.google.com&hl=en&hostId=gmail-to&multiselectEnabled=true&navHidden=true&dff=0&authuser=0&title=Select%20contacts&relayUrl=https%3A%2F%2Fmail.google.com%2Ffavicon.ico&nav=((%22contacts%22))&rpctoken=fmac4onpwdet&rpcService=n33l4d68f0xr" tabindex="0" frameborder="0">

你可以通过选择器获取所有元素,然后像这样切换到第一个:

// inside some async func
const {value} = await browser.elements('.KA-JQ');
await browser.frame(value[0]);

// or not async
return browser.elements('.KA-JQ').then(iFrame => {
    return browser.frame(iFrame.value[0]);
});