【问题标题】:Webdriver & javascript: Getting web element by attribute nameWebdriver & javascript:通过属性名称获取 Web 元素
【发布时间】:2019-12-25 15:33:51
【问题描述】:

我正在尝试通过属性名称(异步方式)获取 Web 元素

<input name="Login" placeholder="Login" type="text">

在 Webdriver v4(旧代码)中,它是 documented,如下所示:

$('input[name="Login"]')

我正在使用 webdriver v5> 无法正常工作 (未找到元素)和documentation 没有解释在这种情况下如何进行(或者我只是没有找到它)

我在这里缺少什么?

【问题讨论】:

  • not working 是什么意思?你有什么例外吗?
  • @Xotabu4 - 你说得对。我在我的帖子中添加了额外的信息。它是异步模式,错误是找不到元素。

标签: javascript webdriver webdriver-io


【解决方案1】:

好的……sintaxe 没问题。我失败的是选择器前面缺少的 await 。到达此行时元素不存在,然后当我尝试设置值时出现错误。

let user = await $('input[name="Login"]')

我意识到记录用户的价值:

无需等待:

>>>>>>> [object Promise]

等待:

>>>>>>> [object Object]

如果不等待,很难知道元素何时尚未渲染或者它是错误的。

任何关于如何以更好/更优雅的方式处理它的建议将不胜感激。

【讨论】:

  • 嗨,问题:您是在独立模式下使用 WDIO 还是使用运行器文件方法?基本上 WDIO 有办法同步运行代码。您需要根据您使用的模式选择一个选项。
  • 这就是你的配置——如果你在同步模式下使用WDIO——你不需要担心异步/等待。没有它 - 你需要自己处理异步代码执行顺序 - 通过等待所有异步命令。
猜你喜欢
  • 2011-11-30
  • 2014-09-23
  • 1970-01-01
  • 2012-06-01
  • 2012-11-17
  • 2011-07-30
  • 2016-02-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多