1234567891011121314151617181920212223242526272829303132333435363738394041 |
- require 'selenium-webdriver'
-
- module SlackMattermostEmoji
- class SlackClient
- def initialize(username:, password:, domain:)
- @username = username
- @password = password
- @domain = domain
- @authenticated = false
-
- options = Selenium::WebDriver::Chrome::Options.new
- options.headless!
- @driver = Selenium::WebDriver.for :chrome, options: options
-
-
- if [@username, @password, @domain].any? { |el| el.nil? || el.empty? }
- raise 'Slack username, password, and domain are all required'
- end
- end
-
- def authenticate
- @driver.navigate.to "https://#{@domain}"
- @driver.find_element(name: 'email').send_keys(@username)
- @driver.find_element(name: 'password').send_keys(@password)
- @driver.find_element(id: 'signin_btn').click
-
- begin
- @driver.find_element(css: 'p.alert.alert_error')
- raise 'Invalid credentials'
- rescue Selenium::WebDriver::Error::NoSuchElementError
- nil
- end
-
- @authenticated = true
- end
-
- def authenticated?
- @authenticated
- end
- end
- end
|