首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >测试将用户放入一个带有capybara的表html,并期望得到一个xpath

测试将用户放入一个带有capybara的表html,并期望得到一个xpath
EN

Stack Overflow用户
提问于 2018-07-04 04:04:00
回答 1查看 329关注 0票数 0

在我的视图ruby on rails 5.1中有一个用户表,它是这样的:

代码语言:javascript
复制
<table id="users" class="table table-bordered">
  <thead>
    <tr>
      <th></th>
      <th>ID</th>
      <th>Nombre</th>
      <th>Apellidos</th>
      <th>Correo electrónico</th>
      <th colspan="2">Registro</th>
    </tr>
  </thead>
  <tbody>
    <% @users.each do |user| %>
      <tr>
        <td>i</td>
        <td><%= user.id %></td>
        <td><%= user.name %></td>
        <td><%= user.last_name %></td>
        <td><%= user.email %></td>
        <td><%= user.created_at.hour %>:<%= user.created_at.min%> hrs.</td>
        <td><%= user.created_at.to_date %></td>
      </tr>
    <% end %>
  </tbody>
</table>

情况是,我正在使用capybara、rspec和factorybot进行测试,我需要测试我正在创建10个用户并将其添加到表中,之后我将为我的测试使用xpath,如下所示:

代码语言:javascript
复制
 scenario 'admin view users' do
    visit admin_users_path
    users = create_list(:user, 10)
    expect(page).to have_xpath('//*[@id="users"]/tbody/tr/td[5]', text: "#{users.first.email}" )
  end 

问题是我收到了一个关于expect的错误,我的假设是xpath是正确的,但是有一些东西无法写入或测试表中的用户。

我的问题是:

例如,当我创建10个用户(例如)时,如何运行测试,然后将其添加到表中,以获得正确的xpath?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-04 04:27:23

我找到了解决方案:

显然,我是在访问页面之后创建用户的,所以视图永远不会收到数据。我可以通过更改创建用户的顺序来解决这个问题,然后访问页面,然后我就可以正确地使用xpath了。

代码语言:javascript
复制
scenario 'admin view users' do
   users = create_list(:user, 10)
   visit admin_users_path
   expect(page).to have_xpath('//*[@id="users"]/tbody/tr/td[5]', text: "#{users.first.email}" )
end 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51162116

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档