Javascript Webdriver IO中的帧处理

Javascript Webdriver IO中的帧处理,javascript,testing,selenium,automated-tests,webdriver-io,Javascript,Testing,Selenium,Automated Tests,Webdriver Io,我正在测试一个包含多个表单的网页 当我使用 client.frame({id:client.element('#frameId')}); 我没有得到任何错误,但是当我尝试与该框架内的元素交互时,我得到一个运行时错误告诉我无法定位该元素 我一直在寻找有关frame()方法如何工作的文献,但我没有任何运气。我也在使用webdriver.io,看起来文档有点错误 您可以访问以下帧: 1) 通过页面上的号码。例如,HTML DOM中遇到的第一个帧是 客户端框架(0),第二个客户端框架(1)等 2) 通

我正在测试一个包含多个表单的网页

当我使用

client.frame({id:client.element('#frameId')});
我没有得到任何错误,但是当我尝试与该框架内的元素交互时,我得到一个运行时错误告诉我无法定位该元素


我一直在寻找有关
frame()
方法如何工作的文献,但我没有任何运气。

我也在使用webdriver.io,看起来文档有点错误

您可以访问以下帧:

1) 通过页面上的号码。例如,HTML DOM中遇到的第一个帧是
客户端框架(0)
,第二个
客户端框架(1)

2) 通过名称属性:
client.frame('test')


3) 使用
client.element('css_selector')
查找元素,然后在回调中将返回的值传递给
.frame()

转到新帧的方法是:

client.frame(<id of frame here>)
client.frame()
工作正常

我试着使用像
#idOfSelector这样的选择器,但它似乎不起作用。

这对我很有效

const frameValue = browser.element('frame_selector').value;
browser.frame(frameValue);

希望它对你有用

不知何故,这两种技术都不起作用。我的iframe在一个分区内。我希望这不会引起任何问题。2015年5月(问题日期),webdriverio v2.4.5是最新版本。我可以确认这个答案适用于v4.14.2。
const frameValue = browser.element('frame_selector').value;
browser.frame(frameValue);