Git Product home page Git Product logo

whalesong's People

Contributors

alfred82santa avatar jabolina avatar parthibd avatar theblood 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

Watchers

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

whalesong's Issues

Simplified WhatsappWeb driver

  • Automated common operations.
  • New QR callback.
  • New chat callback.
  • New message callback.
  • New user presence callback.

Can't Retrieve QR Code

I used to be able to retrieve an auth QR code via the Firefox driver using qr() or screenshot_element("div[data-ref]") but that's no longer the case. I suspect WhatsApp changed their page layout and the CSS query selector "div[data-ref]" doesn't seem to work anymore.

Module `wap` not found

Hi. I think some changes occurred in Whatsapp Web page, so the module wap is not found. So, with this, the ChatManager will not be created.

With this you snippet from the WAPI, you can see that the module is not being found.

if (!window.Store) {
    (function() {
        function getStore(modules) {
            let foundCount = 0;
            let neededObjects = [
                { id: "WapQuery", conditions: (module) => (module.queryExist || module.getCapabilities) ? module : null }
            ];

            for (let idx in modules) {
                if ((typeof modules[idx] === "object") && (modules[idx] !== null)) {
                    let first = Object.values(modules[idx])[0];
                    if ((typeof first === "object") && (first.exports)) {
                        for (let idx2 in modules[idx]) {
                            let module = modules(idx2);
                            if (!module) {
                                continue;
                            }

                            neededObjects.forEach((needObj) => {
                                if(!needObj.conditions || needObj.foundedModule) return;
                                let neededModule = needObj.conditions(module);
                                if(neededModule !== null) {
				    console.log("FOUNDED!");
                                    foundCount++;
                                    needObj.foundedModule = neededModule;
                                }
                            });

                            if(foundCount == neededObjects.length) {
                                break;
                            }
                        }
                    }
                }
            }
        }

        webpackJsonp([], {'parasite': (x, y, z) => getStore(z)}, 'parasite');
    })();
}

The workaround I can see, is to implement ChatManager without the wap module. Do you think this can work?

Bug on real time location

If you use actual location (mi ubicación actual in Spanish) all goes OK....BUT if you use "on real time" (en tiempo real) you get this..

year 49122572 is out of range
Traceback (most recent call last):
File "/home/ubuntu/.local/lib/python3.6/site-packages/whalesong/managers/message.py", line 101, in call
return cls.message_classes[t](data=data, *args, **kwargs)
KeyError: 'location'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/home/ubuntu/.local/lib/python3.6/site-packages/whalesong/driver_firefox.py", line 149, in poll
await self.result_manager.set_partial_result(result['exId'], result['params'])
File "/home/ubuntu/.local/lib/python3.6/site-packages/whalesong/results.py", line 280, in set_partial_result
await cast(BasePartialResult, self._pendant[result_id]).set_partial_result(data)
File "/home/ubuntu/.local/lib/python3.6/site-packages/whalesong/results.py", line 115, in set_partial_result
await self._set_result(self.map(data))
File "/home/ubuntu/.local/lib/python3.6/site-packages/whalesong/results.py", line 47, in map
return self.fn_map(data)
File "/home/ubuntu/.local/lib/python3.6/site-packages/whalesong/managers/init.py", line 161, in
fn_map=lambda evt: cls.MODEL_MANAGER_CLASS.map_model(evt['item'])))
File "/home/ubuntu/.local/lib/python3.6/site-packages/whalesong/managers/init.py", line 93, in map_model
return cls.MODEL_CLASS(data)
File "/home/ubuntu/.local/lib/python3.6/site-packages/whalesong/managers/message.py", line 104, in call
return cls.message_classes[MessageTypes(t)](data=data, *args, **kwargs)
File "/home/ubuntu/.local/lib/python3.6/site-packages/whalesong/managers/message.py", line 90, in call
return super(MessageMetaclass, cls).call(data=data, *args, **kwargs)
File "/home/ubuntu/.local/lib/python3.6/site-packages/dirty_models/models.py", line 182, in init
self.import_data(data)
File "/home/ubuntu/.local/lib/python3.6/site-packages/dirty_models/models.py", line 301, in import_data
self._import_data(data)
File "/home/ubuntu/.local/lib/python3.6/site-packages/dirty_models/models.py", line 308, in _import_data
setattr(self, key, value)
File "/home/ubuntu/.local/lib/python3.6/site-packages/dirty_models/fields.py", line 116, in set
set_value(value)
File "/home/ubuntu/.local/lib/python3.6/site-packages/dirty_models/fields.py", line 112, in set_value
self.set_value(obj, self.use_value(v))
File "/home/ubuntu/.local/lib/python3.6/site-packages/dirty_models/fields.py", line 58, in use_value
return self.convert_value(value)
File "/home/ubuntu/.local/lib/python3.6/site-packages/dirty_models/fields.py", line 152, in inner
return func(self, value)
File "/home/ubuntu/.local/lib/python3.6/site-packages/dirty_models/fields.py", line 567, in convert_value
return datetime.fromtimestamp(value, tz=self.default_timezone)
ValueError: year 49122572 is out of range

