Class: TranslatePage
- Inherits:
-
Object
- Object
- TranslatePage
- Defined in:
- lib/translate_page.rb
Instance Method Summary collapse
-
#first_request(url, browser) ⇒ Object
First request.
-
#get_iframe_html(browser) ⇒ Object
Get iframe.
-
#initialize(urls, requests) ⇒ TranslatePage
constructor
A new instance of TranslatePage.
-
#nth_request(url, browser) ⇒ Object
Next request.
-
#setup_browser ⇒ Object
Setup browser for translate.
-
#translate ⇒ Object
Translate the pages.
Constructor Details
#initialize(urls, requests) ⇒ TranslatePage
Returns a new instance of TranslatePage.
6 7 8 9 10 |
# File 'lib/translate_page.rb', line 6 def initialize(urls, requests) @urls = urls @requests = requests @output = Array.new end |
Instance Method Details
#first_request(url, browser) ⇒ Object
First request
19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/translate_page.rb', line 19 def first_request(url, browser) # Enter URL into translate form translate_form = browser.find_element(id: "source") translate_form.send_keys(url) # Click the button to translate to a particular language = browser.find_elements(:xpath, "//*[@value='es']").last .click # Press Translate button, then switch back to orginal browser.find_element(id: "gt-submit").click end |
#get_iframe_html(browser) ⇒ Object
Get iframe
66 67 68 69 70 71 72 73 74 |
# File 'lib/translate_page.rb', line 66 def get_iframe_html(browser) sleep(3) browser.find_element(id: "anno2").click # Get HTML inside the iframe browser.switch_to.frame(0) iframe_html = browser.find_element(class: "os-linux").attribute("innerHTML") return iframe_html end |
#nth_request(url, browser) ⇒ Object
Next request
33 34 35 36 37 38 39 |
# File 'lib/translate_page.rb', line 33 def nth_request(url, browser) browser.switch_to.default_content form_element = browser.find_element(name: "q") form_element.clear form_element.send_keys(url) form_element.submit end |
#setup_browser ⇒ Object
Setup browser for translate
13 14 15 16 |
# File 'lib/translate_page.rb', line 13 def setup_browser @requests.get_page("https://translate.google.com") return @requests.get_most_recent_browser[1][0] end |
#translate ⇒ Object
Translate the pages
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
# File 'lib/translate_page.rb', line 42 def translate browser = setup_browser # Go through each link counter = 0 @urls.each do |url| # Run translate on each page if counter == 0 first_request(url, browser) counter+=1 else nth_request(url, browser) end # Get html @output.push({url: url, html: get_iframe_html(browser)}) end # Clean up @requests.close_all_browsers return @output end |