Comments (2)
No, though you could easily implement it yourself. see https://github.com/HDE/arsenic/blob/4eaafc8f62d6fb0305e66fbb63dcac12b0f35484/src/arsenic/session.py#L98-L104 for how the css-selector based get element works.
from arsenic.
Just to elaborate what @ojii said, below is what I did to use xpath.
Open site-packages\arsenic\session.py
, in class Element(RequestHelpers):
, add
async def get_element_by_xpath(self, selector: str) -> "Element":
element_id = await self._request(
url="/element",
method="POST",
data={"using": "xpath", "value": selector}, # not "XPath" nor "xpath selector"
)
return self.session.create_element(element_id)
and in class Session(RequestHelpers):
, add
async def get_element_by_xpath(self, selector: str) -> "Element":
element_id = await self._request(
url="/element",
method="POST",
data={"using": "xpath", "value": selector}, # not "XPath" nor "xpath selector"
)
return self.create_element(element_id) # not self.session.create_element()
By doing this, I was able to use equivalent to driver.find_element_by_xpath()
in Selenium.
Additionally, I needed to use wait_for_element
with the xpath, so that I added
async def wait_for_xpath(self, timeout: int, selector: str) -> Element:
return await self.wait(
timeout, partial(self.get_element_by_xpath, selector), NoSuchElement
)
arsenic
library was useful for doing asynchronic webdriver, but lacks a little bit of convenience maybe due to its less usage...
Hope it helps anyone.
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.