我正在尝试获取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,alaCapybara::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的一些操作,以尝试填补水豚城未提供的一些空白。这可能吗?例如,我正在尝试测试对...
幻影绝对不是硒+其他。实际上,它的开始更多是结合了Poltergeist和capybara-webkit API。 Apparition实现了Capybara所需的驱动程序API,但未实现任何其他Seleniums API,因此简短的答案是,如果您使用Apparition,则无法访问Selenium操作。
您可能可以通过类似的方法来做您想做的事情