douglasdcm / caqui Goto Github PK
View Code? Open in Web Editor NEWRun synchronous and asynchronous commands in WebDrivers
License: MIT License
Run synchronous and asynchronous commands in WebDrivers
License: MIT License
Hi @douglasdcm ,
I have been trying to migrate to your library and noticed that functionality to switch to an IFrame is missing.
Some pages just display other pages inside an iFrame and it would be very useful to access it.
Normally one can access an iFrame with the following code:
iframe = driver.find_elements(By.TAG_NAME, 'iframe')
driver.switch_to.frame(iframe[0])
I am not sure how to tackle this issue, so just wanted to let you know.
Method | URI Template | Command |
---|
Method URI Template Command
POST /session New Session
DELETE /session/{session id} Delete Session
GET /status Status
GET /session/{session id}/timeouts Get Timeouts
POST /session/{session id}/timeouts Set Timeouts
POST /session/{session id}/url Navigate To
GET /session/{session id}/url Get Current URL
POST /session/{session id}/back Back
POST /session/{session id}/forward Forward
POST /session/{session id}/refresh Refresh
GET /session/{session id}/title Get Title
GET /session/{session id}/window Get Window Handle
DELETE /session/{session id}/window Close Window
POST /session/{session id}/window Switch To Window
GET /session/{session id}/window/handles Get Window Handles
POST /session/{session id}/window/new New Window
POST /session/{session id}/frame Switch To Frame
POST /session/{session id}/frame/parent Switch To Parent Frame
GET /session/{session id}/window/rect Get Window Rect
POST /session/{session id}/window/rect Set Window Rect
POST /session/{session id}/window/maximize Maximize Window
POST /session/{session id}/window/minimize Minimize Window
POST /session/{session id}/window/fullscreen Fullscreen Window
GET /session/{session id}/element/active Get Active Element
GET /session/{session id}/element/{element id}/shadow Get Element Shadow Root
POST /session/{session id}/element Find Element
POST /session/{session id}/elements Find Elements
POST /session/{session id}/element/{element id}/element Find Element From Element
POST /session/{session id}/element/{element id}/elements Find Elements From Element
POST /session/{session id}/shadow/{shadow id}/element Find Element From Shadow Root
POST /session/{session id}/shadow/{shadow id}/elements Find Elements From Shadow Root
GET /session/{session id}/element/{element id}/selected Is Element Selected
GET /session/{session id}/element/{element id}/attribute/{name} Get Element Attribute
GET /session/{session id}/element/{element id}/property/{name} Get Element Property
GET /session/{session id}/element/{element id}/css/{property name} Get Element CSS Value
GET /session/{session id}/element/{element id}/text Get Element Text
GET /session/{session id}/element/{element id}/name Get Element Tag Name
GET /session/{session id}/element/{element id}/rect Get Element Rect
GET /session/{session id}/element/{element id}/enabled Is Element Enabled
GET /session/{session id}/element/{element id}/computedrole Get Computed Role
GET /session/{session id}/element/{element id}/computedlabel Get Computed Label
POST /session/{session id}/element/{element id}/click Element Click
POST /session/{session id}/element/{element id}/clear Element Clear
POST /session/{session id}/element/{element id}/value Element Send Keys
GET /session/{session id}/source Get Page Source
POST /session/{session id}/execute/sync Execute Script
POST /session/{session id}/execute/async Execute Async Script
GET /session/{session id}/cookie Get All Cookies
GET /session/{session id}/cookie/{name} Get Named Cookie
POST /session/{session id}/cookie Add Cookie
DELETE /session/{session id}/cookie/{name} Delete Cookie
DELETE /session/{session id}/cookie Delete All Cookies
POST /session/{session id}/actions Perform Actions
DELETE /session/{session id}/actions Release Actions
POST /session/{session id}/alert/dismiss Dismiss Alert
POST /session/{session id}/alert/accept Accept Alert
GET /session/{session id}/alert/text Get Alert Text
POST /session/{session id}/alert/text Send Alert Text
GET /session/{session id}/screenshot Take Screenshot
GET /session/{session id}/element/{element id}/screenshot Take Element Screenshot
POST /session/{session id}/print Print Page
reference: https://www.w3.org/TR/webdriver/#endpoints #7
Hey, @douglasdcm , I have a question that maybe you know the answer.
Im trying to create a session which wont open a google chrome tab in my computer. Do you know how can I make this with caqui?
Actually with Selenium I need to do this:
``
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
options = Options()
options.add_argument("--headless") # Agregar argumento para ejecutar en modo headless
driver = webdriver.Chrome(options=options)
``
Thanks a lot!
Hi, how are you? First thank you for making this library. I have started using it yesterday and it works perfectly (and really fast).
While learning to use it I have encountered two things I would need (that maybe many people will also need):
Do you know how to make number 2 a feature?
Thank you so much for this work!
For example if response.status_code == 200: pass
Use the __get
in https://github.com/douglasdcm/caqui/blob/main/caqui/synchronous.py as an example
Hey mate, how are you? I hope you are doing well!
I have this small suggestion: it would be amazing when an element is not found that an exception is being raised (such as Selenium does). It is quite annoying to have to check the returned string.
Im going to push soon swith_to additions!
Thanks for the amazing work!
tests/test_sniffer.py sssssssssssssssss [ 8%]
tests/feature/test_sync_and_async.py .ss...ssss.............sss................................................ [ 47%]
tests/integration/test_async_scenarios.py . [ 47%]
tests/integration/test_object_scenarios.py E [ 48%]
tests/integration/test_sync_scenarios.py .... [ 50%]
tests/unit/test_async_unit.py ................................... [ 68%]
tests/unit/test_by.py ........ [ 72%]
tests/unit/test_helper.py .... [ 75%]
tests/unit/test_objects.py EEEEEEEEEEEEEE [ 82%]
tests/unit/test_sync_unit.py .................................. [100%]
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.