Comments (11)
Here is the code for chrome driver
from arsenic import services, browsers
service = services.Chromedriver(binary='chromedriver')
device_metrics = dict(width=1024, height=768, pixelRatio=1.0)
mobile_emulation = dict(deviceMetrics=device_metrics)
kwargs = {'goog:chromeOptions': dict(mobileEmulation=mobile_emulation)}
browser = browsers.Chrome(**kwargs)
async with get_session(service, browser) as session:
await session.get('/')
from arsenic.
I have managed to do this. I will post here a piece of code demonstrating this soon.
from arsenic.
This is how I managed to succeed to run device emulation and headless mode
from arsenic import services, browsers
service = services.Chromedriver(binary='chromedriver')
device_metrics = dict(width=1024, height=768, pixelRatio=1.0)
mobile_emulation = dict(deviceMetrics=device_metrics)
kwargs = {'goog:chromeOptions': dict(mobileEmulation=mobile_emulation,
args=['--headless', '--disable-gpu']
)
}
browser = browsers.Chrome(
**kwargs
)
async with get_session(service, browser) as session:
await session.get('/')
from arsenic.
I have no experience with this, but a quick glance at the documentation of chromedriver on how to do this, you should be able to pass the emulation mode as desired capabilities when instantiating the browser.
from arsenic.
I suggest documenting this somewhere: FAQ, documentation, whatever.
Btw, we need such a strange kwarg as 'goog:chromeOptions' because mobileEmulation is considered as experimental capability, as far as I get it.
from arsenic.
I dont know why but now I can not manage to run chrome in headless mode. This is how I try to do this
from arsenic import services, browsers
service = services.Chromedriver(binary='chromedriver')
device_metrics = dict(width=1024, height=768, pixelRatio=1.0)
mobile_emulation = dict(deviceMetrics=device_metrics)
kwargs = {'goog:chromeOptions': dict(mobileEmulation=mobile_emulation)}
browser = browsers.Chrome(chromeOptions={'args': [
'--headless',
'--disable-gpu',
]},
**kwargs
)
async with get_session(service, browser) as session:
await session.get('/')
from arsenic.
Please add PR to document these recipes! π
from arsenic.
Where should we document it? Is README suitable enough for that?
from arsenic.
Documentation source code is here: https://github.com/HDE/arsenic/tree/main/docs
I guess either howto or possibly tutorial?
Docs are ultimately pushed to https://arsenic.readthedocs.io/en/latest/
from arsenic.
Here is the PR. Please have a look #110
I have added the two recipes to browser-specific section "Supported browsers".
from arsenic.
The pull request is merged so we might close the issue. Can we?
from arsenic.
Related Issues (20)
- get_attribute("innerHTML") stopped working (chrome) HOT 3
- compatibility issue when asyncio loop policy is not the default one HOT 7
- Any way to controle several tabs async? HOT 2
- How to get page title? HOT 1
- arsenic doesnβt support all ChromeOptions? HOT 3
- Unable to open URLs with chrome driver at all? HOT 1
- Unable to set prefs in arsenic similar to selenium (download files to default directory)
- Any way to avoid close chrome after execution HOT 4
- How does this compare to playwright? HOT 1
- AttributeError: 'str' object has no attribute 'fileno' HOT 1
- Spawning Chrome/Edge browser in Windows from WSL2
- Asyncio TimeoutError HOT 1
- Unable to run tests because of broken dependency
- Post-merge CI build fails HOT 2
- Shall we try goodfirstissue.dev ?
- Getting 'unknown error: net::ERR_CONNECTION_CLOSED' Error HOT 4
- Cloudflare detection HOT 1
- No requirements.txt file and couldn't run the tests with Pytest HOT 5
- FileNotFoundError: [WinError 2] The system cannot find the file specified HOT 5
- Remove distutils HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google β€οΈ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from arsenic.