Coder Social home page Coder Social logo

elixir-webdriver's People

Contributors

carlwoodward avatar stuart avatar timcf avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

elixir-webdriver's Issues

Swap out HTTP backend

See if we can just use Erlang's httpc instead of HTTPotion/iBrowse as a back end.
Perhaps make the backend an option.

Touch Events

Implement Touch event handling. This is already in the base protocol module, it needs to be added based on what the session capabilities return.

GeoLocation

Implement the geolocation calls. Already done in the base protocol but without any browsers to test it on.

Different behaviour on Session.keys

Currently PhantomJS clears a field before sending the keys, FireFox does not.
Is there a way to make the behaviour consistent across both?

Mouse Events

Implement all the mouse events.
Create a Mouse module with calls to the wire protocol to do this.

Cookies

Cookies need to be written to a record with a module providing functionality to
manipulate and query them.

Phantomjs via brew not working

I installed phantomjs via brew on my local machine.

I verified it is working with

[jonathan]: phantomjs -v 
2.0.0

I then ran webdriver and am getting this error:

iex(1)> config = %WebDriver.Config{name: :browser}
%WebDriver.Config{browser: :phantomjs, name: :browser, root_url: ""}
iex(2)> WebDriver.start_browser config
** (exit) exited in: :gen_server.call(:webdriver, {:start_child, {:browser, {WebDriver.BrowserSup, :start_link, [%WebDriver.Config{browser: :phantomjs, name: :browser, root_url: ""}]}, :permanent, 5000, :worker, [WebDriver.BrowserSup]}}, :infinity)
    ** (EXIT) no process
    (stdlib) gen_server.erl:190: :gen_server.call/3

Any intuition as to why this isn't working?

Thanks!

Compilation failure in Elixir 1.2.2

I created a clean Mix project (Elixir 1.2.2, Erlang 7.2.1, Mac OS X 10.11.3), and added webdriver as a dependency. Running mix deps.get and mix, I get the following error:

== Compilation error on file lib/webdriver/error.ex ==
** (CompileError) lib/webdriver/error.ex:75: the Access syntax and calls to Access.get/2 are not available for the value: WebDriver.Error.ErrorMessage
    lib/webdriver/error.ex:74: (module)

I'm pretty new to Elixir, so I'm probably just doing something wrong โ€“ any help gratefully received!

IME

Implement the various IME functions that WebDriver specifications allow.

Window size and maximize in Firefox

Currently both these break with an error "Window operations only supported for currently focussed window", passing "current" does not seem to work.

Debug flag

Need to add a Debug flag that allows output of what calls are being made and what http requests are being sent.

There is already a debug_browser option that uses error_logger to print messages from the browser port.

Hex'ify deps too

Hi!

Just discovered your code via Hex main page, looks pretty cool! :D

Now you registered it on Hex but for some reason without version number - I bet something broke during your publishing.

[EDIT] Saw your post on elixir-talk on publishing problems, so changing a bit focus of this issue

Your deps refer to non-Hex deps which will give, well, headaches when using your package, because this breaks dependency resolution.

As for httpotion - it's on Hex already. jsonex is not and there are several options here:

  • convincing the original author to put it on Hex with a semver (which he doesn't use)
  • making hex community package - as long as the author uses semver in git tags, which he doesn't
  • using any other available json library ;D

Capabilities handling

Currently none of the capabilities are checked when a function is used.
The session should check if the capability required is available before sending
a request.

The negotiated capabilities need to be stored in the session.

tcp_closed message Error

This is a known bug in ibrowse which has not yet been fixed:
See: valpackett/httpotion#17
And: cmullaparthi/ibrowse#101

=ERROR REPORT==== 24-Feb-2014::12:12:01 ===
** Generic server <0.1448.0> terminating 
** Last message in was {tcp_closed,#Port<0.14124>}
** When Server state == {state,"localhost",63406,5000,#Ref<0.0.0.25182>,false,
                               undefined,[],false,#Port<0.14124>,false,[],
                               {[],[]},
                               undefined,idle,undefined,<<>>,0,0,[],undefined,
                               undefined,undefined,undefined,false,undefined,
                               undefined,<<>>,undefined,false,3076112,0,
                               undefined}
** Reason for termination == 
** connection_closed

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.