当前位置: 首页 > 面试题库 >

使用Selenium作为WebDriver进行Rails集成测试-无法sign_in

孙承弼
2023-03-14
问题内容

嗨,
我有一个非常简单的集成测试

require 'integration_test_helper'
Capybara.current_driver = :rack_test

class AdminSignsInTest < ActionDispatch::IntegrationTest

  test 'can sign in' do
    email = 'bob@example.com'
    password = 'secret_password'
    Admin.create email: email, password: password

    visit new_admin_session_path
    fill_in 'admin_email', with: email
    fill_in 'admin_password', with: password

    click_button I18n.t('devise.views.sign_in')

    assert_equal I18n.t('devise.sessions.signed_in'), find('p.notice').text
  end
end

当我将Capybara驱动程序设置为rack_test测试通过时,但是当我将其设置为时selenium,它将失败,并显示“电子邮件或密码无效”。在登录页面上(我正在使用Devise)。我究竟做错了什么?


问题答案:

当我将Capybara驱动程序设置为rack_test时,测试通过,但是当我将其设置为硒时,它将失败,并显示“无效的电子邮件或密码”。在登录页面上(我正在使用Devise)。我究竟做错了什么?

您必须检查一下use_transactional_fixtures。使用事务性固定装置时,因为Selenium(或任何 外部
驱动程序,不是Rack::Test)无法访问已写入数据库的信息。(因为交易尚未“提交”)

您可以通过以下方法在自己的内部解决此问题test_helper.rb

class ActionDispatch::IntegrationTest
  self.use_transactional_fixtures = false
end

您可能希望同时查看诸如Database
Cleaner之类的内容
,因为如果没有事务处理固定装置,数据库将变得不整洁。



 类似资料:
  • 问题内容: 我有一个文本框,当我输入一个字母说“ s”时,它会显示结果列表(例如google搜索)。 我正在使用带有Java的最新Selenium Webdriver。 我努力了 即使在每个步骤之后都添加了等待,这些都不起作用。 有什么建议? 谢谢。 更新:- 更新2:- 更新3:-我尝试使用Selenium 1,fireevent方法通过将参数作为’keydown’传递而起作用。目前,这应该是一

  • 我有一个页面,需要使用Selenium网络驱动程序自动化。 我的页面HTML(由火虫检查): 在这里,我尝试了然后。尝试逐个索引,帧名称,Xpath,类名,名称找到帧,但都是徒劳的。 我的驱动程序无法找到父框架,因此无法找到其中的任何元素。请帮我解决这个问题。

  • 问题陈述:我有一个“成功登录网页”的简单测试。此测试将使用100个不同的用户名和密码进行。要求是测试应该同时使用100个用户名访问服务器。 信息:我们是否必须使用selenium grid或RC或简单的WebDriver,我们可以自由使用任何。读取用户名 这可能吗? 我们如何才能实现这一点?

  • 我是TestNG框架的新手。请指导如何使用Apache POI(Excel)参数化测试用例。

  • 我正在尝试将Spring Boot应用程序的一些集成测试从迁移到。目前,测试使用的是 当测试运行时,被配置为使用与服务器运行时相同的基本URL和(随机选择的)端口。 在我的一个测试中,我登录并保存authorization-response头值,以便在后续的API调用中使用。我试着将它迁移到,就像这样 但是当我像这样创建实例时,它没有配置为使用与应用程序相同的端口。 我尝试使用的依赖注入实例 这确