水豚,可以使用硒行动吗?

问题描述 投票:0回答:1

我正在尝试获取Selenium的一些操作,以尝试填补水豚城未提供的一些空白。这可能吗?

例如,我试图测试单击并拖动动作以模拟用户在图像上选择裁剪区域,但是据我所知,在Capybara中不存在功能类型。但是,它似乎确实存在于Selenium Webdriver本身(as outlined here)中,但是我似乎找不到合适的方法/语法结构来发挥作用。

注意:我目前将Rails 6和Capybara与Apparition驱动程序配合使用。据我所知,幻影被设计为硒+多余物。这就是为什么我要特别询问硒的原因,如果可以解决我的问题,我可以改回它。

到目前为止,我的理解是可以使用page.driver在系统测试* .rb文件中访问驱动程序方法,>

cropper_canvas = find('.cropper-canvas')
x_offset = 20
y_offset = 20
page.driver.browser.drag_and_drop_by(cropper_canvas, x_offset, y_offset)

我也尝试过使用]重新创建单击并拖动

page.driver.browser.click_and_hold(cropper_canvas).move_by_offset(x_offset, y_offset).release

但是这些方法都没有通过。我怀疑这与以下事实有关:活动的page.driver不是“ true” Selenium::Webdriver,而是包含在Capybara,ala Capybara::Selenium::Driver

在Rails系统测试中,我可以做些与硒相关的方法/操作吗?如果不在Capybara上使用,那么还有其他方法可以尝试吗?

谢谢您的帮助或见解!我现在正在学习系统测试,因此,如果我没有正确提及事情或让我的思路有点交叉,我深表歉意。

test_helper.rb

require_relative '../config/environment'
require 'rails/test_help'
...
require 'capybara/rails'
require 'capybara/minitest'
require 'capybara-screenshot/minitest'
require 'capybara/apparition'
...
Capybara.default_driver = :selenium_chrome
Capybara.javascript_driver = :apparition

Capybara.register_driver :apparition do |app|
  size = [1366,768]
  options = {
    headless: false,
    windows_size: size,
    screen_size: size,
    timeout: 10,
  }

  Capybara::Apparition::Driver.new(app, options)
end
...
Class ActionDispatch::IntegrationTest
  ...
  include Capybara::DSL
  include Capybara::Minitest::Assertions
end

我正在尝试获取Selenium的一些操作,以尝试填补水豚城未提供的一些空白。这可能吗?例如,我正在尝试测试对...

ruby-on-rails selenium-webdriver capybara apparition
1个回答
0
投票

幻影绝对不是硒+其他。实际上,它的开始更多是结合了Poltergeist和capybara-webkit API。 Apparition实现了Capybara所需的驱动程序API,但未实现任何其他Seleniums API,因此简短的答案是,如果您使用Apparition,则无法访问Selenium操作。

您可能可以通过类似的方法来做您想做的事情

© www.soinside.com 2019 - 2024. All rights reserved.