小编the*_*lus的帖子

按数据属性查找元素

我正在改进我的测试,RSpeccapybara-webkit试图删除所有cssxpath选择器之类的

find('#edit_user > div:nth-child(7) > div > div > button').click
Run Code Online (Sandbox Code Playgroud)

我正在寻找替代它们的最佳选择.

我打算使用css class元素,但一些"专业"水豚测试人员说这不是最好的选择.

所以我的问题是:我可以data在测试中使用这些属性吗?
如果我有一个元素

<button name="button" type="submit" class="button last" data-test="edit.update">Update/button>
Run Code Online (Sandbox Code Playgroud)

我能做到吗?

find('edit.update').click
Run Code Online (Sandbox Code Playgroud)

你觉得这是个好主意吗?如果您对此主题有更多想法/信息,请随时发表评论!

testing rspec ruby-on-rails capybara capybara-webkit

18
推荐指数
2
解决办法
2万
查看次数

何时选择系统测试而不是集成测试Rails 5.1?

随着Rails 5.1的发布,它们包括了系统测试.这意味着我们也可以在Rails中测试我们的JavaScript.我看到Rails指南解释了以两种方式创建文章的示例测试:通过系统测试和集成测试.

现在问题是:在Rails 5.1之前,我在集成测试中编写了复杂的测试用例.但现在我有两个选项来编写测试用例.我可以写测试用例

test: should create article
Run Code Online (Sandbox Code Playgroud)

在集成测试中,我也可以在系统测试中编写相同的测试用例.

那么我何时应该选择系统测试来编写测试用例以及何时选择集成测试?

testing integration-testing ruby-on-rails acceptance-testing capybara

17
推荐指数
2
解决办法
2537
查看次数

除了一个之外的所有测试之前(:每个)

这是我的一部分spec_helper.rb:

RSpec.configure do |config|

 config.before(:each) do
  login(email, password)
  visit root_url
 end

end
Run Code Online (Sandbox Code Playgroud)

我需要的所有(20+)测试除了一个.

有没有办法避免单个测试执行before hook

ruby testing rspec ruby-on-rails capybara

10
推荐指数
2
解决办法
3597
查看次数

使用无头 Chrome 将 URL 列入黑名单

我试图阻止我的规范中的 URL,实现了我在使用时所做的事情capybara_webkit

Capybara::Webkit.configure do |config|
  config.block_url("*google*")
  config.allow_url('*my_website.com')
end
Run Code Online (Sandbox Code Playgroud)

阅读本文后,我尝试执行以下操作:

require 'webmock/rspec'

module WebmockConfig
  def self.default_disabled_urls
    [
      '*google*'
    ]
  end
end

WebMock.disable_net_connect!(allow_localhost: true)
WebMock.disable_net_connect!(allow: WebmockConfig.default_disabled_urls)
Run Code Online (Sandbox Code Playgroud)

但我得到

禁用真正的 HTTP 连接。未注册的请求:POST http://127.0.0.1/session

即使那应该由WebMock.disable_net_connect!(allow_localhost: true).

在没有 的情况下运行规范时WebMock.disable_net_connect!(allow: WebmockConfig.default_disabled_urls),一切正常。

ruby testing rspec capybara webmock

7
推荐指数
1
解决办法
1886
查看次数

按需重新加载UITabBarController

我有以下带有2个项目的TabBarController。显示正确。

setupItems()something更改其值时,我正在从另一个控制器调用该函数。

该函数已正确调用,问题navFirstController.tabBarItem.image是未更新。

class TabBarController: UITabBarController {

  override func viewDidLoad() {
    super.viewDidLoad()
    setupItems()
  }

