如何从具有由新行分隔的值的数组中检索随机值
How to retrieve a random value from an array that has values separate by a new line
我是 JS 的完全新手,目前以测试能力使用它与 Karate 框架一起执行一些 UI 测试。我遇到以下问题:
有一个下拉菜单具有以下 HTML:
<select class=id="CarId" name="CarId" aria-describedby="CarId-error" aria-invalid="false" xpath="1">
<option value="1">Mercedes</option>
<option value="2">BMW</option>
<option value="3">Lexus</option>
<option value="4">Honda</option>
<option value="5">Toyota</option>
<option value="6">VW</option>
</select>
我使用以下空手道方法获取下拉列表下的所有文本值:
def grabValues = scriptAll('#CarId', '_.textContent')
打印后,数组如下所示:
[
"Mercedes\nBMW\nLexus\nHonda\nToyota\nVW\n"
]
console.log(Math.floor(Math.random() * (grabValues.length-1)))
打印时,它一直给我 0.0。我假设这是因为数组包含新行与逗号分隔?如果是这样,我怎样才能去掉新行并用逗号替换?
一行代码为console.log(myArr[0].split('\n'))
或
假设:字符串数组存储在myArr
let myArr = ["ABC\nDEF\nGHI\nJKL\nMNO\nPQR\nSTU\nVWX\nYZA\n"]
从数组中获取字符串
let stringOfArr = myArr[0]
存储 stringOfArr
中由 '\n'
删除的新数组 newArray
let newArray = stringOfArr.split('\n')
console.log(newArray)
你想要的是从每个 <option>
中获取文本
def grabValues = scriptAll('#CarId option', '_.textContent')
这将为您提供一组文本值,例如
["Mercedes","BMW","Lexus","Honda","Toyota","VW"]
要获得随机索引,您可以使用
Math.floor(Math.random() * grabValues.length)
我是 JS 的完全新手,目前以测试能力使用它与 Karate 框架一起执行一些 UI 测试。我遇到以下问题:
有一个下拉菜单具有以下 HTML:
<select class=id="CarId" name="CarId" aria-describedby="CarId-error" aria-invalid="false" xpath="1">
<option value="1">Mercedes</option>
<option value="2">BMW</option>
<option value="3">Lexus</option>
<option value="4">Honda</option>
<option value="5">Toyota</option>
<option value="6">VW</option>
</select>
我使用以下空手道方法获取下拉列表下的所有文本值:
def grabValues = scriptAll('#CarId', '_.textContent')
打印后,数组如下所示:
[
"Mercedes\nBMW\nLexus\nHonda\nToyota\nVW\n"
]
console.log(Math.floor(Math.random() * (grabValues.length-1)))
打印时,它一直给我 0.0。我假设这是因为数组包含新行与逗号分隔?如果是这样,我怎样才能去掉新行并用逗号替换?
一行代码为console.log(myArr[0].split('\n'))
或
假设:字符串数组存储在myArr
let myArr = ["ABC\nDEF\nGHI\nJKL\nMNO\nPQR\nSTU\nVWX\nYZA\n"]
从数组中获取字符串
let stringOfArr = myArr[0]
存储 stringOfArr
中由 '\n'
删除的新数组 newArray
let newArray = stringOfArr.split('\n')
console.log(newArray)
你想要的是从每个 <option>
def grabValues = scriptAll('#CarId option', '_.textContent')
这将为您提供一组文本值,例如
["Mercedes","BMW","Lexus","Honda","Toyota","VW"]
要获得随机索引,您可以使用
Math.floor(Math.random() * grabValues.length)