【发布时间】:2018-07-22 23:22:45
【问题描述】:
我已经阅读了其他帖子并尝试了建议(例如Nightwatch Cannot Find/Click on Dropdown Option 和Nightwatch to select option from select box),但没有成功。
似乎无论我使用什么方法与选择框交互,在 safari 上都不起作用。我仅用于 chrome 的选项在 chrome 浏览器上仍然可以正常工作,但我们希望启动并运行我们的 safari 集成测试。
适用于 chrome 的选项是:
.click('select[name="elementName"] option.OptionClass')
但是,这会使选择器在 safari 上单击但未选择任何选项,从而破坏了我们需要选择的表单。
我试过像这样连续点击两者
.click('select[name="elementName"]') .click(' option.OptionClass')
使用击键:
.click('select[name="elementName"]') .keys(['\uE015', '\uE006'])
包装在执行调用中:
browser.perform(function() { browser .click('select[id=element-id]') .click('option.className'); });
以及我能想到的每一种组合。
到目前为止,关于守夜人问题、谷歌群组或 stackoverflow 中的任何内容都没有帮助。有没有人遇到过这个问题,有没有人想出解决办法?
注意:我也尝试过一种通用的 selenium 方法,并使用 .execute('insert javascript to change value of select element') 但这不会触发 onchange 事件和表单反正不提交。
如果我在本地手动拦截测试并在自动化打开选择框后单击选择选项,它可以正常工作,我只需要一种方法来导航到或在打开后单击该选项。
我已经为此投入了大约 2-3 天的工作,因此非常感谢任何帮助。谢谢!
【问题讨论】:
-
你试过
.setValue(selector, value)吗? -
我没有,但这里的问题是我不一定提前知道值,因为它是动态的
标签: javascript selenium safari automation nightwatch.js