  func setupItems() {
    let scale: CGFloat = 0.35
    let navFirstController = UINavigationController(rootViewController: FirstController())

    let navSecondController = UINavigationController(rootViewController: SecondController())
    navSecondController.tabBarItem.image = UIImage.scale(image: UIImage(named: "image2")!, by: scale)
    navSecondController.tabBarItem.imageInsets = UIEdgeInsets(top: 8, left: 0, bottom: -8, right: 0)

    if something == true {
      navFirstController.tabBarItem.image = UIImage.scale(image: UIImage(named: "image1")!, by: scale)
    } else {
      navFirstController.tabBarItem.image = UIImage.scale(image: UIImage(named: "image3")!, by: scale)
    }

    navFirstController.tabBarItem.imageInsets = UIEdgeInsets(top: …
Run Code Online (Sandbox Code Playgroud)

uitabbarcontroller uiviewcontroller ios swift swift5

7
推荐指数
1
解决办法
176
查看次数

如何在spec_helper.rb中为Capybara Webkit设置ignore_ssl_errors选项

在我的spec_helper文件中,我有:

  Capybara.javascript_driver = :webkit
Run Code Online (Sandbox Code Playgroud)

capybara_webkit现在有一个ignore_ssl_errors我想要使​​用的选项.如何在spec_helper中指定?

integration-testing ruby-on-rails capybara

5
推荐指数
1
解决办法
3266
查看次数

单个测试的 Capybara 配置

我试图

describe "test", :js => true do
 it "test" do

  Capybara.default_max_wait_time = 3
  Capybara::Webkit.configure do |config|
   config.allow_unknown_urls
  end

  my test
 end
 it "test2" do
  ...
 end
end
Run Code Online (Sandbox Code Playgroud)

替换我在 spec_helper 中的水豚配置仅用于单个测试,但我收到错误“所有配置必须在驱动程序启动之前进行”。

这是我的spec_helper

   Capybara.run_server = false
   Capybara.default_max_wait_time = 1
   Capybara.javascript_driver = :webkit_with_qt_plugin_messages_suppressed

   Capybara::Webkit.configure do |config|
    config.block_unknown_urls
   end

   RSpec.configure do |config|
    config.include Capybara::DSL
   end
Run Code Online (Sandbox Code Playgroud)

有办法做到吗?

ruby rspec ruby-on-rails capybara capybara-webkit

5
推荐指数
1
解决办法
1347
查看次数

使用 headless_chrome 模拟设备

我正在尝试在运行我的规范时模拟不同的设备,但目前没有结果。

#spec_helper

require 'rspec'
require 'capybara'
require 'capybara/rspec'
require 'selenium/webdriver'

Capybara.register_driver :headless_chrome do |app|
 Capybara::Selenium::Driver.load_selenium
 browser_options = ::Selenium::WebDriver::Chrome::Options.new
 browser_options.args << '--headless'

 mobile_emulation = { "deviceName" => "iPhone 8" }
 capabilities = Selenium::WebDriver::Remote::Capabilities.chrome(
   "chromeOptions" => { "mobileEmulation" => mobile_emulation }
 )

 Capybara::Selenium::Driver.new(app, browser: :chrome, options: browser_options, desired_capabilities: capabilities)
end
Run Code Online (Sandbox Code Playgroud)

我应该mobile_emulation在选项中包含该部分而不是功能吗?

ruby rspec headless-browser capybara selenium-chromedriver

5
推荐指数
1
解决办法
1247
查看次数

在大写字母上拆分字符串,但如果前面有空格则不会

我有一个看起来像的字符串

"AaaBbbCcc DddEee"

我正在分裂它

my_string.scan(/[A-Z][a-z]+/)
Run Code Online (Sandbox Code Playgroud)

结果是

["Aaa","Bbb","Ccc","Ddd","Eee"]

我想要实现的是,如果大写字母前面有一个空格,则不拆分字符串,因此结果看起来像

["Aaa","Bbb","Ccc Ddd","Eee"]

ruby regex string

3
推荐指数
1
解决办法
402
查看次数

显示数据的可扩展UITableView单元格

我有一些按年份编目的运动比赛,每场比赛我都有最终结果,比赛日期和得分手.

我在'Table View'中显示这些匹配,如下所示:

在此输入图像描述

所以我想要实现的是:当点击一个单元格时,显示匹配的详细信息,如图所示.

我还发现了一些库来实现手风琴/可扩展的风格,但是没有人能做到这一点.他们只是扩展细胞并显示另一个细胞.

objective-c accordion expandable uitableview ios

2
推荐指数
1
解决办法
889
查看次数

单一规格持续时间

RSpec中是否有一种方法可以显示每个测试持续时间而不仅仅是总套件持续时间?

现在我们有

完成时间为7分31秒(文件加载时间为4.71秒)

但我想有类似的东西

User accesses home and
 he can sign up (finished in 1.30 seconds)
 he can visit profile (finished in 3 seconds)
 .
 .
 .
Finished in 7 minutes 31 seconds (files took 4.71 seconds to load)
Run Code Online (Sandbox Code Playgroud)

ruby rspec ruby-on-rails capybara

1
推荐指数
1
解决办法
49
查看次数

有没有办法在Capybara中按文字查找任何元素?

我想在我的页面上找到任何带有给定文本的元素,但是当我将它传递给没有元素的查找时,它会给我一个错误

find(material.attachment_filename) #material.attachment_filename is "01. pain killer.mp3"
Run Code Online (Sandbox Code Playgroud)

但如果我这样做:

find('a',text: material.attachment_filename)
Run Code Online (Sandbox Code Playgroud)

它工作正常,给定的错误是:

硒:: webdriver的::错误:: InvalidSelectorError:

给定css选择器表达式"01. pain killer.mp3"无效:SyntaxError:指定了无效或非法字符串

selenium automated-tests capybara

0
推荐指数
1
解决办法
2373
查看次数