Context
- class selenium_driverless.types.context.Context(base_target, driver, context_id=None, loop=None, is_incognito=False, max_ws_size=1048576)[source]
Allows you to drive the browser without chromedriver.
- async set_download_behaviour(behavior, path=None)[source]
set the download behaviour
- Parameters:
behavior (
Literal
['deny'
,'allow'
,'allowAndName'
,'default'
]) – the behaviour to set the downloading topath (
Optional
[str
]) – the path to the default download directory
Warning
setting
behaviour=allow
instead ofallowAndName
can cause some bugs
- property downloads_dir
the current downloads directory
- async wait_download(timeout=30)[source]
wait for a download on the current tab
returns something like
{ "frameId": "2D543B5E8B14945B280C537A4882A695", "guid": "c91df4d5-9b45-4962-84df-3749bd3f926d", "url": "https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf", "suggestedFilename": "dummy.pdf", # only if options.downloads_dir specified "guid_file": "D:\System\AppData\PyCharm\scratches\downloads\c91df4d5-9b45-4962-84df-3749bd3f926d" }
- Parameters:
timeout (
float
) – time in seconds to wait for a download- Return type:
dict
Warning
downloads from iframes not supported yet
- async get(url, referrer=None, wait_load=True, timeout=30)[source]
Loads a web page in the current Target
- Parameters:
url (
str
) – the url to load.referrer (
Optional
[str
]) – the referrer to load the page withwait_load (
bool
) – whether to wait for the webpage to loadtimeout (
float
) – the maximum time in seconds for waiting on load
- Return type:
dict
returns the same as
Target.wait_download
if the url initiates a download
- property title: str
Returns the title of the current target
- async send_keys(text)[source]
send text & keys to the current target
- Parameters:
text (
str
) – the text to send
- async execute_raw_script(script, *args, await_res=False, serialization=None, max_depth=None, timeout=2, execution_context_id=None, unique_context=True)[source]
example: script= “function(…arguments){obj.click()}” “const obj” will be the Object according to obj_id
- async execute_script(script, *args, max_depth=2, serialization=None, timeout=2, execution_context_id=None, unique_context=True)[source]
executes JavaScript synchronously on
GlobalThis
such asreturn document
see
Target.execute_raw_script
for argument descriptions
- async execute_async_script(script, *args, max_depth=2, serialization=None, timeout=2, execution_context_id=None, unique_context=True)[source]
executes JavaScript asynchronously on
GlobalThis
such asWarning
using execute_async_script is not recommended as it doesn’t handle exceptions correctly. Use
Chrome.eval_async
resolve = arguments[arguments.length-1]
see
Target.execute_raw_script
for argument descriptions
- async eval_async(script, *args, max_depth=2, serialization=None, timeout=2, execution_context_id=None, unique_context=True)[source]
executes JavaScript asynchronously on
GlobalThis
such asres = await fetch("https://httpbin.org/get"); // mind CORS! json = await res.json() return json
see
Target.execute_raw_script
for argument descriptions
- property current_url: str
Gets the URL of the current page.
- Usage:
target.current_url
- property page_source: str
Gets the docs_source of the current page.
- Usage:
target.page_source
- async quit(timeout=30, start_monotonic=None)[source]
Quits the target and closes every associated window.
- Usage:
target.quit()
- Return type:
None
- property current_window_handle: str
Returns the current target_id
- property window_handles: List[TargetInfo]
Returns the handles of all windows within the current session.
- async new_window(type_hint='tab', url='', activate=False, focus=True, background=True)[source]
creates a new tab or window
- Parameters:
type_hint (
Literal
['tab'
,'window'
]) – what kind of target to createurl – url to start the target at
activate (
bool
) – whether to bring the target to the frontfocus (
bool
) – whether to emulate focus on the targetbackground (
bool
) – whether to start the target in the background
- Return type:
- async maximize_window()[source]
Maximizes the current window that webdriver is using.
- Return type:
None
- async fullscreen_window()[source]
Invokes the window manager-specific ‘full screen’ operation.
- Return type:
None
- async minimize_window()[source]
Invokes the window manager-specific ‘minimize’ operation.
- Return type:
None
- async print_page()[source]
Takes PDF of the current page.
The target makes the best effort to return a PDF based on the provided parameters.
- Return type:
str
- property switch_to: SwitchTo
- Returns:
SwitchTo: an object containing all options to switch focus into
- Usage:
element = target.switch_to.active_element alert = target.switch_to.alert target.switch_to.default_content() target.switch_to.frame('frame_name') target.switch_to.frame(1) target.switch_to.frame(target.find_elements(By.TAG_NAME, "iframe")[0]) target.switch_to.parent_frame() target.switch_to.window('main')
- async get_cookies()[source]
Returns a set of dictionaries, corresponding to cookies visible in the current target.
- Return type:
List
[dict
]
- async get_cookie(name)[source]
Get a single cookie by name. Returns the cookie if found, None if not.
- Return type:
Optional
[Dict
]
- async delete_cookie(name, url=None, domain=None, path=None)[source]
Deletes a single cookie with the given name.
- Return type:
None
- async delete_all_cookies()[source]
Delete all cookies in the scope of the session.
- Return type:
None
- async add_cookie(cookie_dict)[source]
Adds a cookie to your current session.
- Parameters:
cookie_dict (
dict
) – A dictionary object, with required keys - “name” and “value”; optional keys - “path”, “domain”, “secure”, “httpOnly”, “expiry”, “sameSite”- Usage:
target.add_cookie({'name' : 'foo', 'value' : 'bar'}) target.add_cookie({'name' : 'foo', 'value' : 'bar', 'path' : '/'}) target.add_cookie({'name' : 'foo', 'value' : 'bar', 'path' : '/', 'secure' : True}) target.add_cookie({'name' : 'foo', 'value' : 'bar', 'sameSite' : 'Strict'})
- Return type:
None
- async find_element(by, value, timeout=None)[source]
find an element in the current target
- Parameters:
by (
str
) – one of the locators atBy
value (
str
) – the actual query to find the element bytimeout (
Optional
[float
]) – how long to wait for the element to exist
- Return type:
- async find_elements(by, value, timeout=3)[source]
find multiple elements in the current target
- Parameters:
by (
str
) – one of the locators atBy
value (
str
) – the actual query to find the elements bytimeout (
float
) – how long to wait for not being in a page reload loop in seconds
- Return type:
List
[WebElement
]
- async search_elements(query)[source]
query:str | Plain text or query selector or XPath search query.
- Return type:
List
[WebElement
]
- async get_screenshot_as_file(filename)[source]
Saves a screenshot of the current window to a PNG image file.
- Parameters:
filename (
str
) – The full path you wish to save your screenshot to. This should end with a .png extension.- Return type:
None
- async save_screenshot(filename)[source]
alias to :func: driver.get_screenshot_as_file <selenium_driverless.webdriver.Chrome.get_screenshot_as_file>
- Return type:
None
- async get_screenshot_as_png()[source]
Gets the screenshot of the current window as a binary data.
- Usage:
target.get_screenshot_as_png()
- Return type:
bytes
- async save_snapshot(filename)[source]
Saves a snapshot of the current window to a MHTML file.
- Parameters:
filename (
str
) – The full path you wish to save your snapshot to. This should end with a.mhtml
extension.
await driver.get_snapshot('snapshot.mhtml')
- async set_window_size(width, height, windowHandle='current')[source]
Sets the width and height of the current window. (window.resizeTo)
- Args:
width: the width in pixels to set the window to
height: the height in pixels to set the window to
- Usage:
target.set_window_size(800,600)
- Return type:
None
- async set_window_position(x, y, windowHandle='current')[source]
Sets the x,y position of the current window. (window.moveTo)
- Args:
x: the x-coordinate in pixels to set the window position
y: the y-coordinate in pixels to set the window position
- Usage:
target.set_window_position(0,0)
- Return type:
dict
- async get_window_position(windowHandle='current')[source]
Gets the x,y position of the current window.
- Usage:
target.get_window_position()
- Return type:
dict
- async get_window_rect()[source]
Gets the x, y coordinates of the window as well as height and width of the current window.
- Usage:
target.get_window_rect()
- Return type:
dict
- async set_window_rect(x=None, y=None, width=None, height=None)[source]
Sets the x, y coordinates of the window as well as height and width of the current window. This method is only supported for W3C compatible browsers; other browsers should use set_window_position and set_window_size.
- Usage:
target.set_window_rect(x=10, y=10) target.set_window_rect(width=100, height=200) target.set_window_rect(x=10, y=10, width=100, height=200)
- Return type:
dict
- async get_network_conditions()[source]
Gets Chromium network emulation settings.
- Returns:
A dict. For example: {‘latency’: 4, ‘download_throughput’: 2, ‘upload_throughput’: 2, ‘offline’: False}
- async set_network_conditions(offline, latency, download_throughput, upload_throughput, connection_type)[source]
Sets Chromium network emulation settings.
- Args:
network_conditions: A dict with conditions specification.
- Usage:
target.set_network_conditions( offline=False, latency=5, # additional latency (ms) download_throughput=500 * 1024, # maximal throughput upload_throughput=500 * 1024, # maximal throughput connection_type="wifi")
Note: ‘throughput’ can be used to set both (for download and upload).
- Return type:
None
- async delete_network_conditions()[source]
Resets Chromium network emulation settings.
- Return type:
None
- async set_permissions(name, value, origin=None)[source]
Sets Applicable Permission.
- Args:
name: The item to set the permission on.
value: The value to set on the item
- Usage:
target.set_permissions('clipboard-read', 'denied')
- Return type:
None
- async wait_for_cdp(event, timeout=None)[source]
wait for an event on the current target see
Target.wait_for_cdp
for reference- Return type:
dict
- async add_cdp_listener(event, callback)[source]
add a listener for a CDP event on the current target see
Target.add_cdp_listener
for reference
- async remove_cdp_listener(event, callback)[source]
remove a listener for a CDP event on the current target see
Target.remove_cdp_listener
for reference
- async get_cdp_event_iter(event)[source]
iterate over CDP events on the current target see
Target.get_cdp_event_iter
for reference- Return type:
AsyncIterable
[dict
]
- async execute_cdp_cmd(cmd, cmd_args=None, timeout=10)[source]
Execute Chrome Devtools Protocol command on the current target executes it on
Target.execute_cdp_cmd
ifmessage:'Not allowed'
received seeTarget.execute_cdp_cmd
for reference- Return type:
dict
- async fetch(*args, **kwargs)[source]
executes a JS
fetch
request within the current target seeTarget.fetch
for reference- Return type:
dict
- async xhr(*args, **kwargs)[source]
executes a JS
XMLHttpRequest
request within the current target seeTarget.fetch
for reference- Return type:
dict
- async get_issue_message()[source]
- Returns:
An error message when there is any issue in a Cast session.
- async set_sink_to_use(sink_name)[source]
Sets a specific sink, using its name, as a Cast session receiver target.
- Args:
sink_name: Name of the sink to use as the target.
- Return type:
dict
- async start_desktop_mirroring(sink_name)[source]
Starts a desktop mirroring session on a specific receiver target.
- Args:
sink_name: Name of the sink to use as the target.
- Return type:
dict