首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >webdriver.io异步问题-单击元素,然后输入文本

webdriver.io异步问题-单击元素,然后输入文本
EN

Stack Overflow用户
提问于 2015-09-24 04:10:09
回答 2查看 1.2K关注 0票数 1

我试图在我的自动化测试脚本中说明“选择的选择”。我正在使用webdriver.io,并参考了以下接口信息:http://webdriver.io/api.html

我需要点击“a.selected-single”,在“select”的世界中,它等同于用户点击了select。这将用户的注意力集中在文本输入上(它允许用户过滤选择选项,因此chosen很酷),然后我需要模拟用户输入文本。

问题是,我编写的脚本导致所有选择-选择被单击,然后键被输入。这意味着他们的文本只被输入到最终的选择-选择输入中。

在单击元素之后,我插入了一个pause()。我希望暂停发生在每次单击之后,但实际上,暂停只发生在最后一个元素被单击时,并且所有元素的键都在最后一起键入,以便最后一个元素的值为'FIL12‘

代码语言:javascript
运行
复制
this.click(container + ' a.chosen-single').then(function(){
                console.log('clicked');
                console.log('value', fields[selectName]);
                this.pause(1000)
                this.keys(fields[selectName])
                //press enter to finalize selection
                //.keys('\uE007')

                console.log('keys pressed');
              });

下面是我在终端中得到的读数:

代码语言:javascript
运行
复制
clicked
value F
keys pressed
clicked
value IL
keys pressed
clicked
value 1
keys pressed
clicked
value 2
keys pressed

我不知道如何确保在按键输入之前,下一个任务不会排队。请帮帮忙。

EN

Stack Overflow用户

发布于 2015-09-24 04:19:55

pause自身返回一个promise,所以您应该在pause上调用then,以便在pause回调返回之后执行该块。

代码语言:javascript
运行
复制
this.pause(1000).then(function() {
  this.keys(fields[selectName])
  //press enter to finalize selection
  //.keys('\uE007')

  console.log('keys pressed');
});
票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32748611

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档