Code Monkey home page Code Monkey logo

geckordp's People

Contributors

goodboy avatar jpramosi avatar longguzzz avatar

Stargazers

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

Watchers

 avatar

geckordp's Issues

How to hide robot icon and tips?

x

Tried set useAutomationExtension=False, but it still not work, thanks!

profile = pm.get_profile_by_name(profile_name)
profile.set_config("useAutomationExtension", False)
profile.set_config("dom.webdriver.enabled", False)
profile.set_required_configs()

Tab mgmt APIs?

I know as per #9 and #10 that there are definitely tab reading methods but is there any way to create new tabs, and further possibly unload or discard those tabs during creation?

For example I'd like to be able to do something like what the does but dynamically ๐Ÿ˜Ž


For some examples ideally we could use some of these subsys apis to accomplish this:


Probably more discussion / research results to come..

Development instructions

Hi, thanks for this very promising tool!
I would be interested in using it for accessibility testing, by using the features available in the accessibility tab of the devtools.

I followed the instructions on the develop section of your readme.md, but I did not succeed to start 2 parallel instances of firefox on Linux and on MacOS.

The issue is that the geckordp profile was not yet created. May I send a PR with some update to the documentation to bring some precisions about this step?

How to disable error log form geckordp?

Keep getting this error after restarted the firefox:

2022-06-03 11:09:24,550 [geckordp][ERROR] - wait_process_loaded(): waiting for process[5876] failed, wait 15 seconds:
process no longer exists (pid=5876)

How to execute js code in Browser Console?

I want to execute js code in Browser Console(Ctrl+Shift+J) rather than invoke it in single tab, is that possible?
And how can I call the extension API to execute something like localStorage?
Thanks

Cookie storage example fails with error `sessionString is undefined`

Hello, I'm trying to run the cookie_storage.py example script, but it seems to fail out of the box. Here are the console logs after enabling debug mode:

