Module: Selenium::WebDriver::Remote::Features
- Defined in:
- lib/selenium/webdriver/remote/features.rb
Constant Summary collapse
- REMOTE_COMMANDS =
{ upload_file: [:post, 'session/:session_id/se/file'], get_downloadable_files: [:get, 'session/:session_id/se/files'], download_file: [:post, 'session/:session_id/se/files'], delete_downloadable_files: [:delete, 'session/:session_id/se/files'], fire_session_event: [:post, 'session/:session_id/se/event'] }.freeze
Instance Method Summary collapse
- #add_commands(commands) ⇒ Object
- #command_list ⇒ Object
- #commands(command) ⇒ Object
- #delete_downloadable_files ⇒ Object
- #download_file(name) ⇒ Object
- #downloadable_files ⇒ Object
-
#fire_session_event(event_type, payload = nil) ⇒ Hash
Fires a custom session event to the remote server event bus.
- #upload(local_file) ⇒ Object
- #upload_if_necessary(keys) ⇒ Object
Instance Method Details
#add_commands(commands) ⇒ Object
32 33 34 |
# File 'lib/selenium/webdriver/remote/features.rb', line 32 def add_commands(commands) @command_list = command_list.merge(commands) end |
#command_list ⇒ Object
36 37 38 |
# File 'lib/selenium/webdriver/remote/features.rb', line 36 def command_list @command_list ||= REMOTE_COMMANDS end |
#commands(command) ⇒ Object
40 41 42 |
# File 'lib/selenium/webdriver/remote/features.rb', line 40 def commands(command) command_list[command] end |
#delete_downloadable_files ⇒ Object
70 71 72 |
# File 'lib/selenium/webdriver/remote/features.rb', line 70 def delete_downloadable_files execute :delete_downloadable_files end |
#download_file(name) ⇒ Object
66 67 68 |
# File 'lib/selenium/webdriver/remote/features.rb', line 66 def download_file(name) execute :download_file, {}, {name: name} end |
#downloadable_files ⇒ Object
62 63 64 |
# File 'lib/selenium/webdriver/remote/features.rb', line 62 def downloadable_files execute :get_downloadable_files end |
#fire_session_event(event_type, payload = nil) ⇒ Hash
Fires a custom session event to the remote server event bus. This allows test code to trigger server-side utilities that subscribe to the event bus.
92 93 94 95 96 |
# File 'lib/selenium/webdriver/remote/features.rb', line 92 def fire_session_event(event_type, payload = nil) params = {eventType: event_type} params[:payload] = payload if payload execute :fire_session_event, {}, params end |
#upload(local_file) ⇒ Object
44 45 46 47 48 49 50 51 52 |
# File 'lib/selenium/webdriver/remote/features.rb', line 44 def upload(local_file) unless File.file?(local_file) WebDriver.logger.error("File detector only works with files. #{local_file.inspect} isn`t a file!", id: :file_detector) raise Error::WebDriverError, "You are trying to upload something that isn't a file." end execute :upload_file, {}, {file: Zipper.zip_file(local_file)} end |
#upload_if_necessary(keys) ⇒ Object
54 55 56 57 58 59 60 |
# File 'lib/selenium/webdriver/remote/features.rb', line 54 def upload_if_necessary(keys) local_files = keys.first&.split("\n")&.filter_map { |key| @file_detector.call(Array(key)) } return keys unless local_files&.any? keys = local_files.map { |local_file| upload(local_file) } Array(keys.join("\n")) end |