Found the error is over ""sequence = DateTimeField()"" on the 505 lines message.py file, buy as long I dont know what else afect this line I wont make upload the file.

Calling driver.stop() throws up selenium exception

Here is my test script

import asyncio
import os

import whalesong

BASE_DIR = os.path.dirname(os.path.abspath(__file__))
PROFILE_PATH = os.path.join(BASE_DIR, 'test-profile')
driver: whalesong.Whalesong = whalesong.Whalesong(
    profile=PROFILE_PATH,
    loadstyles=True,
)


async def start():
    await driver.start()
    await driver.stop()


if __name__ == '__main__':
    driver.loop.run_until_complete(start())

And here the exception

selenium.common.exceptions.InvalidSessionIdException: Message: Tried to run command without establishing a connection

REST API for whalesong

I am trying to make a REST API for whalesong so that it can be put on the server. And I want to contribute to the examples. Can you suggest me an async web framework to get the work done ?

MessageInfoManager

Can somebody post a small example on how I get the MessageInfoManager, the issue is to get the status of a message [delivery, read]

flask sample

hi there
is possible to use flask / tornado / bottle / django to implement an API with this library ?
thank you

Currently working perfectly

Hey @alfred82santa awesome job with this framework, probably the must stable web whatsapp interface i found, i m already running a complete core based on the minibot, i just want to know how can i contribute to your testing and try to understand a bit more of the build it self to become a collaborator

New Firefox backend

  • Drop Selenium.
  • Drop Geckdriver.
  • Analyze Marionette.
  • Evaluate to create callback service on Whalesong.

Spread whalesong

We need users who ask for new features. We have to improve communication:

  • Whalesong logo
  • Whalesong webpage

ERROR INSTALL HELP !!