2023-10-15 23:57:41,394 [geckordp][DEBUG] - wait_process_loaded(): expired=False
2023-10-15 23:57:41,407 [geckordp][DEBUG] - connect():
2023-10-15 23:57:41,407 [geckordp][DEBUG] - __connect(): Queue read task
2023-10-15 23:57:41,407 [geckordp][DEBUG] - __connect(): Run IO loop
2023-10-15 23:57:41,407 [geckordp][DEBUG] - __open_connection(): Try to open connection
2023-10-15 23:57:41,412 [geckordp][DEBUG] - __open_connection(): Start listening
2023-10-15 23:57:41,422 [geckordp][DEBUG] - __read(): message complete (226 == 226)
2023-10-15 23:57:41,422 [geckordp][INFO] - __print_response(): RESPONSE<-
{
  "from": "root",
  "applicationType": "browser",
  "testConnectionPrefix": "server1.conn0.",
  "traits": {
    "networkMonitor": true,
    "resources": {
      "extensions-backgroundscript-status": true
    },
    "workerConsoleApiMessagesDispatchedToMainThread": true
  }
}
2023-10-15 23:57:41,422 [geckordp][DEBUG] - __handle_single_request(): response valid, set result
2023-10-15 23:57:41,422 [geckordp][DEBUG] - __sync_send_receive():
2023-10-15 23:57:41,422 [geckordp][INFO] - __send(): REQUEST->
{
  "to": "root",
  "type": "listTabs"
}
2023-10-15 23:57:41,425 [geckordp][DEBUG] - __read(): message complete (292 == 292)
2023-10-15 23:57:41,425 [geckordp][INFO] - __print_response(): RESPONSE<-
{
  "tabs": [
    {
      "actor": "server1.conn0.tabDescriptor1",
      "browserId": 3,
      "browsingContextID": 4,
      "isZombieTab": false,
      "outerWindowID": 8,
      "selected": true,
      "title": "SameSite Cookies Tester",
      "traits": {
        "watcher": true,
        "supportsReloadDescriptor": true
      },
      "url": "https://samesitetest.com/cookies/set"
    }
  ],
  "from": "root"
}
2023-10-15 23:57:41,425 [geckordp][DEBUG] - __handle_single_request(): response valid, set result
2023-10-15 23:57:41,425 [geckordp][DEBUG] - __sync_send_receive():
2023-10-15 23:57:41,425 [geckordp][INFO] - __send(): REQUEST->
{
  "to": "server1.conn0.tabDescriptor1",
  "type": "getWatcher",
  "isServerTargetSwitchingEnabled": null,
  "isPopupDebuggingEnabled": null
}
2023-10-15 23:57:41,428 [geckordp][DEBUG] - __read(): message complete (596 == 596)
2023-10-15 23:57:41,429 [geckordp][INFO] - __print_response(): RESPONSE<-
{
  "actor": "server1.conn0.watcher2",
  "traits": {
    "frame": true,
    "process": true,
    "worker": true,
    "resources": {
      "console-message": true,
      "css-change": true,
      "css-message": true,
      "document-event": true,
      "Cache": true,
      "cookies": true,
      "error-message": true,
      "extension-storage": true,
      "indexed-db": true,
      "local-storage": true,
      "session-storage": true,
      "platform-message": true,
      "network-event": true,
      "network-event-stacktrace": true,
      "reflow": true,
      "stylesheet": true,
      "source": true,
      "thread-state": true,
      "server-sent-event": true,
      "websocket": true,
      "tracing-state": true,
      "last-private-context-exit": true
    }
  },
  "from": "server1.conn0.tabDescriptor1"
}
2023-10-15 23:57:41,429 [geckordp][DEBUG] - __handle_single_request(): response valid, set result
2023-10-15 23:57:41,429 [geckordp][DEBUG] - __sync_send_receive():
2023-10-15 23:57:41,429 [geckordp][INFO] - __send(): REQUEST->
{
  "to": "server1.conn0.watcher2",
  "type": "watchTargets",
  "targetType": "frame"
}
2023-10-15 23:57:41,431 [geckordp][DEBUG] - __read(): message complete (33 == 33)
2023-10-15 23:57:41,431 [geckordp][INFO] - __print_response(): RESPONSE<-
{
  "from": "server1.conn0.watcher2"
}
2023-10-15 23:57:41,431 [geckordp][DEBUG] - __handle_single_request(): response valid, set result
2023-10-15 23:57:41,431 [geckordp][DEBUG] - __sync_send_receive():
2023-10-15 23:57:41,431 [geckordp][INFO] - __send(): REQUEST->
{
  "to": "server1.conn0.watcher2",
  "type": "watchResources",
  "resourceTypes": [
    "cookies"
  ]
}
2023-10-15 23:57:41,436 [geckordp][DEBUG] - __read(): message complete (384 == 384)
2023-10-15 23:57:41,436 [geckordp][INFO] - __print_response(): RESPONSE<-
{
  "type": "resource-available-form",
  "resources": [
    {
      "actor": "server1.conn0.cookies3",
      "hosts": {
        "https://samesitetest.com": []
      },
      "traits": {
        "supportsAddItem": true,
        "supportsRemoveItem": true,
        "supportsRemoveAll": true,
        "supportsRemoveAllSessionCookies": true
      },
      "resourceType": "cookies",
      "resourceId": "cookies-2147483650",
      "resourceKey": "cookies",
      "browsingContextID": 4
    }
  ],
  "from": "server1.conn0.watcher2"
}
2023-10-15 23:57:41,436 [geckordp][DEBUG] - __handle_events(): [server1.conn0.watcher2][resource-available-form] handled
2023-10-15 23:57:41,436 [geckordp][DEBUG] - __read(): message complete (33 == 33)
2023-10-15 23:57:41,436 [geckordp][INFO] - __print_response(): RESPONSE<-
{
  "from": "server1.conn0.watcher2"
}
2023-10-15 23:57:41,437 [geckordp][DEBUG] - __handle_single_request(): response valid, set result
2023-10-15 23:57:41,437 [geckordp][DEBUG] - __sync_send_receive():
2023-10-15 23:57:41,437 [geckordp][INFO] - __send(): REQUEST->
{
  "to": "server1.conn0.cookies3",
  "type": "getStoreObjects",
  "host": "https://samesitetest.com",
  "names": null,
  "options": {}
}
2023-10-15 23:57:41,438 [geckordp][DEBUG] - __read(): message complete (181 == 181)
2023-10-15 23:57:41,438 [geckordp][INFO] - __print_response(): RESPONSE<-
{
  "from": "server1.conn0.cookies3",
  "error": "TypeError",
  "message": "sessionString is undefined",
  "fileName": "resource://devtools/shared/natural-sort.js",
  "lineNumber": 50,
  "columnNumber": 5
}
2023-10-15 23:57:41,438 [geckordp][DEBUG] - __handle_single_request(): response valid, set result
2023-10-15 23:57:41,438 [geckordp][ERROR] - __sync_send_receive(): Error on request:
{'to': 'server1.conn0.cookies3', 'type': 'getStoreObjects', 'host': 'https://samesitetest.com', 'names': None, 'options': {}}
{
  "from": "server1.conn0.cookies3",
  "error": "TypeError",
  "message": "sessionString is undefined",
  "fileName": "resource://devtools/shared/natural-sort.js",
  "lineNumber": 50,
  "columnNumber": 5
}
{
  "from": "server1.conn0.cookies3",
  "error": "TypeError",
  "message": "sessionString is undefined",
  "fileName": "resource://devtools/shared/natural-sort.js",
  "lineNumber": 50,
  "columnNumber": 5
}
2023-10-15 23:57:41,438 [geckordp][DEBUG] - __sync_send_receive():
2023-10-15 23:57:41,438 [geckordp][INFO] - __send(): REQUEST->
{
  "to": "server1.conn0.cookies3",
  "type": "editItem",
  "data": {
    "host": "https://samesitetest.com",
    "key": "uniqueKey",
    "field": "value",
    "oldValue": "",
    "newValue": "my_new_value",
    "items": {}
  }
}
2023-10-15 23:57:41,439 [geckordp][DEBUG] - __read(): message complete (33 == 33)
2023-10-15 23:57:41,439 [geckordp][INFO] - __print_response(): RESPONSE<-
{
  "from": "server1.conn0.cookies3"
}
2023-10-15 23:57:41,439 [geckordp][DEBUG] - __handle_single_request(): response valid, set result
Traceback (most recent call last):
  File "cookie_storage.py", line 200, in <module>
    main()
  File "cookie_storage.py", line 152, in main
    _data = stores_update_fut.result(1.0)
  File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/concurrent/futures/_base.py", line 460, in result
    raise TimeoutError()
concurrent.futures._base.TimeoutError

I'm using Python 3.10.8 and Firefox 115.3.1esr (64 bit) on macOS 10.14.

Do you have any guidance for debugging the script and making it work? Thanks.

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.