Node.js 如何使用无铬API从下拉列表中选择选项?
我使用的是无铬API() 如何从下拉列表中选择选项? 具体来说,我想选择最后一个选项,其值为“其他” 我的HTML是:Node.js 如何使用无铬API从下拉列表中选择选项?,node.js,headless-browser,chromeless,Node.js,Headless Browser,Chromeless,我使用的是无铬API() 如何从下拉列表中选择选项? 具体来说,我想选择最后一个选项,其值为“其他” 我的HTML是: 您可以通过以下方法实现这一点:在加载的任何页面的浏览器上下文中评估任何Javascript: 等待无铬 后藤先生('http://yourwebsite.com/yourpage') .评估(()=>{ select=document.querySelector('select.Decept form select') select.value='other' }) 或者,具
您可以通过以下方法实现这一点:在加载的任何页面的浏览器上下文中评估任何Javascript:
等待无铬
后藤先生('http://yourwebsite.com/yourpage')
.评估(()=>{
select=document.querySelector('select.Decept form select')
select.value='other'
})
或者,具体选择选择列表中最后一项的内容:
等待无铬
后藤先生('http://yourwebsite.com/yourpage')
.评估(()=>{
document.querySelector('select.declient-form-select option:last child')。selected=true
})
也可以不用evaluate()
方法来完成,尽管方法有些复杂。避免evaluate()
await chromeless
.click('#the-select-element')
.type('First characters of description text of desired option', '#the-select-element')
.click('#the-select-element option[value="the-matching-value"]')
或者使用问题中的示例:
await chromeless
.click('select.decline-form-select')
.type('Oth', 'select.decline-form-select')
.click('select.decline-form-select option[value="other"]')
使用本机无铬命令选择选项需要首先单击select
元素,然后根据选项的可见文本内容键入文本以选择所需选项(明确标识该选项的前几个字符就足够了),然后单击所需的选项
元素。由于无法使用css选择器按文本内容查找选项
元素,因此必须通过其他方式选择元素,例如值或序号
发送箭头键而不是键入字符来选择选项可能会起作用,但我在测试中发现使用press()
方法有缺陷。(在执行使用按()
发送回车键或空格键的测试时,带有Chrome设置的选项卡将随机打开。)
尽管如此,我还是无法用Chromeless可靠地运行测试。似乎有一些问题与是否将元素滚动到视图中有关。虽然基于数据库的系统,并且在设置和编写代码方面有点复杂,但是为了获得更好的可靠性,可能值得付出努力