ERROR in ./src/index.js
Module build failed (from ../node_modules/babel-loader/lib/index.js):
Error: Cannot find module '@babel/core'
babel-loader@8 requires Babel 7.x (the package '@babel/core'). If you'd like to use Babel 6.x ('babel-core'), you should install 'babel-loader@7'.
at Function.Module._resolveFilename (module.js:547:15)
at Function.Module._load (module.js:474:25)
at Module.require (module.js:596:17)
at require (/home/srvws/whalesong/node_modules/v8-compile-cache/v8-compile-cache.js:159:20)
at Object. (/home/srvws/whalesong/node_modules/babel-loader/lib/index.js:10:11)
at Module._compile (/home/srvws/whalesong/node_modules/v8-compile-cache/v8-compile-cache.js:178:30)
at Object.Module._extensions..js (module.js:663:10)
at Module.load (module.js:565:32)
at tryModuleLoad (module.js:505:12)
at Function.Module._load (module.js:497:3)
at Module.require (module.js:596:17)
at require (/home/srvws/whalesong/node_modules/v8-compile-cache/v8-compile-cache.js:159:20)
at loadLoader (/usr/lib/node_modules/webpack/node_modules/loader-runner/lib/loadLoader.js:18:17)
at iteratePitchingLoaders (/usr/lib/node_modules/webpack/node_modules/loader-runner/lib/LoaderRunner.js:169:2)
at runLoaders (/usr/lib/node_modules/webpack/node_modules/loader-runner/lib/LoaderRunner.js:365:2)
at NormalModule.doBuild (/usr/lib/node_modules/webpack/lib/NormalModule.js:280:3)
at NormalModule.build (/usr/lib/node_modules/webpack/lib/NormalModule.js:427:15)
at Compilation.buildModule (/usr/lib/node_modules/webpack/lib/Compilation.js:635:10)
at moduleFactory.create (/usr/lib/node_modules/webpack/lib/Compilation.js:1021:12)
at factory (/usr/lib/node_modules/webpack/lib/NormalModuleFactory.js:405:6)
at hooks.afterResolve.callAsync (/usr/lib/node_modules/webpack/lib/NormalModuleFactory.js:155:13)
at AsyncSeriesWaterfallHook.eval [as callAsync] (eval at create (/usr/lib/node_modules/webpack/node_modules/tapable/lib/HookCodeFactory.js:32:10), :6:1)
at AsyncSeriesWaterfallHook.lazyCompileHook (/usr/lib/node_modules/webpack/node_modules/tapable/lib/Hook.js:154:20)
at resolver (/usr/lib/node_modules/webpack/lib/NormalModuleFactory.js:138:29)
at process.nextTick (/usr/lib/node_modules/webpack/lib/NormalModuleFactory.js:342:9)
at _combinedTickCallback (internal/process/next_tick.js:131:7)
at process._tickCallback (internal/process/next_tick.js:180:9)

Get quoted message object

Hi, is there a way to get the quoted message object, instead of only the quoted_stanza_id, wich references the id of the quoted message. The thing I saw which maybe could affect is this property.

But turning the property to True, and executing the make commands again I only obtained the quoted message id.

Is there a way to get the full object body?

How to refresh QR code?

Suppose calling await driver.qr() times out . How to refresh the qr code ? Is there an api to refresh the qr ?

Sending message to chat not present in collection

Hi. Is there a way to send a message to chat not present in the ChatCollection?

I've created a method that discover the Chat by it's phone number, based in a method from the mukulhase wrapper. But I was not able to add the found chat in the ChatCollection, or update the ChatCollection in some way.

So what I did was to discover the new chat and send the message at the same method, but again, the chat did not go to the ChatCollection and I did not like this method very much.

There is already a way to send message in this scenery where the chat is not initialized or could you give some help to implement this?

Yeah, this would go against with some spam ethics. :/

help to send image

Congratulations, I'm really liking the lib,
Give me a little help, please.

I want to send an image
I'm doing the following

self._driver.chats [message.chat.id] .send_media ('/ home / profiles / archive / voucher.jpeg', caption = 'test')

but I think I'm wrong, what's the right way?

no matching distribution found for aiohttp>=3.0 (from whalesong[firefox])

