【问题标题】:Karate - how to choose option in selection component according to option value空手道 - 如何根据选项值在选择组件中选择选项
【发布时间】:2020-04-23 20:08:50
【问题描述】:

我想请你帮忙根据具体值选择选项(值存储在 karate-config.js 中定义的变量中)。

我有这种情况:

<select name="environmentId" id="environmentId" class="form-control">
  <option value="" disabled="">--- Select Environment ---</option>
  <option value="omi-test-env">omi-test-env</option>
  <option value="env-rab">env RAB</option>
</select>

我可以通过索引选择它,但我需要选择 value="env-rab" 的选项。我已经尝试过类似的方法,但它不起作用:

* script("document.getElementById('environmentId').options.value="+ envName)
* script("document.getElementById('environmentId').dispatchEvent(new MouseEvent('change', {bubbles: true}))")

* script("document.getElementById('environmentId').value="+ envName)
* script("document.getElementById('environmentId').dispatchEvent(new MouseEvent('change', {bubbles: true}))")

我怀疑在这种情况下我是否正确使用了 envName 变量(变量在 karate-config.js 中定义)。

感谢您的帮助。

【问题讨论】:

    标签: automated-tests karate


    【解决方案1】:

    这对我有用,select() 支持字符串作为第二个参数:

    * def envName = 'env-rab'
    * select('#environmentId', envName)
    

    参考文档:https://github.com/intuit/karate/tree/master/karate-core#select

    编辑试试这个:

    * script("document.getElementById('environmentId').value='" + env-rab + "'")
    

    【讨论】:

    • 感谢您的重播!在我的情况下,选择对我不起作用(但在不同的地方工作正常,感谢您的帮助),但我发现在我的情况下使用脚本:# * script("document.getElementById('environmentId').值='env-rab")。但是我尝试为变量(* def envX = 'env-rab')更改'aaa-env-test',但我没有成功。我尝试过: script("document.getElementById('environmentId').value=") 或 script("document.getElementById('environmentId').value=#envX").... 我该如何使用脚本字符串中的变量?谢谢!
    • @RadimBukovský 看到我的编辑。也请尝试获得了解javascript的人的帮助
    • 谢谢你——效果很好!现在我可以使用第一种或第二种方式,我现在可以在我的项目中使用任何选择。
    猜你喜欢
    • 2017-12-12
    • 2013-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-01
    • 1970-01-01
    • 2016-10-06
    相关资源
    最近更新 更多