Cucumber/Capybara 从特定 Class 中选择按钮?
Cucumber/Capybara Selecting Button from Specific Class?
所以我 运行 遇到了一个问题,我正在尝试单击一个按钮...不幸的是它具有相同的文本(IE 页面上有 2 个按钮具有相同的文本,基本上是保存按钮)
假设按钮文本只是 "Save"。
我确实注意到他们有不同的 classes。
<button data-action="submit" class="btn btn-primary btn-save">Save</button>
而另一个按钮是:
<button name="button" type="submit" class="btn btn-primary set-right">
<i class="glyphicon glyphicon-floppy-disk"></i> Save
</button>
我知道 glypicon 只是一个图标集....但它们似乎属于同一个 class?但有不同的 class 名字? (抱歉我不熟悉Rails)
老实说,我 select 选择哪一个并不重要,因为它们都具有相同的功能。我见过在哪里可以使用 xpath?但是我们现在不应该使用 css select 或其他东西吗? (这是最新的方式吗?)我可能是错的....
我可以使用类似的东西吗:
find(:xpath, '//button[@class="btn-save"]').click
我试图避免仅 "rails" 的解决方案,因为并非我测试的所有网站都基于 rails。
你有多种可能性:
1) 通过class
找到按钮
find(button.btn.btn-primary.btn-save).click
2) 通过 css 选择器 或 xpath 找到按钮(您可以使用 Google Chrome: 右键单击 -> 检查 -> 右键单击你的元素 -> 复制 css 或 xpath)
find(:css, "your button css selector").click
find(:xpath, "your button xpath").click
如果两个按钮确实做同样的事情,那么你总是可以这样做
first(:button, 'Save', minimum: 1).click
与使用 xpath 选择器相比,随着页面结构的变化,它更不容易损坏。 minimum:1 选项只会让 #first 稍等片刻,直到至少有一个按钮出现在页面上(就像 find 那样)——这可能不是必需的,具体取决于您的测试结构
所以我 运行 遇到了一个问题,我正在尝试单击一个按钮...不幸的是它具有相同的文本(IE 页面上有 2 个按钮具有相同的文本,基本上是保存按钮)
假设按钮文本只是 "Save"。
我确实注意到他们有不同的 classes。
<button data-action="submit" class="btn btn-primary btn-save">Save</button>
而另一个按钮是:
<button name="button" type="submit" class="btn btn-primary set-right">
<i class="glyphicon glyphicon-floppy-disk"></i> Save
</button>
我知道 glypicon 只是一个图标集....但它们似乎属于同一个 class?但有不同的 class 名字? (抱歉我不熟悉Rails)
老实说,我 select 选择哪一个并不重要,因为它们都具有相同的功能。我见过在哪里可以使用 xpath?但是我们现在不应该使用 css select 或其他东西吗? (这是最新的方式吗?)我可能是错的....
我可以使用类似的东西吗:
find(:xpath, '//button[@class="btn-save"]').click
我试图避免仅 "rails" 的解决方案,因为并非我测试的所有网站都基于 rails。
你有多种可能性:
1) 通过class
找到按钮find(button.btn.btn-primary.btn-save).click
2) 通过 css 选择器 或 xpath 找到按钮(您可以使用 Google Chrome: 右键单击 -> 检查 -> 右键单击你的元素 -> 复制 css 或 xpath)
find(:css, "your button css selector").click
find(:xpath, "your button xpath").click
如果两个按钮确实做同样的事情,那么你总是可以这样做
first(:button, 'Save', minimum: 1).click
与使用 xpath 选择器相比,随着页面结构的变化,它更不容易损坏。 minimum:1 选项只会让 #first 稍等片刻,直到至少有一个按钮出现在页面上(就像 find 那样)——这可能不是必需的,具体取决于您的测试结构