BDD - 在没有用户界面的情况下运行问题

时间:2017-01-09 22:50:22

标签: selenium-webdriver rspec cucumber poltergeist

我是新手使用黄瓜和红宝石进行BDD单元测试,并希望获得一些关于尝试在没有UI的情况下运行测试时发生的错误的帮助。

如果我的任何条款或阶段不正确,请告诉我。

场景:在页面上有一个下拉列表,一旦开始输入,它就会回退数据。在测试中,我输入一个值并搜索数据,一旦它返回,我点击所选的值。这是通过以下代码完成的,

selectClient.fill_in 'client', with: client_name page.has_no_css?('.Select-loading-zone') selectClient.find('[name=client]').send_keys(:enter)

selectClient是一个var,用于查找下拉列表所在的部分,这样我就不会搜索整个页面来查找控件。

当它在为UI运行时正常工作但在没有UI的情况下运行时,我会收到以下错误,因为单击或选择了所选项目。

  

Capybara :: Poltergeist :: MouseEventFailed:在坐标[122,261.5]点击点击失败。 Poltergeist使用CSS选择器检测到另一个元素'html.no-js body.ng-scope.rebranding div.wrapper.ng-scope div.inner.ng-scope div.container-fluid div.ng-scope div #module-container。 ng-scope div.myob section.ledger-upgrade div.row div.col-xs-24 div div div.form-group div.Select.create-business.Select - single.is-searchable div.Select-control span #alaction-select-2 - value.Select-multi-value-wrapper div.Select-placeholder'在这个位置。它可能与您尝试与之交互的元素重叠。如果您不关心重叠元素,请尝试使用node.trigger('click')。

我使用以下

尝试了建议的更改

selectClient.find('[name=client]').trigger('click')

这似乎不适用于UI和UI。 使用UI,我收到以下错误消息

  

Capybara :: NotSupportedByDriverError:Capybara :: Driver :: Node#trigger

如果没有用户界面,则不会触发或选择点击。

我尝试了以下选项,但仍然没有运气,因为所选内容没有点击或没有用户界面选择。

selectClient.find('[name=client]', :visible=> false).trigger('click') selectClient.find('[name=client]', :visible=> false).trigger(':enter') selectClient.find('[name=client]', :visible=> false).trigger(':return') selectClient.find('[name=client]', :visible=> false).send_keys : enter selectClient.find('[name=client]', :visible=> false).native.send_keys : return

我也尝试过将Javascript与下面的代码段一起使用,但似乎没有点击或选择没有用户界面的时候。

page.execute_script('var keyEvent = document.createEventObject ? document.createEventObject() : document.createEvent("Events"); if(keyEvent.initEvent){ keyEvent.initEvent("keydown", true, true); } keyEvent.keyCode = 13; keyEvent.which = 13; document.dispatchEvent ? document.dispatchEvent(keyEvent) : document.fireEvent("onkeydown", keyEvent); document.getElementsByName("client")[0].dispatchEvent(keyEvent);')

我正在使用poltergeist(1.12),capybara(2.6.2),selenuim-webdriver(2.50),黄瓜(> 2.0)

如果需要更多详细信息,请与我们联系。

谢谢。

0 个答案:

没有答案