14th February 2023
Coding⚑
Languages⚑
Libraries⚑
-
New: List the recipients that can decrypt a file.
feat(requests#Use a proxy): Use a proxydef list_recipients(self, path: Path) -> List['GPGKey']: """List the keys that can decrypt a file. Args: path: Path to the file to check. """ keys = [] for short_key in self.gpg.get_recipients_file(str(path)): keys.append(self.gpg.list_keys(keys=[short_key])[0]['fingerprint']) return keys
http_proxy = "http://10.10.1.10:3128" https_proxy = "https://10.10.1.11:1080" ftp_proxy = "ftp://10.10.1.10:3128" proxies = { "http" : http_proxy, "https" : https_proxy, "ftp" : ftp_proxy } r = requests.get(url, headers=headers, proxies=proxies)
Selenium⚑
-
New: Solve element isn't clickable in headless mode.
There are many things you can try to fix this issue. Being the first to configure the
driver
to use the full screen. Assuming you're using the undetectedchromedriver:import undetected_chromedriver.v2 as uc options = uc.ChromeOptions() options.add_argument("--disable-dev-shm-usage") options.add_argument("--no-sandbox") options.add_argument("--headless") options.add_argument("--start-maximized") options.add_argument("--window-size=1920,1080") driver = uc.Chrome(options=options)
If that doesn't solve the issue use the next function:
```python def click(driver: uc.Chrome, xpath: str, mode: Optional[str] = None) -> None: """Click the element marked by the XPATH.
Args: driver: Object to interact with selenium. xpath: Identifier of the element to click. mode: Type of click. It needs to be one of [None, position, wait] The different ways to click are: * None: The normal click of the driver. * wait: Wait until the element is clickable and then click it. * position: Deduce the position of the element and then click it with a javascript script. """ if mode is None: driver.find_element(By.XPATH, xpath).click() elif mode == 'wait': # https://stackoverflow.com/questions/59808158/element-isnt-clickable-in-headless-mode WebDriverWait(driver, 20).until( EC.element_to_be_clickable((By.XPATH, xpath)) ).click() elif mode == 'position': # https://stackoverflow.com/questions/16807258/selenium-click-at-certain-position element = driver.find_element(By.XPATH, xpath) driver.execute_script("arguments[0].click();", element)