Ubuntu 14.04.5 LTS - Python 3.4.3 - pip3 18.0
pip3 install whalesong[firefox]
Collecting aiohttp>=3.0 (from whalesong[firefox])
Could not find a version that satisfies the requirement aiohttp>=3.0 (from whalesong[firefox]) (from versions: 0.1, 0.2, 0.3, 0.4, 0.4.1, 0.4.2, 0.4.3, 0.4.4, 0.5.0, 0.6.0, 0.6.1, 0.6.2, 0.6.3, 0.6.4, 0.6.5, 0.7.0, 0.7.1, 0.7.2, 0.7.3, 0.8.0, 0.8.1, 0.8.2, 0.8.3, 0.8.4, 0.9.0, 0.9.1, 0.9.2, 0.9.3, 0.10.0, 0.10.1, 0.10.2, 0.11.0, 0.12.0, 0.13.0, 0.13.1, 0.14.0, 0.14.1, 0.14.2, 0.14.3, 0.14.4, 0.15.0, 0.15.1, 0.15.2, 0.15.3, 0.16.0, 0.16.1, 0.16.2, 0.16.3, 0.16.4, 0.16.5, 0.16.6, 0.17.0, 0.17.1, 0.17.2, 0.17.3, 0.17.4, 0.18.0, 0.18.1, 0.18.2, 0.18.3, 0.18.4, 0.19.0, 0.20.0, 0.20.1, 0.20.2, 0.21.0, 0.21.1, 0.21.2, 0.21.4, 0.21.5, 0.21.6, 0.22.0a0, 0.22.0b0, 0.22.0b1, 0.22.0b2, 0.22.0b3, 0.22.0b4, 0.22.0b5, 0.22.0b6, 0.22.0, 0.22.1, 0.22.2, 0.22.3, 0.22.4, 0.22.5, 1.0.0, 1.0.1, 1.0.2, 1.0.3, 1.0.5, 1.1.0, 1.1.1, 1.1.2, 1.1.3, 1.1.4, 1.1.5, 1.1.6, 1.2.0, 1.3.0, 1.3.1, 1.3.2, 1.3.3, 1.3.4, 1.3.5, 2.0.0rc1, 2.0.0, 2.0.1, 2.0.2, 2.0.3, 2.0.4, 2.0.5, 2.0.6, 2.0.6.post1, 2.0.7, 2.1.0, 2.2.0, 2.2.1, 2.2.2, 2.2.3, 2.2.4, 2.2.5, 2.3.0a1, 2.3.0a2, 2.3.0a4, 2.3.0, 2.3.1a1, 2.3.1, 2.3.2b2, 2.3.2b3, 2.3.2, 2.3.3, 2.3.4, 2.3.5, 2.3.6, 2.3.7, 2.3.8, 2.3.9, 2.3.10)
No matching distribution found for aiohttp>=3.0 (from whalesong[firefox])

node version

I was using the whalesong installing it with pip, but this was creating a lot of communicatino between other js modules I have running in my project. So, I want to ask if its ok to you if I create a simple Whalesong version (monitor messages and chats in the beginning), using
you js script working with puppeteer?

I'll create a repo and publish in npm for others to use it, if it's ok.

Remote Selenium

hi there
is possible to run with Remote Selenium ?
thanks

Start Driver with headless = True

Hello
I don't understand how I can run one of example with "headless=True".
I am try start minibot.py in docker container, but output was empty.
Which the moment I can call method get_qr() and get him?

send_media with audio file fails / How to send audio?

When you send any file with audio mime type sending fails.
(Seems like the download function in the minibot example also cannot handle mp3 send.)

How about an send_audio function where the file gets sent like an voice recording?

start of two bots

How I can run two bots?
I try create two objects Minibot and start in one event loop, but I have error

error code EAUDITNOPJSON error audit No package.json found: Cannot audit a project without a package.json

0 info it worked if it ends with ok
1 verbose cli [ '/usr/local/bin/node', '/usr/local/bin/npm', 'audit', 'fix' ]
2 info using [email protected]
3 info using [email protected]
4 verbose npm-session f7c3fce32977bd48
5 verbose stack Error: No package.json found: Cannot audit a project without a package.json
5 verbose stack at Bluebird.all.spread (/usr/local/lib/node_modules/npm/lib/audit.js:139:19)
5 verbose stack at tryCatcher (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/util.js:16:23)
5 verbose stack at Promise._settlePromiseFromHandler (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:509:35)
5 verbose stack at Promise._settlePromise (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:569:18)
5 verbose stack at Promise._settlePromise0 (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:614:10)
5 verbose stack at Promise._settlePromises (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:693:18)
5 verbose stack at Promise._fulfill (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:638:18)
5 verbose stack at PromiseArray._resolve (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/promise_array.js:126:19)
5 verbose stack at PromiseArray._promiseFulfilled (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/promise_array.js:144:14)
5 verbose stack at PromiseArray._iterate (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/promise_array.js:114:31)
5 verbose stack at PromiseArray.init [as _init] (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/promise_array.js:78:10)
5 verbose stack at Promise._settlePromise (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:566:21)
5 verbose stack at Promise._settlePromise0 (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:614:10)
5 verbose stack at Promise._settlePromises (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:693:18)
5 verbose stack at Promise._fulfill (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:638:18)
5 verbose stack at PromiseArray._resolve (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/promise_array.js:126:19)
6 verbose cwd /Users/marcelocecin/Downloads/whalesong-master
7 verbose Darwin 18.0.0
8 verbose argv "/usr/local/bin/node" "/usr/local/bin/npm" "audit" "fix"
9 verbose node v8.9.1
10 verbose npm v6.1.0
11 error code EAUDITNOPJSON
12 error audit No package.json found: Cannot audit a project without a package.json
13 verbose exit [ 1, true ]

