아직 브라우저 작업을 자동화하지 않았습니까? ?
개요
특히 우선도 높지 않은 것이지만, 일일이 브라우저 조작하고 있는 것이 많이 있어요.
비즈니스직에서도 엔지니어라도 브라우저는 반드시 조작할 것입니다.
Selenium이란?
웹 브라우저를 사용하여 웹 애플리케이션을 테스트하는 도구입니다.
보는 편이 빠르다고 생각하므로 스쿠쇼!
웹 브라우저를 사용하여 웹 애플리케이션을 테스트하는 도구입니다.
보는 편이 빠르다고 생각하므로 스쿠쇼!
구체적으로 무엇을 자동화할 수 있는가?
설치
미리 Chromedriver 다운로드
압축을 푼 $home/bin에 배치
샘플 코드
require 'dotenv'
require 'selenium-webdriver'
# ENVの読み込み
Dotenv.load
QIITA_LOGIN_EMAIL = ENV['QIITA_LOGIN_USER_NAME']
QIITA_LOGIN_PW = ENV['QIITA_LOGIN_PW']
# QIITAのログインページのURL
LOGIN_URL = 'https://qiita.com/'
class QiitaCrawlUser
attr_reader :driver, :target_url
def initialize(target_url)
@target_url = target_url
@driver = Selenium::WebDriver.for :chrome # ここでブラウザ指定
@driver.manage.timeouts.implicit_wait = 10 # 10.seconds
end
def like
login
puts "like start"
driver.navigate.to target_url
parent_classes = driver.find_elements(:class => "likable")[0].attribute('class')
return if parent_classes.split(" ")[2] == 'liked'
driver.execute_script "document.getElementsByClassName('likable')[0].children[1].click();"
driver.quit
end
private
def login
puts "login start"
driver.navigate.to LOGIN_URL #ログイン画面に繊維
driver.find_element(:name, 'identity').send_keys(QIITA_LOGIN_EMAIL)
driver.find_element(:name, 'password').send_keys(QIITA_LOGIN_PW)
driver.find_element(:name, 'commit').click
end
end
article_url = "https://qiita.com/tomerun/items/9cb81d7a98150ff22f53"
QiitaCrawlUser.new(article_url).like
조합하면 편리 Slack
나는 gem의 'slack-ruby-client'를 사용하여 Slack에 게시하는 것이 좋네요.
자동화했을 때에 감시나 인지는 필수이므로. . .
트위터에서 특정 단어를 가져오거나 API를 사용하여 즐거운 시간에 자주 사용합니다.
require 'slack-ruby-client'
Slack.configure do |config|
config.token = ENV['SLACK_API_TOKEN']
end
slack_oauth = Slack::Web::Client.new
slack_oauth.chat_postMessage(channel: '#times_watch_twitter', text: '送りたいメッセージ', unfurl_links: true, as_user: true)
unfurl_links: true로 하면 링크가 전개되게 되므로, 링크만 보내는 용도는 자주 사용합니다.
마지막으로
하기 때문에 전부 자동화하는 것이 좋고.
인간이하지 않아도되는 것은 자동화합시다!
Reference
이 문제에 관하여(아직 브라우저 작업을 자동화하지 않았습니까? ?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/onigirimantarou/items/1a8d0859b69dc74578e1
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
require 'dotenv'
require 'selenium-webdriver'
# ENVの読み込み
Dotenv.load
QIITA_LOGIN_EMAIL = ENV['QIITA_LOGIN_USER_NAME']
QIITA_LOGIN_PW = ENV['QIITA_LOGIN_PW']
# QIITAのログインページのURL
LOGIN_URL = 'https://qiita.com/'
class QiitaCrawlUser
attr_reader :driver, :target_url
def initialize(target_url)
@target_url = target_url
@driver = Selenium::WebDriver.for :chrome # ここでブラウザ指定
@driver.manage.timeouts.implicit_wait = 10 # 10.seconds
end
def like
login
puts "like start"
driver.navigate.to target_url
parent_classes = driver.find_elements(:class => "likable")[0].attribute('class')
return if parent_classes.split(" ")[2] == 'liked'
driver.execute_script "document.getElementsByClassName('likable')[0].children[1].click();"
driver.quit
end
private
def login
puts "login start"
driver.navigate.to LOGIN_URL #ログイン画面に繊維
driver.find_element(:name, 'identity').send_keys(QIITA_LOGIN_EMAIL)
driver.find_element(:name, 'password').send_keys(QIITA_LOGIN_PW)
driver.find_element(:name, 'commit').click
end
end
article_url = "https://qiita.com/tomerun/items/9cb81d7a98150ff22f53"
QiitaCrawlUser.new(article_url).like
조합하면 편리 Slack
나는 gem의 'slack-ruby-client'를 사용하여 Slack에 게시하는 것이 좋네요.
자동화했을 때에 감시나 인지는 필수이므로. . .
트위터에서 특정 단어를 가져오거나 API를 사용하여 즐거운 시간에 자주 사용합니다.
require 'slack-ruby-client'
Slack.configure do |config|
config.token = ENV['SLACK_API_TOKEN']
end
slack_oauth = Slack::Web::Client.new
slack_oauth.chat_postMessage(channel: '#times_watch_twitter', text: '送りたいメッセージ', unfurl_links: true, as_user: true)
unfurl_links: true로 하면 링크가 전개되게 되므로, 링크만 보내는 용도는 자주 사용합니다.
마지막으로
하기 때문에 전부 자동화하는 것이 좋고.
인간이하지 않아도되는 것은 자동화합시다!
Reference
이 문제에 관하여(아직 브라우저 작업을 자동화하지 않았습니까? ?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/onigirimantarou/items/1a8d0859b69dc74578e1
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
require 'slack-ruby-client'
Slack.configure do |config|
config.token = ENV['SLACK_API_TOKEN']
end
slack_oauth = Slack::Web::Client.new
slack_oauth.chat_postMessage(channel: '#times_watch_twitter', text: '送りたいメッセージ', unfurl_links: true, as_user: true)
하기 때문에 전부 자동화하는 것이 좋고.
인간이하지 않아도되는 것은 자동화합시다!
Reference
이 문제에 관하여(아직 브라우저 작업을 자동화하지 않았습니까? ?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/onigirimantarou/items/1a8d0859b69dc74578e1텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)