quora-webdriver 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d4ba97b73dcd575196ceb622bb13ec6437928a93
4
- data.tar.gz: b44de6639dffddfe14802de2bd9a66ebda977e74
3
+ metadata.gz: 38e02b93497d477bd00e52f236109b707f4658bc
4
+ data.tar.gz: 16b28115a48f4151fdf2a4efc45d10599e85d587
5
5
  SHA512:
6
- metadata.gz: 6a2afc9cc7d7d3d62ef9211a4c66f939abf0b08eb977504cd40384771e0ba190bd3230a2e149f99fde288a0340169aa3bd8095cde4bd0dc67aa1b9d47255bfe2
7
- data.tar.gz: 1357c859d16217a3de472de301f532fd44ed99f7a7bdc923967213dc763e029240855dab429757fb20911db82171b7a03350fa3f1bc27eeb5fe88d6615e683ec
6
+ metadata.gz: eb752d4a455bb8e0b74fe7132ad292445bde00bb4dab9f42527874fef43745602b53c31852303483db49133bda70b92672bd33f03c1f1a641b895d8840eb1f59
7
+ data.tar.gz: b90db238e482530912ce0714d439bf583aaddcdc052f15d5327daaf9aa82cba196c1ab82b3190b19b93e140abede427c5719b91691fbdb5706d7d6e63d523b0b
data/.gitignore CHANGED
@@ -12,3 +12,4 @@
12
12
  *.o
13
13
  *.a
14
14
  mkmf.log
15
+ *.gem
data/.travis.yml CHANGED
@@ -1,7 +1,12 @@
1
1
  language: ruby
2
2
  rvm:
3
- - 2.1.4
4
- before_install:
5
- - "export DISPLAY=:99.0"
6
- - "sh -e /etc/init.d/xvfb start"
7
-
3
+ - 2.1.4
4
+ addons:
5
+ sauce_connect: true
6
+ env:
7
+ global:
8
+ - secure: gfxUSYcEBbqinazH0kCSvPYNvCeRz25CiGvIKvbdJCuOTsu+umIVBvUSvkH2OQ4806KHFXnIxFb2qVTUM07H5MHt5t1+g8SJkrND0+puHoJE0sesw/3H9jUj7O3wLbYejeteIe1maPSL8K38oT0BeCBXzfM530lTmUuvO+6g4E8=
9
+ - secure: L0CPB1Wzaq5x2nFO4nP5vE0UD+ApLeABs4g2BrwgEWV7MY2la9smPiPWJS0mJ3OpqYJDMo+8gAX/SnoZ0+/K4tPPqtJK2v4kp136Lu7gVzUcZgrUqZTUBjzgmppkvH6Ybafx8BCPRDK8MolP00tB9HCU3uFohfmLtpK9ppW/rvs=
10
+ matrix:
11
+ - BROWSER='chrome:38.0:Mac 10.9'
12
+ - BROWSER='chrome:38.0:Mac 10.8'
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
- # Watir::Browser::Quora
1
+ # Watir::Browser::Quora [![Build Status](https://travis-ci.org/kratsg/quora-webdriver.svg?branch=master)](https://travis-ci.org/kratsg/quora-webdriver) [![Gem Version](https://badge.fury.io/rb/quora-webdriver.svg)](http://badge.fury.io/rb/quora-webdriver)
2
2
 