How mark message "Read"

Hello, how I mark message is read?
How I can set permanent online status while driver work?
Thanks

QA army

We need more users who tests code, finds bugs and submits issues.

Error after executing the minibot.py file

Hey!
I got a problem with execute the minibot.py :/
Hope you can help me :)

Versions:
Ubuntu 18.04 is the active os - I tested Debian 9 bevore
Geckodriver: v0.21.0
Selenium & Firefox: newest Version from setup.

Setup works without errors.
I get this error two times after I send python3 examples/minibot.py
Traceback (most recent call last): File "examples/minibot.py", line 125, in <module> bot.loop.run_until_complete(bot.start()) File "/usr/lib/python3.6/asyncio/base_events.py", line 468, in run_until_complete return future.result() File "examples/minibot.py", line 116, in start await self._driver.start() File "/bot/servo000/whalesong/__init__.py", line 43, in start await self._driver.start_driver() File "/bot/servo000/whalesong/driver.py", line 56, in start_driver await self._start_fut File "/bot/servo000/whalesong/driver.py", line 83, in start_driver self.driver = await self._start_fut File "/bot/servo000/whalesong/driver.py", line 52, in _run_async return await self.loop.run_in_executor(self._pool_executor, partial(method, *args, **kwargs)) File "/usr/lib/python3.6/concurrent/futures/thread.py", line 56, in run result = self.fn(*self.args, **self.kwargs) File "/bot/servo000/whalesong/driver.py", line 76, in start service_args=['--marionette-port', '2828']) File "/usr/local/lib/python3.6/dist-packages/selenium/webdriver/firefox/webdriver.py", line 170, in __init__ keep_alive=True) File "/usr/local/lib/python3.6/dist-packages/selenium/webdriver/remote/webdriver.py", line 156, in __init__ self.start_session(capabilities, browser_profile) File "/usr/local/lib/python3.6/dist-packages/selenium/webdriver/remote/webdriver.py", line 251, in start_session response = self.execute(Command.NEW_SESSION, parameters) File "/usr/local/lib/python3.6/dist-packages/selenium/webdriver/remote/webdriver.py", line 320, in execute self.error_handler.check_response(response) File "/usr/local/lib/python3.6/dist-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response raise exception_class(message, screen, stacktrace) selenium.common.exceptions.SessionNotCreatedException: Message: Unable to find a matching set of capabilities

Thanks!

Too stupid to run it, sorry

Hey, I actually just want to mess around with some of the functions you've build in the JS.

I've tried pasting the whole JS in the console of a running Whatsapp Web Session in Chrome and it did find the modules and everything but I couldn't find a variable where to access the Managers etc. Like, what is the root variable where you put everything that the python scripts can access then?

If it's too hard interacting with the JS that way, I'd be grateful if you could explain running the python code to me. I've googled a lot to even get it installed but running the init.py directly in the terminal gives me No module named '__main__.driver'; '__main__' is not a package. Removing 'main.' as in making it only say driver in the import statement works at least for this issue, but continuing this throughout the other files causes other issues.

I am using python3.7 on macOS

Thank you

EDIT: I personally have no need for it anymore, I was able to solve my issue without this API. Still, very good work, I am seriously amazed!

How is echo works actually in minibot.py ?

Hi guys, I able to run minibot.py and use the whatsapp.
It just shows below words in python console.

Monitor new messages

How is those 3 features in minibot.py works? Thanks

