quora-webdriver 0.1.0 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
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