3.1.5r2
changed the way how patcher works (for those using multiple sessions/processes). when not specifying a executable_path (the default, and recommended!), the filename gets randomized to <somehex>_chromedriver[.exe]. this should fix the issue for multiprocessing (although Chrome/driver itself has restrictions in this as well, see it using processhacker). As i told before, webdriver is a purely io-based operation which only sends and pulls data. multiprocessing/threading isn't going to help much. You'd better use asyncio.) find_chrome_executable: added google-chrome-stable to the list, as some distro's have this name. advanced_webelements: bool, optional, default: False makes it easier to recognize elements like you know them from html/browser inspection, especially when working in an interactive environment default webelement repr: <selenium.webdriver.remote.webelement.WebElement (session="85ff0f671512fa535630e71ee951b1f2", element="6357cb55-92c3-4c0f-9416-b174f9c1b8c4")> advanced webelement repr <WebElement(<a class="mobile-show-inline-block mc-update-infos init-ok" href="#" id="main-cat-switcher-mobile">)> note: when retrieving large amounts of elements ( example: find_elements_by_tag("*") ) and **print** them, it does take a little more time for all the repr's to fetch Chrome() parameters driver_executable_path=None ( = executable_path ) if you really need to specify your own chromedriver binary. (don't log issues when you are not using the default. the downloading per session happens for a reason. remember this is a detection-focussed fork) browser_executable_path=None ( = browser binary path ) to specify your browser in case you use exotic locations instead of the more default install folders advanced_elements=False if set to True, webelements get a nicer REPR showing. this is very convenient when working interactively (like ipython for example). <WebElement(<a class="mobile-show-inline-block mc-update-infos init-ok" href="#" id="main-cat-switcher-mobile">)> instead of <selenium.webdriver.remote.webelement.WebElement (session="85ff0f671512fa535630e71ee951b1f2", element="6357cb55-92c3-4c0f-9416-b174f9c1b8c4")>
This commit is contained in:
commit
7c25fff16e
|
@ -18,7 +18,9 @@ by UltrafunkAmsterdam (https://github.com/ultrafunkamsterdam)
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
__version__ = "3.1.5r1"
|
|
||||||
|
__version__ = "3.1.5r2"
|
||||||
|
|
||||||
|
|
||||||
import json
|
import json
|
||||||
import logging
|
import logging
|
||||||
|
@ -161,7 +163,7 @@ class Chrome(selenium.webdriver.chrome.webdriver.WebDriver):
|
||||||
desired_capabilities: dict, optional, default: None - auto from config
|
desired_capabilities: dict, optional, default: None - auto from config
|
||||||
Dictionary object with non-browser specific capabilities only, such as "item" or "loggingPref".
|
Dictionary object with non-browser specific capabilities only, such as "item" or "loggingPref".
|
||||||
|
|
||||||
advanced_webelements: bool, optional, default: False
|
advanced_elements: bool, optional, default: False
|
||||||
makes it easier to recognize elements like you know them from html/browser inspection, especially when working
|
makes it easier to recognize elements like you know them from html/browser inspection, especially when working
|
||||||
in an interactive environment
|
in an interactive environment
|
||||||
|
|
||||||
|
@ -412,7 +414,6 @@ class Chrome(selenium.webdriver.chrome.webdriver.WebDriver):
|
||||||
|
|
||||||
if advanced_elements:
|
if advanced_elements:
|
||||||
from .webelement import WebElement
|
from .webelement import WebElement
|
||||||
|
|
||||||
self._web_element_cls = WebElement
|
self._web_element_cls = WebElement
|
||||||
|
|
||||||
if options.headless:
|
if options.headless:
|
||||||
|
|
|
@ -14,7 +14,7 @@ class WebElement(selenium.webdriver.remote.webelement.WebElement):
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
_attrs = {}
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def attrs(self):
|
def attrs(self):
|
||||||
|
|
Loading…
Reference in New Issue