Unable to run in Docker

Hi there! I've made a gateway to handle whatsapp web using your library to communicate with my server. Executing in my machine it work perfectly, but when I try to run inside a Docker image I've got this error, when I used the headless Firefox:

Traceback (most recent call last):
  File "test.py", line 105, in <module>
    monitor.loop.run_until_complete(monitor.start())
  File "/usr/lib/python3.6/asyncio/base_events.py", line 468, in run_until_complete
    return future.result()
  File "test.py", line 89, in start
    await self._driver.start()
  File "/c/python/venv/lib/python3.6/site-packages/whalesong/__init__.py", line 45, in start
    await self._driver.connect()
  File "/c/python/venv/lib/python3.6/site-packages/whalesong/driver.py", line 91, in connect
    await self.run_scriptlet()
  File "/c/python/venv/lib/python3.6/site-packages/whalesong/driver.py", line 102, in run_scriptlet
    self.driver.execute_script(script.read())
  File "/usr/lib/python3.6/encodings/ascii.py", line 26, in decode
    return codecs.ascii_decode(input, self.errors)[0]
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc2 in position 69150: ordinal not in range(128)

I installed the library with:

pip install whalesong

The error above it's with the test statemonitor.py. My Dockerfile is:

FROM ubuntu

MAINTAINER Neppo "[email protected]"

USER root

ENV LC_ALL C
ENV DEBIAN_FRONTEND noninteractive
ENV DEBCONF_NONINTERACTIVE_SEEN true

# Update the sources list
RUN apt-get -y update
RUN apt-get install -y -q software-properties-common wget
RUN add-apt-repository -y ppa:mozillateam/firefox-next
RUN apt-get update -y
RUN apt-get install -y -q \
  firefox \
  openjdk-8-jre-headless \
  xvfb \
  xfonts-100dpi \
  xfonts-75dpi \
  xfonts-scalable \
  xfonts-cyrillic

RUN rm -rf /var/lib/apt/lists/*
RUN firefox -CreateProfile "headless /moz-headless" -headless

# Update again
RUN apt-get -y update

# Install basic applications
RUN apt-get install -y tar vim nodejs git curl unzip npm nano wget dialog net-tools \ 
    build-essential software-properties-common

# Install Firefox
RUN apt-get install -y firefox

# Install and setup Gecko
ENV GECKODRIVER_VERSION 0.21.0
RUN wget --no-verbose -O /tmp/geckodriver.tar.gz https://github.com/mozilla/geckodriver/releases/download/v$GECKODRIVER_VERSION/geckodriver-v$GECKODRIVER_VERSION-linux32.tar.gz \
  && rm -rf /opt/geckodriver \
  && tar -C /opt -zxf /tmp/geckodriver.tar.gz \
  && rm /tmp/geckodriver.tar.gz \
  && mv /opt/geckodriver /opt/geckodriver-$GECKODRIVER_VERSION \
  && chmod 755 /opt/geckodriver-$GECKODRIVER_VERSION \
  && ln -fs /opt/geckodriver-$GECKODRIVER_VERSION /usr/bin/geckodriver \
  && ln -fs /opt/geckodriver-$GECKODRIVER_VERSION /usr/bin/wires

# Install Python and Basic Python Tools
RUN apt-get install -y python3.6 python3-venv python3-pip

COPY . /c
WORKDIR /c

CMD sleep 3600;

With sleep the error occurred, but when I execute my code in Dockerfile CMD, looks like a loop, I don't get any error message, nothing.

A ubuntu image is used, with:

Mozilla Firefox 62.0
geckodriver 0.21.0
Python 3.6.5

Inside the Docker, a script install Selenium Standalone Server 2.44 and start it.

The geckodriver log did not throw any error also. The Firefox processes also starts, with:

/usr/lib/firefox/firefox -marionette -headless -profi...
/usr/lib/firefox/firefox -contentproc -childID 1 -isF ...
/usr/lib/firefox/firefox -contentproc -childID 2 -isF ...

Because of the Docker resolution I couldn't get the full description.

Thanks in advance!

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.