Creating new Chrome methods.

anticaptcha
Pedro de Oliveira Guedes 2022-01-06 11:11:32 -03:00
parent 7baf408c05
commit 53510efccb
1 changed files with 59 additions and 1 deletions

View File

@ -1,6 +1,7 @@
import json import json
import os import os
import urllib import urllib
from typing import List
import requests import requests
@ -204,4 +205,61 @@ class Chrome:
raw_return = self.__request_raw_post__("/ipc/chrome/eval/"+id, command) raw_return = self.__request_raw_post__("/ipc/chrome/eval/"+id, command)
return raw_return['result']['result']['value'] if ('value' in raw_return['result']['result']) else None return raw_return['result']['result']['value'] if ('value' in raw_return['result']['result']) else None
def wait (self, id: str, condition: str, to: int):
"""
## Chrome Wait
Espera por uma determinada quantidade de tempo até que a condição passada como parâmetro seja verdadeira.
---
#### Parâmetros:
- id: Identificador da aba em que se quer utilizar o método.
- condition: Condição que se quer verificar. É bastante comum utilizar este método para aguardar que elementos da página web carreguem, para isso, utilize o formato: comando_para_o_elemento != undefined.
- to: Tempo limite de espera pelo valor de verdade da condição.
---
#### Retorna:
- Sucesso: "ok".
- Falha: Mensagem de erro.
"""
return self.__request_raw_post__(f"/ipc/chrome/wait/{id}?to={to}", condition)
def send(self, id: str, method: str, parameters: dict = {}):
"""
## Chrome Send
Este método realiza a manipulação da página cujo id for informado através de domínios do Chrome Dev Tools Protocol. Para mais informações sobre como utilizar esta ferramenta, visite o site:
https://chromedevtools.github.io/devtools-protocol/
---
#### Parâmetros:
- id: Identificador da página web em que se quer realizar a manipulação.
- method: Nome do método DTP que se quer aplicar.
- parameters: Parâmetros requeridos pelo método informado no parâmetro anterior. Caso o método não exija parâmetros, não envie nada.
---
#### Retorna:
-> O retorno desta função não é previsivel, ele varia de acordo com qual método DVP foi utilizado e o respectivo retorno dele.
"""
object = {"method": method, "params": parameters}
return self.__request_json_post__("/ipc/chrome/send/"+id, object)
def open_tabs (self) -> List[dict]:
"""
## Chrome Open Tabs
Este método busca todas as abas abertas no navegador Chrome e retorna dados sobre elas.
---
#### Parâmetros:
---
---
#### Retorna:
-> Lista de dicionários com o nome das abas e outras informações sobre as mesmas.
"""
ret = self.__request_get__("/ipc/chrome/opentabs")
return ret