3
- TODO: Write a gem description
3
+ Interact with Quora via Command Line! This is an extension of [watir-webdriver](https://github.com/watir/watir-webdriver) by providing `browser.quora` options operating on a browser. **Caveat**: seems to only work with the Chromedriver (see [#usage](#usage) below).
4
4
 
5
5
  ## Installation
6
6
 
@@ -20,11 +20,23 @@ Or install it yourself as:
20
20
 
21
21
  ## Usage
22
22
 
23
- TODO: Write usage instructions here
23
+ You can get started up and easily using the `chromedriver`
24
+ - https://sites.google.com/a/chromium.org/chromedriver/
25
+ - http://brewformulas.org/Chromedriver
26
+
27
+ ```
28
+ require 'quora-webdriver'
29
+ b = Watir::Browser.new :chrome
30
+ b.quora.content :answers
31
+ ```
32
+
33
+ ## Reporting Issues
34
+ [File an issue.](https://github.com/kratsg/quora-webdriver/issues/new)
24
35
 
25
36
  ## Contributing
37
+ There are not a lot of features added yet. This is to get started and I welcome others to help flesh this out more. Contact [Giordon Stark](https://github.com/kratsg) with requests or on [Quora](https://www.quora.com/Giordon-Stark/).
26
38
 
27
- 1. Fork it ( https://github.com/[my-github-username]/quora-webdriver/fork )
39
+ 1. Fork it ( https://github.com/kratsg/quora-webdriver/fork )
28
40
  2. Create your feature branch (`git checkout -b my-new-feature`)
29
41
  3. Commit your changes (`git commit -am 'Add some feature'`)
30
42
  4. Push to the branch (`git push origin my-new-feature`)
@@ -10,10 +10,6 @@ module Watir
10
10
  @browser = browser
11
11
  @base_url = "https://www.quora.com/"
12
12
  @logged_in = false
13
- @email_box_selector = {:name=>"email", :class=>/header_login_text_box/}
14
- @password_box_selector = {:name=>"password", :class=>/header_login_text_box/}
15
- @login_button_selector = {:value=>"Login"}
16
- @add_question_selector = {:class=>/inner/, :text=>/Add Question/}
17
13
  end
18
14
 
19
15
  def user
@@ -24,6 +20,22 @@ module Watir
24
20
  @user.to_s.gsub("_","-")
25
21
  end
26
22
 
23
+ def get_login_email_text
24
+ @browser.text_field({:name=>"email", :class=>/header_login_text_box/})
25
+ end
26
+
27
+ def get_login_password_text
28
+ @browser.text_field({:name=>"password", :class=>/header_login_text_box/})
29
+ end
30
+
31
+ def get_login_submit_button
32
+ @browser.button({:value=>"Login"})
33
+ end
34
+
35
+ def get_add_question_div
36
+ @browser.div({:class=>/inner/, :text=>/Add Question/})
37
+ end
38
+
27
39
  def login(choice='0')
28
40
  return @logged_in if @logged_in
29
41
  until ['1', '2'].include?(choice)
@@ -36,15 +48,15 @@ module Watir
36
48
  when '2'
37
49
  email = ask("Enter email: "){ |x| x.echo = true }
38
50
  password = ask("Enter password: "){ |x| x.echo = "*" }
39
- email_box = @browser.text_field(@email_box_selector)
40
- password_box = @browser.text_field(@password_box_selector)
51
+ email_box = get_login_email_text
52
+ password_box = get_login_password_text
41
53
  unless email_box.exist? and password_box.exist? then
42
54
  puts "There was an error getting the login boxes. Please login manually. Report this error to someone important."
43
55
  self.login('1')
44
56
  end
45
57
  email_box.set email
46
58
  password_box.set password
47
- @browser.button(@login_button_selector).click
59
+ get_login_submit_button.click
48
60
  end
49
61
 
50
62
  self.verify_login
@@ -55,7 +67,7 @@ module Watir
55
67
  login_count_checks = 0
56
68
  until @logged_in || (login_count_checks >= 60) do
57
69
  puts "\t Checking if logged in"
58
- @logged_in = @browser.div(@add_question_selector).exists?
70
+ @logged_in = get_add_question_div.exists?
59
71
  login_count_checks+=1
60
72
  sleep 1
61
73
  end
@@ -77,6 +89,11 @@ module Watir
77
89
  end
78
90
  end
79
91
 
92
+ def home
93
+ @url = "#{@base_url}"
94
+ self.goto :login
95
+ end
96
+
80
97
  def answers
81
98
  @url = "#{@base_url}#{self.stringify}/answers?share=1"
82
99
  self.goto
@@ -1,7 +1,7 @@
1
1
  module Watir
2
2
  class Browser
3
3
  class Quora
4
- VERSION = "0.1.0"
4
+ VERSION = "0.1.2"
5
5
  end # Quora
6
6
  end # Browser
7
7
  end # Watir
@@ -0,0 +1,159 @@
1
+ <!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head><script src="https://apis.google.com/_/scs/apps-static/_/js/k=oz.gapi.en_US.6Ad9kPROHSg.O/m=client,plusone/rt=j/sv=1/d=1/ed=1/am=EQ/rs=AGLTcCMvz0pRGoPoblsgPMwB0zF2kotdRQ/cb=gapi.loaded_0" async=""></script><script type="text/javascript" async="" src="//apis.google.com/js/client:plusone.js?onload=gapiAsyncInit" gapi_processed="true"></script><script async="" src="//www.google-analytics.com/analytics.js"></script><script type="text/javascript" src="//assets.insnw.net/instart/js/week-144-0/loader/instart.js"></script><script type="text/javascript">INSTART.Init({"apiDomain":"assets.insnw.net","disableInjectionXhr":true,"disableInjectionXhrQueryParam":"instart_disable_injection","disableInstantLoadLinkCss":true,"disableInstantLoadUrls":[],"iframeCommunicationTimeout":3000,"partialImage":false,"rId":"34","release":"week-144-0","rum":true,"ver":"loader","virtualDomains":4,"virtualizeDomains":["^.*\\.quora\\.com$","^api\\.quora\\.com$","^codesprintquora\\.quora\\.com$","^geo\\.quora\\.com$","^qim\\.cf\\.quoracdn\\.net$","^qlx\\.cf\\.quoracdn\\.net$","^qph\\.cf\\.quoracdn\\.net$","^qsc\\.cf\\.quoracdn\\.net$","^qsf\\.cf\\.quoracdn\\.net$","^quora\\.com$","^rage-against-quora\\.quora\\.com$","^www\\.quora\\.com$"]}
2
+ );</script><script src="//assets.insnw.net/instart/js/week-144-0/monitor/instart.js"></script><script>window['__inline_init_cb']();</script><script>
3
+ var script_defer_queue=script_defer_queue||[];script_defer_queue.execute=function(a){var b=a.fn,c=a.env;b.apply(c)},script_defer_queue.push=function(a){script_defer_queue.length===0?script_defer_queue.execute(a):Array.prototype.push.apply(script_defer_queue,[a])},script_defer_queue.execute_ready=function(){while(script_defer_queue.length&gt;0&amp;&amp;!script_defer_queue[0].marker)script_defer_queue.execute(script_defer_queue[0]),script_defer_queue.shift()},script_defer_queue.pkg_loaded=function(){script_defer_queue.length&gt;0&amp;&amp;script_defer_queue[0].marker===!0&amp;&amp;script_defer_queue.shift(),script_defer_queue.execute_ready()},script_defer_queue.execute_ready(),this.require||function(global,undefined){function require(a){if(!exported[a]){rec("loader.require","Required",a);var b,c=installed[a];c&amp;&amp;(c.id=a,c.exports=b={},c(function(b){return demand(b,a)},exported[a]=b,c),c.exports&amp;&amp;c.exports!==b&amp;&amp;(exported[a]=c.exports),rec("loader.require.export"+(c.lazy?".lazy":""),"Exported",a))}return used[a]=!0,exported[a]}function demand(a,b){return require(a=absolutize(a,b))||raise(a)}function raise(a){throw a}function absolutize(a,b){if(b&amp;&amp;/^\./.test(a)){a="/"+b+"/../"+a;while(a!=(b=a.replace(rel_path_exp,"/")))a=b}return a.replace(/^\//,"")}function deps(a){if(!a.unmet){var b=a+"",c,d=a.unmet={};require_exp.lastIndex=0;while(c=require_exp.exec(b))d[c[1]]=1;return d}return a.unmet}function ready(a){if(typeof a=="object"||a.ready||a.seen)return!0;var b,c={},d=deps(a),e;for(e in d)a.seen=!0,exported[e]&amp;&amp;ready(exported[e])||installed[e]&amp;&amp;ready(installed[e])?c[e]=1:b=1,delete a.seen;for(e in c)delete d[e];if(b){rec("missing modules:");for(e in d)rec(e)}return a.ready=!b,!b}function log(){try{var a=global.console;a&amp;&amp;a.log.apply(a,arguments)}catch(b){}}function flushQueue(){if(!flushing)try{while(qhead!==qtail&amp;&amp;ready(qhead.next))flushing=qhead,qhead=qhead.next,delete flushing.next,rec("loader.flushQueue","Start"),qhead(demand),rec("loader.flushQueue","Finish")}finally{flushing=0}}function rec(){var a=global;return a.log&amp;&amp;a.log.enabled&amp;&amp;a.log.apply(a.log,arguments),history[history.length]={time:+(new Date),tags:history.slice.call(arguments)}}var history=[],installed={},exported={},used={},qhead={},qtail=qhead,flushing,require_exp=/require\(['"]([^'"]+)['"]\)/g,rel_path_exp=/\/(\.?|[^\/]+\/\.\.)\//;require.install=function(a,b,c){rec("loader.install"+(b.lazy?".lazy":""),"Installing",a),c&amp;&amp;(b.unmet=c);var d=typeof b=="object"?exported:installed;d[a]||(d[a]=b,flushQueue())},require.installLazy=function(id,code,depends){var module=function(require,exports,module){window._evalCallArgs=arguments,eval("(function(require,exports,module){"+code+"//*/\n}).apply(window, window._evalCallArgs)")};module.lazy=!0,require.install(id,module,depends)},require.enqueue=function(a){qtail=qtail.next=a,qhead.next===qtail&amp;&amp;ready(a)&amp;&amp;flushQueue()},require.stats=function(){var a={},b="",c="",d={},e=[],f,g;for(g in installed){var h=installed[g]+"";g in used?b+=h:(a[g]=!0,c+=h),d[g]=h.length}f=b.length+c.length;for(g in installed)g.startsWith("internal")||e.push([g,100*d[g]/f]);return console.log("Used modules:",Object.keys(used).length,"Unused modules:",Object.keys(a).length),console.log("Used JS size:",b.length,"Unused JS size:",c.length,100*b.length/f),console.table(e),{used:Object.keys(used),unused:Object.keys(a),installed:installed,exported:exported,usedJS:b,unusedJS:c,percents:e,sizes:d}},rec.dump=function(){return history.slice()},global.rec=rec,global.require=require,rec("loader","Ready")}(this);;
4
+ require.install("settings", {
5
+ revision: "96b248c53c35184fcc20d52644057000576375a9",
6
+ installTime: rec("settings", "install").time,
7
+ instance: "main",
8
+ formkey: "bccdedd740f291bc460d970b3d7d9ea6",
9
+ postkey: "185afd0758d6a9f0fed5fdb8855bd54a",
10
+ uid: null,
11
+ controller: "index",
12
+ action: "index",
13
+ cookiePrefix: "m",
14
+ trail: null,
15
+ actionTrail: null,
16
+ mobile: false,
17
+ serverCallUrl: "/webnode2/server_call_POST?__instart__",
18
+ scribeSampleRate: 1.000000,
19
+ pageMode: "live" || "live",
20
+ feedAnchoring: false,
21
+ requireBase: "https://qsc.is.quoracdn.net/-ba63a0587de0c8ca/",
22
+ debug: false,
23
+ componentDebug: false,
24
+ appURL: null,
25
+ fbAppId: "136609459636",
26
+ googleClientId: "917071888555.apps.googleusercontent.com",
27
+ googleCookiePolicy: "http://quora.com",
28
+ androidAppPackageName: "com.quora.android",
29
+ mobileRedirect: false,
30
+ enableFrameBusting: true,
31
+ keyboardShortcuts: false,
32
+ isParallel: true,
33
+ client_side_js_load_delays_enabled: true,
34
+ client_side_logging: false,
35
+ client_side_server_call_error_notifications: true,
36
+ client_side_server_call_error_logging_percentage: 0.0,
37
+ subdomain_name: null,
38
+ subdomain_suffix: "quora.com",
39
+ default_base_url: "quora.com",
40
+ default_uri_subdomain_name: null,
41
+ force_use_absolute_links: false,
42
+ qtext_improvement_spacing: false,
43
+ qtext_improvement_list: false,
44
+ new_grid: true,
45
+ e2e_sample_rate: 0.100000,
46
+ history_state_cookie_name: "hs-8899f63b5a",
47
+ enable_history_state: false,
48
+ save_feed_story_debug: false,
49
+ w2_modals_enabled: false
50
+ });
51
+
52
+ require.install("gating", {
53
+
54
+ });
55
+
56
+ var clicks=[],handleClicks=!0,handleUnready=function(a){if(!handleClicks)return;var b=a.target;while(b&amp;&amp;b.tagName&amp;&amp;b.tagName!="A")b=b.parentNode;if(b&amp;&amp;b.getAttribute&amp;&amp;b.getAttribute("href")==="#"){clicks.push(a.target);var c=document.getElementById("async_spinner");if(!c){c=document.createElement("div"),c.setAttribute("id","async_spinner"),c.setAttribute("class","__live_spinner");var d=document.createElement("div");d.setAttribute("class","__live_spinner_indicator"),require.enqueue(function(){var a=require("spin").createSpinnerElement({color:"#fff"}).el;d.appendChild(a),c.appendChild(d),document.body.appendChild(c)})}}},clearHandlers=function(){if(!handleClicks)return;handleClicks=!1,document.detachEvent?document.detachEvent("onclick",handleUnready):document.removeEventListener("click",handleUnready,!0);for(var a=0;a&lt;clicks.length;++a)clicks[a].click();var b=document.getElementById("async_spinner");b&amp;&amp;b.parentNode.removeChild(b)};document.attachEvent?document.attachEvent("onclick",handleUnready):document.addEventListener("click",handleUnready,!0);;
57
+ </script>
58
+ <link rel="search" type="application/opensearchdescription+xml" href="/opensearch/description.xml" title="Quora" /><meta name="robots" content="noarchive" /><script type="text/javascript"> var script_defer_queue = script_defer_queue || []; script_defer_queue.push( { env: window, fn: function(){
59
+ window.lazyJQuery = true;
60
+ if (window.log &amp;&amp; log.enabled)
61
+ log('page', 'Loading JS modules...');
62
+ } }); </script><link href="https://qsc.is.quoracdn.net/-c7aa6c76385ffba9.css" rel="stylesheet" type="text/css" /><script>var __W2__shouldUseNewContentForLoadingSpinner = true;</script><script type="text/javascript" src="https://qsc.is.quoracdn.net/-f7f0feca441941b6.js"></script><style type="text/css"></style><script>
63
+ script_defer_queue = script_defer_queue || [];
64
+ Array.prototype.push.call(script_defer_queue, {marker: true});
65
+ </script>
66
+ <script type="text/javascript" src="https://qsc.is.quoracdn.net/-8f3c06c7d7c7451e.js" async="" defer=""></script><script type="text/javascript"> var script_defer_queue = script_defer_queue || []; script_defer_queue.push( { env: window, fn: function(){
67
+ if (window.log &amp;&amp; log.enabled)
68
+ log('page', 'Done. Header chunk is processed.');
69
+ } }); </script><title>Quora - Your Best Source for Knowledge</title><link rel="canonical" href="http://www.quora.com/" /><link rel="alternate" type="application/rss+xml" title="RSS 2.0" href="http://www.quora.com/rss" /><script type="text/javascript"> var script_defer_queue = script_defer_queue || []; script_defer_queue.push( { env: window, fn: function(){
70
+ if (window.w2_timing)
71
+ w2_timing.logTime('bodyChunkStart');
72
+ } }); </script><style type="text/css">.fb_hidden{position:absolute;top:-10000px;z-index:10001}.fb_invisible{display:none}.fb_reset{background:none;border:0;border-spacing:0;color:#000;cursor:auto;direction:ltr;font-family:"lucida grande", tahoma, verdana, arial, sans-serif;font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:1;margin:0;overflow:visible;padding:0;text-align:left;text-decoration:none;text-indent:0;text-shadow:none;text-transform:none;visibility:visible;white-space:normal;word-spacing:normal}.fb_reset&gt;div{overflow:hidden}.fb_link img{border:none}
73
+ .fb_dialog{background:rgba(82, 82, 82, .7);position:absolute;top:-10000px;z-index:10001}.fb_reset .fb_dialog_legacy{overflow:visible}.fb_dialog_advanced{padding:10px;-moz-border-radius:8px;-webkit-border-radius:8px;border-radius:8px}.fb_dialog_content{background:#fff;color:#333}.fb_dialog_close_icon{background:url(https://fbstatic-a.akamaihd.net/rsrc.php/v2/yq/r/IE9JII6Z1Ys.png) no-repeat scroll 0 0 transparent;_background-image:url(https://fbstatic-a.akamaihd.net/rsrc.php/v2/yL/r/s816eWC-2sl.gif);cursor:pointer;display:block;height:15px;position:absolute;right:18px;top:17px;width:15px}.fb_dialog_mobile .fb_dialog_close_icon{top:5px;left:5px;right:auto}.fb_dialog_padding{background-color:transparent;position:absolute;width:1px;z-index:-1}.fb_dialog_close_icon:hover{background:url(https://fbstatic-a.akamaihd.net/rsrc.php/v2/yq/r/IE9JII6Z1Ys.png) no-repeat scroll 0 -15px transparent;_background-image:url(https://fbstatic-a.akamaihd.net/rsrc.php/v2/yL/r/s816eWC-2sl.gif)}.fb_dialog_close_icon:active{background:url(https://fbstatic-a.akamaihd.net/rsrc.php/v2/yq/r/IE9JII6Z1Ys.png) no-repeat scroll 0 -30px transparent;_background-image:url(https://fbstatic-a.akamaihd.net/rsrc.php/v2/yL/r/s816eWC-2sl.gif)}.fb_dialog_loader{background-color:#f2f2f2;border:1px solid #606060;font-size:24px;padding:20px}.fb_dialog_top_left,.fb_dialog_top_right,.fb_dialog_bottom_left,.fb_dialog_bottom_right{height:10px;width:10px;overflow:hidden;position:absolute}.fb_dialog_top_left{background:url(https://fbstatic-a.akamaihd.net/rsrc.php/v2/ye/r/8YeTNIlTZjm.png) no-repeat 0 0;left:-10px;top:-10px}.fb_dialog_top_right{background:url(https://fbstatic-a.akamaihd.net/rsrc.php/v2/ye/r/8YeTNIlTZjm.png) no-repeat 0 -10px;right:-10px;top:-10px}.fb_dialog_bottom_left{background:url(https://fbstatic-a.akamaihd.net/rsrc.php/v2/ye/r/8YeTNIlTZjm.png) no-repeat 0 -20px;bottom:-10px;left:-10px}.fb_dialog_bottom_right{background:url(https://fbstatic-a.akamaihd.net/rsrc.php/v2/ye/r/8YeTNIlTZjm.png) no-repeat 0 -30px;right:-10px;bottom:-10px}.fb_dialog_vert_left,.fb_dialog_vert_right,.fb_dialog_horiz_top,.fb_dialog_horiz_bottom{position:absolute;background:#525252;filter:alpha(opacity=70);opacity:.7}.fb_dialog_vert_left,.fb_dialog_vert_right{width:10px;height:100%}.fb_dialog_vert_left{margin-left:-10px}.fb_dialog_vert_right{right:0;margin-right:-10px}.fb_dialog_horiz_top,.fb_dialog_horiz_bottom{width:100%;height:10px}.fb_dialog_horiz_top{margin-top:-10px}.fb_dialog_horiz_bottom{bottom:0;margin-bottom:-10px}.fb_dialog_iframe{line-height:0}.fb_dialog_content .dialog_title{background:#6d84b4;border:1px solid #3b5998;color:#fff;font-size:14px;font-weight:bold;margin:0}.fb_dialog_content .dialog_title&gt;span{background:url(https://fbstatic-a.akamaihd.net/rsrc.php/v2/yd/r/Cou7n-nqK52.gif) no-repeat 5px 50%;float:left;padding:5px 0 7px 26px}body.fb_hidden{-webkit-transform:none;height:100%;margin:0;overflow:visible;position:absolute;top:-10000px;left:0;width:100%}.fb_dialog.fb_dialog_mobile.loading{background:url(https://fbstatic-a.akamaihd.net/rsrc.php/v2/ya/r/3rhSv5V8j3o.gif) white no-repeat 50% 50%;min-height:100%;min-width:100%;overflow:hidden;position:absolute;top:0;z-index:10001}.fb_dialog.fb_dialog_mobile.loading.centered{max-height:590px;min-height:590px;max-width:500px;min-width:500px}#fb-root #fb_dialog_ipad_overlay{background:rgba(0, 0, 0, .45);position:absolute;left:0;top:0;width:100%;min-height:100%;z-index:10000}#fb-root #fb_dialog_ipad_overlay.hidden{display:none}.fb_dialog.fb_dialog_mobile.loading iframe{visibility:hidden}.fb_dialog_content .dialog_header{-webkit-box-shadow:white 0 1px 1px -1px inset;background:-webkit-gradient(linear, 0% 0%, 0% 100%, from(#738ABA), to(#2C4987));border-bottom:1px solid;border-color:#1d4088;color:#fff;font:14px Helvetica, sans-serif;font-weight:bold;text-overflow:ellipsis;text-shadow:rgba(0, 30, 84, .296875) 0 -1px 0;vertical-align:middle;white-space:nowrap}.fb_dialog_content .dialog_header table{-webkit-font-smoothing:subpixel-antialiased;height:43px;width:100%}.fb_dialog_content .dialog_header td.header_left{font-size:12px;padding-left:5px;vertical-align:middle;width:60px}.fb_dialog_content .dialog_header td.header_right{font-size:12px;padding-right:5px;vertical-align:middle;width:60px}.fb_dialog_content .touchable_button{background:-webkit-gradient(linear, 0% 0%, 0% 100%, from(#4966A6), color-stop(.5, #355492), to(#2A4887));border:1px solid #29447e;-webkit-background-clip:padding-box;-webkit-border-radius:3px;-webkit-box-shadow:rgba(0, 0, 0, .117188) 0 1px 1px inset, rgba(255, 255, 255, .167969) 0 1px 0;display:inline-block;margin-top:3px;max-width:85px;line-height:18px;padding:4px 12px;position:relative}.fb_dialog_content .dialog_header .touchable_button input{border:none;background:none;color:#fff;font:12px Helvetica, sans-serif;font-weight:bold;margin:2px -12px;padding:2px 6px 3px 6px;text-shadow:rgba(0, 30, 84, .296875) 0 -1px 0}.fb_dialog_content .dialog_header .header_center{color:#fff;font-size:16px;font-weight:bold;line-height:18px;text-align:center;vertical-align:middle}.fb_dialog_content .dialog_content{background:url(https://fbstatic-a.akamaihd.net/rsrc.php/v2/y9/r/jKEcVPZFk-2.gif) no-repeat 50% 50%;border:1px solid #555;border-bottom:0;border-top:0;height:150px}.fb_dialog_content .dialog_footer{background:#f2f2f2;border:1px solid #555;border-top-color:#ccc;height:40px}#fb_dialog_loader_close{float:left}.fb_dialog.fb_dialog_mobile .fb_dialog_close_button{text-shadow:rgba(0, 30, 84, .296875) 0 -1px 0}.fb_dialog.fb_dialog_mobile .fb_dialog_close_icon{visibility:hidden}
74
+ .fb_iframe_widget{display:inline-block;position:relative}.fb_iframe_widget span{display:inline-block;position:relative;text-align:justify}.fb_iframe_widget iframe{position:absolute}.fb_iframe_widget_lift{z-index:1}.fb_hide_iframes iframe{position:relative;left:-10000px}.fb_iframe_widget_loader{position:relative;display:inline-block}.fb_iframe_widget_fluid{display:inline}.fb_iframe_widget_fluid span{width:100%}.fb_iframe_widget_loader iframe{min-height:32px;z-index:2;zoom:1}.fb_iframe_widget_loader .FB_Loader{background:url(https://fbstatic-a.akamaihd.net/rsrc.php/v2/y9/r/jKEcVPZFk-2.gif) no-repeat;height:32px;width:32px;margin-left:-16px;position:absolute;left:50%;z-index:4}</style></head><body class="logged_out_page_big_signup" data-twttr-rendered="true"><script charset="utf-8" src="https://tch134099.tch.quora.com/up/chan8-8885/updates?min_seq=140284530&amp;channel=main-w-dep3801-4129394825469221042&amp;callback=jsonp149d783428d1b9b4983"></script><div class="InteractionModeBanner" id="__w2_bU6Cr5Z_banner"><div id="__w2_bU6Cr5Z_message">There are updates to this page that haven't been applied because you've entered text. <a href="#" id="__w2_bU6Cr5Z_resume">Refresh this page</a> to see updates.</div></div><div class="ErrorBanner" id="__w2_bRHdACQ_banner"><div id="__w2_bRHdACQ_message"><span id="__w2_bRHdACQ_text"></span><a href="#" id="__w2_bRHdACQ_hide">Hide this message</a>.</div></div><div class="modal_overlay hidden" id="__w2_modal_overlay_"><div class="modal_wrapper normal"><div id="__w2_modal_frame_placeholder_"></div></div></div><div id="ld_tnqnam_316"><div class="PMsgContainer hidden" id="__w2_lWdA8C7_pmsg_container" style="display: none;"><div class="EncodableComponent LoginRequired PMsg" id="__w2_eOhMGaN_container"><div class="contents"><a class="pmsg_close" alt="Dismiss" href="#" id="__w2_eOhMGaN_x">✕</a>You need to be logged in to see that page.</div></div></div><div class="main_full_width content contents main_content ContentWrapper"><div id="__w2_KJO1Tih_content"><div id="ld_mavdwv_69501"><div class="HomeLoggedOut HomeLoggedOutBigSignup"><div class="logo"></div><div class="tagline"><h1>Sign up to read Quora</h1><h2>The best answer to any question</h2></div><div class="spacer"></div><div class="container"><div class="signup"><div class="signup_form_big_buttons"><div class="col connected_photo_wrapper hidden" id="__w2_tuN7uZC_connected_photo_wrapper"> <div class="hidden br3 tease_box connected_photo" id="__w2_tuN7uZC_connected_info"><img src="https://qsf.is.quoracdn.net/-24b280cb3f0a234e.gif" style="float:left;width:50px;" id="__w2_tuN7uZC_connected_pic" /><label class="hidden" style="width:50px" id="__w2_tuN7uZC_fb_info"><img src="https://qsf.is.quoracdn.net/-3f97e9658610fd24.gif" style="padding-right: 5px;" /><strong id="__w2_tuN7uZC_fb_name"></strong></label><label class="hidden" style="width:50px" id="__w2_tuN7uZC_twitter_info"><img width="16" style="padding-right: 5px;" height="16" src="https://qsf.is.quoracdn.net/-717943ea2ab806b1.png" /><strong id="__w2_tuN7uZC_tw_name"></strong></label><label class="hidden" style="width:50px" id="__w2_tuN7uZC_goog_info"><img width="16" style="padding-right: 5px;" height="16" src="https://qsf.is.quoracdn.net/-0221ae28fc359ca7.png" /><strong id="__w2_tuN7uZC_goog_name"></strong></label></div></div><div class="e_col w3_5 signup_form"><form class="" action="/signup/signup_POST/" method="POST" target="_self" id="__w2_tuN7uZC_form"><input type="hidden" name="formkey" value="bccdedd740f291bc460d970b3d7d9ea6" /><input group="__w2_tuN7uZC_interaction" type="hidden" name="code" w2cid="tuN7uZC" id="__w2_tuN7uZC_code" /><input group="__w2_tuN7uZC_interaction" type="hidden" name="group" w2cid="tuN7uZC" id="__w2_tuN7uZC_group" /><input group="__w2_tuN7uZC_interaction" type="hidden" name="source_user_name" w2cid="tuN7uZC" id="__w2_tuN7uZC_source_user_name" /><input group="__w2_tuN7uZC_interaction" type="hidden" name="source_url" w2cid="tuN7uZC" id="__w2_tuN7uZC_source_url" /><input group="__w2_tuN7uZC_interaction" type="hidden" name="signup_form" value="SignupFormBigButtonsOneClick" w2cid="tuN7uZC" id="__w2_tuN7uZC_signup_form" /><input group="__w2_tuN7uZC_interaction" type="hidden" name="source" value="home" w2cid="tuN7uZC" id="__w2_tuN7uZC_source" /><input group="__w2_tuN7uZC_interaction" type="hidden" w2cid="tuN7uZC" id="__w2_tuN7uZC_fb_uid" /><input group="__w2_tuN7uZC_interaction" type="hidden" w2cid="tuN7uZC" id="__w2_tuN7uZC_tw_uid" /><div class="row " id="__w2_tuN7uZC_step_1"><div class="row step_1_header"></div><div class="row"><div class="e_col connect_buttons instruction_text three_connect_buttons" id="__w2_tuN7uZC_connect_buttons"><div class="row connect_buttons_row"><a class="google_button submit_button" href="#" tabindex="5" id="__w2_EvzmIgc_google_connect_button"><span class="google_button_text">Sign Up With Google</span></a><span class="hidden connected_link_text google_connected_link_text br3" id="__w2_tuN7uZC_google_connected">Connected to Google</span><input group="__w2_tuN7uZC_interaction" type="hidden" name="goog_access_token" w2cid="tuN7uZC" id="__w2_tuN7uZC_goog_access_token" /><a class="facebook_button submit_button" href="#" tabindex="6" id="__w2_w8Y01bD_facebook_connect_button"><span class="facebook_button_text">Sign Up With Facebook</span></a><span class="hidden connected_link_text facebook_connected_link_text br3" id="__w2_tuN7uZC_facebook_connected">Connected to Facebook</span><input group="__w2_tuN7uZC_interaction" type="hidden" name="fb_access_token" w2cid="tuN7uZC" id="__w2_tuN7uZC_fb_access_token" /><input group="__w2_tuN7uZC_interaction" type="hidden" name="fb_expires" w2cid="tuN7uZC" id="__w2_tuN7uZC_fb_expires" /><a class="twitter_button submit_button" href="#" tabindex="6" id="__w2_LwAI36i_twitter_connect_button">Sign Up With Twitter</a><span class="hidden connected_link_text twitter_connected_link_text br3" id="__w2_tuN7uZC_twitter_connected">Connected to Twitter</span><input group="__w2_tuN7uZC_interaction" type="hidden" name="twitter_oauth_key" w2cid="tuN7uZC" id="__w2_tuN7uZC_tw_oauth_key" /></div><div id="__w2_tuN7uZC_connect_explanation"><a class="signup_email_link" href="#" tabindex="8" id="__w2_tuN7uZC_bypass_connect_link">Sign Up With Email</a>. <span class="tos_disclaimer">By signing up you indicate that you have read and agree to the <a href="/about/tos" target="_blank">Terms of Service</a>.</span></div></div></div></div><div class="hidden step_2 row" id="__w2_tuN7uZC_step_2"><h2><span id="__w2_tuN7uZC_step_2_header_prefix"></span>Sign Up</h2><div class="stacked_form e_col p1"><div class="form_row"><label>Full Name</label><input class="text" group="__w2_tuN7uZC_interaction" name="name" autocorrect="off" value="" autocapitalize="words" type="text" tabindex="9" w2cid="tuN7uZC" id="__w2_tuN7uZC_name" /><div class="hidden __w2_uEYjFoM_invalid input_validation_error_text" id="__w2_uEYjFoM_invalid_message"></div><span class="hidden input_valid __w2_uEYjFoM_valid input_status"></span><span class="hidden input_invalid __w2_uEYjFoM_invalid input_status"></span><div class="hidden ">Checking...</div></div><div class="form_row"><label>Email</label><input class="text" group="__w2_tuN7uZC_interaction" type="text" name="email" value="" tabindex="10" w2cid="tuN7uZC" id="__w2_tuN7uZC_email" /><div class="hidden __w2_qOXxM78_invalid input_validation_error_text" id="__w2_qOXxM78_invalid_message"></div><span class="hidden input_valid __w2_qOXxM78_valid input_status"></span><span class="hidden input_invalid __w2_qOXxM78_invalid input_status"></span><div class="hidden ">Checking...</div></div><div class="form_row"><label>Password</label><input class="text" group="__w2_tuN7uZC_interaction" type="password" name="password" tabindex="11" w2cid="tuN7uZC" id="__w2_tuN7uZC_password" /><div class="hidden __w2_cg1kEMh_invalid input_validation_error_text" id="__w2_cg1kEMh_invalid_message"></div><span class="hidden input_valid __w2_cg1kEMh_valid input_status"></span><span class="hidden input_invalid __w2_cg1kEMh_invalid input_status"></span><div class="hidden ">Checking...</div></div></div><div class="row small"><span class="light_gray tos_disclaimer">By clicking "Sign Up" you indicate that you have read and agree to the <a href="/about/tos" target="_blank">Terms of Service</a>.</span></div><div class="row"><div class="form_buttons" id="__w2_tuN7uZC_create_account"><span class="light"><a class="cancel" href="#" id="__w2_tuN7uZC_cancel">Cancel</a></span><input class="submit_button" group="__w2_tuN7uZC_interaction" type="submit" value="Sign Up" tabindex="12" w2cid="tuN7uZC" id="__w2_tuN7uZC_submit" /></div></div></div></form></div><div class="row hidden connected_friends_list" id="__w2_tuN7uZC_connected_friends_list"> </div></div></div><div class="login"><div id="ld_ikqvwq_71253"><div id="__w2_NRt6iU0_logged_out_header_login"><div class="associated_login" id="__w2_NRt6iU0_associated"></div><div class="regular_login"><form class="inline_login_form" method="POST" id="__w2_NRt6iU0_login_form"><div class="title">Login</div><div class="form_inputs"><div class="hidden small_login_preview e_col" id="__w2_NRt6iU0_preview" style="display: none;"><img width="25" height="25" id="__w2_NRt6iU0_pic" /></div><div class="form_column"><input class="text header_login_text_box ignore_interaction" group="__w2_NRt6iU0_interaction" type="text" placeholder="Email" name="email" tabindex="1" w2cid="NRt6iU0" id="__w2_NRt6iU0_email" /><div class="remember_me" group="__w2_NRt6iU0_login_options" id="__w2__u_lULja1UURh"><input class="passwordless_checkbox ignore_interaction" group="__w2_NRt6iU0_interaction" type="checkbox" checked="checked" name="allow_passwordless" value="allow_passwordless" tabindex="3" w2cid="NRt6iU0" id="__w2_NRt6iU0_allow_passwordless" />Remember Me</div></div><div class="form_column"><input class="text header_login_text_box ignore_interaction" group="__w2_NRt6iU0_interaction" type="password" placeholder="Password" name="password" tabindex="2" w2cid="NRt6iU0" id="__w2_NRt6iU0_password" /><div group="__w2_NRt6iU0_login_options" id="__w2__u_xubvEKXOhi"><a class="forgot_password" href="#" id="__w2_NRt6iU0_forgot_password_link">Forgot Password?</a></div></div><input class="submit_button ignore_interaction submit_button_disabled" group="__w2_NRt6iU0_interaction" type="submit" value="Login" tabindex="4" w2cid="NRt6iU0" id="__w2_NRt6iU0_submit_button" /><div id="__w2_NRt6iU0_errors"><p class="hidden input_validation_error_text" id="__w2_NRt6iU0_email_not_confirmed_error" style="display: none;">Please confirm your email address. <a href="#" id="__w2_NRt6iU0_resend_confirmation">Resend Confirmation Link</a></p><span class="hidden input_validation_error_text" id="__w2_NRt6iU0_email_not_found_error" style="display: none;">No account found for this email. Retry, or <a href="/" id="__w2_NRt6iU0_email_not_found_signup_link">Sign up for Quora.</a></span><span class="hidden input_validation_error_text" id="__w2_NRt6iU0_incorrect_password_error" style="display: none;">Incorrect password. <a href="#" id="__w2_NRt6iU0_reset_password_link">Reset Password</a></span></div></div></form></div></div></div></div></div><div class="footer_nav row"><div class="e_col footer_links w8"><ul class="nav_list"><li class="about"><a href="/about">About</a></li><li class="careers"><a href="/careers">Careers</a></li><li class="privacy"><a href="/about/privacy">Privacy</a></li><li class="sitemap"><a href="/sitemap">Sitemap</a></li><li class="tos"><a href="/about/tos">Terms</a></li></ul></div></div></div></div></div></div></div><div id="ld_tnqnam_317"></div><div class="__live_spinner hidden" id="__w2_zBB53Db_loading"><div class="__live_spinner_indicator" id="__w2_zBB53Db_spinner"></div></div><div id="ld_tnqnam_318"></div><div id="ld_tnqnam_319"></div><div class="tiny_swf"><object type="application/x-shockwave-flash" allowscriptaccess="always" data="https://qsf.is.quoracdn.net/-ecc40f52619f79e0.swf" width="1" height="1" id="__w2_yhPlYPo_flash" style="visibility: visible;"><param name="allowScriptAccess" value="always" /><param name="flashvars" value="domain=www.quora.com" /></object></div><script type="text/javascript"> var script_defer_queue = script_defer_queue || []; script_defer_queue.push( { env: window, fn: function(){
75
+ if ($.loader) $.loader(window);
76
+ } }); </script><script type="text/javascript"> var script_defer_queue = script_defer_queue || []; script_defer_queue.push( { env: window, fn: function(){
77
+ require.enqueue(function(require) {
78
+ require('webnode2').windowId = "dep3801-4129394825469221042";
79
+ });
80
+ } }); </script><script type="text/javascript"> var script_defer_queue = script_defer_queue || []; script_defer_queue.push( { env: window, fn: function(){
81
+ require.enqueue(function(require) {
82
+ require("tchannel_up").start(0, "main-w-dep3801-4129394825469221042", "chan8-8885", "quora.com", "");
83
+ });
84
+ } }); </script><script type="text/javascript"> var script_defer_queue = script_defer_queue || []; script_defer_queue.push( { env: window, fn: function(){
85
+ require.enqueue(function(require) {
86
+ require("cookies").cookie("tz", new Date().getTimezoneOffset(), {"path": "/"});
87
+ });
88
+ } }); </script><script type="text/javascript"> var script_defer_queue = script_defer_queue || []; script_defer_queue.push( { env: window, fn: function(){
89
+ $.whenIdle(350, 350, function() {
90
+ require.enqueue(function(require) {
91
+ if (window.w2_timing)
92
+ w2_timing.logTime('componentInitStart');
93
+ var W2 = require('webnode2'),
94
+ LiveNode = require('w2.livenode');
95
+ W2.addComponentMetadata({parents: {"SNP1Owo": "*ROOT*", "t6ARiOk": "CCSllhq", "qOXxM78": "tuN7uZC", "FQFCd0e": "*ROOT*", "eOhMGaN": "lWdA8C7", "UehhklZ": "tuN7uZC", "yp6LYo5": "*ROOT*", "CCSllhq": "*ROOT*", "KJO1Tih": "CCSllhq", "NRt6iU0": "wqI0dWH", "nXa23oa": "KJO1Tih", "zBB53Db": "*ROOT*", "bU6Cr5Z": "*ROOT*", "fTsNuvO": "KJO1Tih", "tuN7uZC": "wqI0dWH", "w8Y01bD": "tuN7uZC", "vH00jxM": "rkMk00l", "lWdA8C7": "KJO1Tih", "wLztwAv": "rkMk00l", "KMs7pOO": "rkMk00l", "LwAI36i": "tuN7uZC", "cg1kEMh": "tuN7uZC", "JnkvyTs": "*ROOT*", "qPak7cT": "*ROOT*", "wqI0dWH": "KJO1Tih", "rkMk00l": "MzFs9mn", "rWyDs0P": "wqI0dWH", "yhPlYPo": "*ROOT*", "bRHdACQ": "*ROOT*", "uEYjFoM": "tuN7uZC", "fk1GgAT": "rkMk00l", "kfQGBgz": "rkMk00l", "N4JfgqI": "qPak7cT", "ETC6aMw": "KJO1Tih", "MzFs9mn": "wqI0dWH", "EvzmIgc": "tuN7uZC"}, children: {"tuN7uZC": {"email_validator": "qOXxM78", "name_validator": "uEYjFoM", "google_connect_button": "EvzmIgc", "password_validator": "cg1kEMh", "facebook_connect_button": "w8Y01bD", "twitter_connect_button": "LwAI36i"}}, knowsAbout: {"wqI0dWH": {"home_logged_out": "."}, "CCSllhq": {"content": "content", "layout": "."}, "tuN7uZC": {"facebook_connect_button": "facebook_connect_button"}, "NRt6iU0": {"inline_login": "."}}, groups: {"__w2_tuN7uZC_interaction": ["__w2_tuN7uZC_code", "__w2_tuN7uZC_group", "__w2_tuN7uZC_source_user_name", "__w2_tuN7uZC_source_url", "__w2_tuN7uZC_signup_form", "__w2_tuN7uZC_source", "__w2_tuN7uZC_fb_uid", "__w2_tuN7uZC_tw_uid", "__w2_tuN7uZC_goog_access_token", "__w2_tuN7uZC_fb_access_token", "__w2_tuN7uZC_fb_expires", "__w2_tuN7uZC_tw_oauth_key", "__w2_tuN7uZC_name", "__w2_tuN7uZC_email", "__w2_tuN7uZC_password", "__w2_tuN7uZC_submit"], "__w2_NRt6iU0_interaction": ["__w2_NRt6iU0_email", "__w2_NRt6iU0_allow_passwordless", "__w2_NRt6iU0_password", "__w2_NRt6iU0_submit_button"], "__w2_NRt6iU0_login_options": ["__w2__u_lULja1UURh", "__w2__u_xubvEKXOhi"]}, domids: {"JnkvyTs": "ld_tnqnam_319", "qPak7cT": "ld_tnqnam_318", "wqI0dWH": "ld_mavdwv_69501", "FQFCd0e": "ld_tnqnam_317", "KJO1Tih": "ld_tnqnam_316", "NRt6iU0": "ld_ikqvwq_71253"}});
96
+ var newComponent = W2.newComponent;
97
+ var _components = [new(W2._InteractionModeBanner)("bU6Cr5Z","",{"new_grid": true},"hmac:4R3MtyRZUPRtRl",{}),
98
+ new(require("w2.livenode").ErrorBanner)("bRHdACQ","",{"new_grid": true},"hmac:2O1ftyp2jLiIaD",{}),
99
+ new(require("app/view/components").JSTest)("t6ARiOk","",{},"hmac:DAalTWsvfBzxrO",{}),
100
+ new(require('login').LoginSignal)("FQFCd0e","",{"uid": null},"hmac:H4N6YL2RRfUEoi",{}),
101
+ new(require('login').LiveLogin)("yp6LYo5","",{},"hmac:8RVxElLKc7Cyo5",{}),
102
+ new(require("w2.livenode").LiveSpinner)("zBB53Db","",{},"hmac:tANVsiE+cxkDRj",{}),
103
+ new(require('facebook').FacebookAccessTokenRefresher)("N4JfgqI","",{},"hmac:8sPHrRXxQOxkic",{}),
104
+ new(require('app/view/signup/google_').GoogleAutoLogin)("JnkvyTs","",{"viewer": null, "scopes": ["email", "profile"]},"hmac:ze5Lm7THgFwGFu",{}),
105
+ new(require("flash").FlashClient)("yhPlYPo","",{"cp": "m", "swf_url": "https://qsf.is.quoracdn.net/-ecc40f52619f79e0.swf", "fc": "oYiISIY3Z40wIBPf1X7QCw==", "so": "main-client-1", "flash_vars": {"domain": "www.quora.com"}},"hmac:TKP67vMcwwrO3l",{}),
106
+ new(require("app/view/layout").ContentWrapper)("KJO1Tih","",{},"hmac:PmJZdRvgjJvVK0",{}),
107
+ new(require("app/view/pmsg/pmsg").PMsgContainer)("lWdA8C7","",{},"hmac:Z36MqySU3Cjjif",{}),
108
+ new(require("app/view/pmsg/pmsg").PMsg)("eOhMGaN","",{},"hmac:qAirPfwFS8ZYtN",{}),
109
+ new(require("app/view/layout").NGQTextImageEnlarger)("nXa23oa","",{},"hmac:S4wcGVzUxxHge1",{}),
110
+ new(require("app/view/layout").QTextEmbedEnlarger)("fTsNuvO","",{},"hmac:fTqTKBA8YOwpQv",{}),
111
+ new(require("app/view/layout").QTextGIFPlayer)("ETC6aMw","",{},"hmac:dZUKqgrmjfibWg",{}),
112
+ new(require('app/view/signup').SignupFormBigButtons)("tuN7uZC","",{"code": null, "is_ios": false, "no_associated_users": true, "hide_welcome_on_connect": false, "minimum_password_length": 5, "next_url": null, "tid": null, "hide_step1_header_on_step2": false, "inline_login": false, "show_explanation": false},"hmac:b+F4sdSnUyzftq",{}),
113
+ new(require("app/view/signup/google_").SignupGoogleConnectButton)("EvzmIgc","google_connect_button",{"scopes": "email profile", "tracking_prefix": "", "prompt_ota_install": true},"hmac:dVzuhJyHxdVbMV",{}),
114
+ new(require("facebook").SignupFacebookConnectButton)("w8Y01bD","facebook_connect_button",{"perms": "user_hometown,user_location,user_work_history,user_education_history,email,publish_actions,read_friendlists,user_likes", "tracking_prefix": ""},"hmac:Wst6HxW8jmHgtn",{}),
115
+ new(require("twitter").SignupTwitterConnectButton)("LwAI36i","twitter_connect_button",{},"hmac:4GXX54IqrPsFzu",{}),
116
+ new(W2.InputValidator)("uEYjFoM","name_validator",{"id": "@name"},"hmac:iYa3AbfkKH5eZM",{}),
117
+ new(W2.InputValidator)("qOXxM78","email_validator",{"id": "@email"},"hmac:fMrfC6SP0jlQLX",{}),
118
+ new(W2.InputValidator)("cg1kEMh","password_validator",{"id": "@password"},"hmac:G5tPizlWGiDeuW",{}),
119
+ new(require("login").LoggedOutHomeHeaderInlineLogin)("NRt6iU0","",{},"hmac:Yg2NGe+k8xotzu",{}),
120
+ new(require('login').LoginPageLoginListener)("rWyDs0P","",{"next": "https://www.quora.com/content"},"hmac:nuxb4Hsod+K+Re",{})];
121
+ W2.registerComponents(_components);
122
+ W2.onLoad(_components, true);
123
+ if (window.w2_timing)
124
+ w2_timing.logTime('componentInitEnd');
125
+
126
+ (function() {
127
+ w2_timing.logTime('postOnLoad');
128
+ var timing = w2_timing.timing;
129
+ $.whenLoaded(1, function() {
130
+ })})();})}, "Initialize components");} }); </script><script type="text/javascript"> var script_defer_queue = script_defer_queue || []; script_defer_queue.push( { env: window, fn: function(){
131
+ require.enqueue(function(require) {
132
+ var twRootNode = document.createElement("div");
133
+ twRootNode.setAttribute("id", "tw-root");
134
+ document.body.appendChild(twRootNode);
135
+ require("twitter").asyncInit();
136
+ });require('win.load').add(function() {
137
+ (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
138
+ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
139
+ m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
140
+ })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
141
+ ga('create', 'UA-16618355-1', 'auto');
142
+ ga('send', 'pageview');
143
+ ga('set', 'dimension1', 'Home');
144
+ ga('set', 'dimension2', 'False');
145
+ ga('set', 'dimension3', 'False');});} }); </script><script type="text/javascript"> var script_defer_queue = script_defer_queue || []; script_defer_queue.push( { env: window, fn: function(){
146
+ require.enqueue(function(require) {
147
+ $(document).ready(function() {
148
+ w2_timing.logTime('documentReady');
149
+ });
150
+ $(window).load(function() {
151
+ var timing = w2_timing.timing;
152
+ w2_timing.logTime('windowLoad');
153
+
154
+ timing.server_time = 38.18;
155
+ timing.window_id = "dep3801-4129394825469221042"; });});
156
+
157
+ var timing = require("w2.timing").timing;
158
+ timing.page = 38.18;
159
+ timing.request = 44.19;} }); </script><div id="tw-root"><script async="" src="//platform.twitter.com/widgets.js"></script></div><div id="fb-root" class=" fb_reset"><script async="" src="//connect.facebook.net/en_US/all.js"></script><div style="position: absolute; top: -10000px; height: 0px; width: 0px;"><div></div></div><div style="position: absolute; top: -10000px; height: 0px; width: 0px;"><div><iframe name="fb_xdm_frame_https" frameborder="0" allowtransparency="true" scrolling="no" id="fb_xdm_frame_https" aria-hidden="true" title="Facebook Cross Domain Communication Frame" tabindex="-1" src="https://s-static.ak.facebook.com/connect/xd_arbiter/7r8gQb8MIqE.js?version=41#channel=f3a5a4ae8&amp;origin=https%3A%2F%2Fwww.quora.com" style="border: none;"></iframe></div></div></div><iframe name="oauth2relay642130170" id="oauth2relay642130170" src="https://accounts.google.com/o/oauth2/postmessageRelay?parent=https%3A%2F%2Fwww.quora.com#rpctoken=696027517&amp;forcesecure=1" tabindex="-1" style="width: 1px; height: 1px; position: absolute; top: -100px;"></iframe><iframe src="https://accounts.google.com/o/oauth2/auth?immediate=true&amp;client_id=917071888555.apps.googleusercontent.com&amp;cookiepolicy=http%3A%2F%2Fquora.com&amp;scope=email+profile&amp;include_granted_scopes=true&amp;proxy=oauth2relay642130170&amp;redirect_uri=postmessage&amp;origin=https%3A%2F%2Fwww.quora.com&amp;response_type=token&amp;state=666025027%7C0.2671930508&amp;authuser=0" style="width: 1px; height: 1px; position: absolute; top: -100px;"></iframe></body></html><!--perf-->
data/spec/quora_spec.rb CHANGED
@@ -1,5 +1,37 @@
1
- RSpec.describe "basic test" do
2
- it "should pass" do
3
- # pass
1
+ require 'spec_helper'
2
+
3
+ browser = $browser
4
+
5
+ RSpec.configure do |config|
6
+ config.before(:all) { @browser = Watir::Browser.new(*$browser_params) }
7
+ config.after(:all) { @browser.close unless @browser.nil? }
8
+ end
9
+
10
+ context "when quora.com is accessed" do
11
+ before(:all) do
12
+ @browser.goto @browser.quora.base_url
13
+ end
14
+
15
+ context "the text" do
16
+ subject { @browser.text }
17
+ it { is_expected.not_to be_empty }
18
+ it { is_expected.to include("Sign up to read Quora") }
19
+ end
20
+
21
+ context "add question div" do
22
+ subject { @browser.quora.get_add_question_div }
23
+ it { is_expected.not_to exist }
24
+ end
25
+
26
+ context "login box" do
27
+ subject { @browser.quora.get_login_email_text }
28
+ it { is_expected.to exist }
29
+
30
+ subject { @browser.quora.get_login_password_text }
31
+ it { is_expected.to exist }
32
+
33
+ subject { @browser.quora.get_login_submit_button }
34
+ it { is_expected.to exist }
4
35
  end
36
+
5
37
  end
@@ -0,0 +1,33 @@
1
+ require 'rspec'
2
+ require 'quora-webdriver'
3
+
4
+ if ENV['TRAVIS']
5
+ puts "TRAVIS testing..."
6
+ username = ENV["SAUCE_USERNAME"]
7
+ access_key = ENV["SAUCE_ACCESS_KEY"]
8
+
9
+ browser, version, os = ENV['BROWSER'].split(':')
10
+
11
+ # set up browser
12
+ capabilities = Selenium::WebDriver::Remote::Capabilities.send(browser)
13
+ # add version and os
14
+ capabilities["version"] = version
15
+ capabilities["platform"] = os
16
+
17
+ # help identify a job
18
+ capabilities["tunnel-identifier"] = ENV["TRAVIS_JOB_NUMBER"]
19
+ # and add extra details
20
+ capabilities["name"] = "Travis ##{ENV['TRAVIS_JOB_NUMBER']}"
21
+ capabilities["build"] = ENV["TRAVIS_BUILD_NUMBER"]
22
+ capabilities["tags"] = [ENV["TRAVIS_RUBY_VERSION"], "CI"]
23
+
24
+ hub_url = "http://#{username}:#{access_key}@localhost:4445/wd/hub"
25
+ browser_params = [
26
+ :remote,
27
+ :url => hub_url,
28
+ :desired_capabilities => capabilities]
29
+ else
30
+ browser_params = [:chrome]
31
+ end
32
+
33
+ $browser_params = browser_params
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: quora-webdriver
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Giordon Stark
@@ -112,7 +112,9 @@ files:
112
112
  - lib/quora-webdriver/quora.rb
113
113
  - lib/quora-webdriver/version.rb
114
114
  - quora-webdriver.gemspec
115
+ - spec/quora_login.html
115
116
  - spec/quora_spec.rb
117
+ - spec/spec_helper.rb
116
118
  homepage: https://github.com/kratsg/quora-webdriver
117
119
  licenses:
118
120
  - MIT
@@ -138,4 +140,6 @@ signing_key:
138
140
  specification_version: 4
139
141
  summary: Interact with Quora via Command Line
140
142
  test_files:
143
+ - spec/quora_login.html
141
144
  - spec/quora_spec.rb
145
+ - spec/spec_helper.rb