Cucumber/Capybara Selecting Button from Specific Class?

感情迁移 提交于 2019-12-20 02:59:07

问题


So i've ran into an issue, im trying to click a button...which unfortunately has the same text (IE there are 2 buttons on the page which the same text, basically a save button)

Lets pretend the button text is just "Save".

I did notice that they had different classes.

<button data-action="submit" class="btn btn-primary btn-save">Save</button>

whereas the other button is:

<button name="button" type="submit" class="btn btn-primary set-right">
      <i class="glyphicon glyphicon-floppy-disk"></i> Save
</button>

I know glypicon is just an icon set....but they both seem to belong to the same class? but have different class names? (Sorry im not familiar with Rails)

It doesn't honestly matter which one I select as they both have the same function. I've seen where you can use xpath? but aren't we supposed to use css selectors or something now? (As in thats the newest way?) I may be wrong....

Could I use something like:

find(:xpath, '//button[@class="btn-save"]').click

Im trying to avoid "rails" only solutions, as not all the websites I test on are rails based.


回答1:


You have various possibilities:

1) Find the button by its class

find(button.btn.btn-primary.btn-save).click

2) Find the button by its css selector or xpath (you can copy them using Google Chrome: right click -> Inspect -> right click on your element -> copy css or xpath)

find(:css, "your button css selector").click

find(:xpath, "your button xpath").click



回答2:


If both buttons really do the same thing then you could always just do

first(:button, 'Save', minimum: 1).click

which will be less prone to breakage as your page structure changes than using an xpath selector. The minimum:1 option will just make #first wait a bit until at least one button is on the page (like find would) - it may not be necessary depending on your test structure



来源:https://stackoverflow.com/questions/34318242/cucumber-capybara-selecting-button-from-specific-class

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!