ir a un elemento determinado en selenium con python

Para ir a un elemento específico en una página web utilizando Selenium con Python, puedes usar el método scrollIntoView() de JavaScript para desplazarte hacia ese elemento. A continuación, te muestro cómo hacerlo:

from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys # Inicializar el navegador driver = webdriver.Chrome() # Puedes cambiarlo al navegador que estés utilizando # Abrir una página web driver.get('https://www.example.com') # Encontrar el elemento al que deseas desplazarte (puedes usar cualquier selector que desees) elemento = driver.find_element(By.ID, 'elemento_id') # Usar JavaScript para desplazarte al elemento driver.execute_script('arguments[0].scrollIntoView();', elemento) # Puedes interactuar con el elemento después de desplazarte a él, por ejemplo, hacer clic en él elemento.click() # Cerrar el navegador driver.quit()

permisos en selenium con facebook


Para permitir los permisos de Facebook utilizando Selenium en Python, por ejemplo, para notificaciones o ventanas emergentes, puedes utilizar los métodos de interacción proporcionados por Selenium. Aquí hay un ejemplo de cómo podrías hacerlo:


from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# Inicializar el navegador
driver = webdriver.Chrome()  # Puedes cambiarlo al navegador que estés utilizando

# Abrir Facebook
driver.get('https://www.facebook.com')

# Esperar a que aparezca el campo de correo electrónico
correo_input = WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.ID, 'email'))
)

# Ingresar tu correo electrónico y contraseña (¡reemplázalos con los tuyos!)
correo_input.send_keys('tu_correo@example.com')
contrasena_input = driver.find_element(By.ID, 'pass')
contrasena_input.send_keys('tu_contraseña')

# Hacer clic en el botón de inicio de sesión
boton_login = driver.find_element(By.NAME, 'login')
boton_login.click()

# Esperar a que aparezca el botón de "Permitir" para las notificaciones (esto puede variar)
boton_permiso = WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.XPATH, '//button[contains(text(), "Permitir")]'))
)

# Hacer clic en el botón "Permitir" para las notificaciones
boton_permiso.click()

# Puedes continuar realizando otras acciones en la página de Facebook

# Cerrar el navegador (puedes quitar esta línea si deseas mantenerlo abierto)
driver.quit()

instancia de webdriver.Chrome() en selenium

Al crear una instancia de webdriver.Chrome() en Selenium, puedes pasar varias opciones de configuración para personalizar el comportamiento del navegador. Estas opciones te permiten controlar aspectos como la ventana del navegador, el comportamiento de navegación, la privacidad y más. A continuación, te muestro algunas de las opciones comunes que puedes utilizar al crear un objeto webdriver.Chrome():


from selenium import webdriver

# Crear opciones de Chrome
chrome_options = webdriver.ChromeOptions()

# Ejemplos de opciones comunes:

# 1. Modo incógnito
chrome_options.add_argument('--incognito')

# 2. Deshabilitar las notificaciones
chrome_options.add_argument('--disable-notifications')

# 3. Deshabilitar las imágenes
chrome_options.add_argument('--blink-settings=imagesEnabled=false')

# 4. Iniciar maximizado
chrome_options.add_argument('--start-maximized')

# 5. Cambiar la ubicación de descargas
chrome_options.add_argument('--download.default_directory=/ruta/a/carpeta')

# 6. Ejecutar en segundo plano (headless)
chrome_options.add_argument('--headless')

# 7. Cambiar el User-Agent
chrome_options.add_argument('--user-agent=MiUserAgentPersonalizado')

# 8. Cambiar el idioma
chrome_options.add_argument('--lang=es')

# Crear instancia de Chrome WebDriver con las opciones
driver = webdriver.Chrome(chrome_options=chrome_options)

# Realizar acciones con el driver

# Cerrar el navegador
driver.quit()

chromedriver

https://googlechromelabs.github.io/chrome-for-testing/#stable

http://chromedriver.storage.googleapis.com/index.html

err_cert_date_invalid

buscar: opciones de internet
contenido->certificados->Entidades de certificado raiz de confianza
DST_Root CA X3
importar->siguiente->Examinar->(descargar)
luego...
-marcar: Colcar todos los certificados en el siguiente almacén
-Almacen de certificados: Entidades de certificación raíz de confianza
seguir con...
->siguiente->finalizar->aceptar -> cerrar -> aceptar



ssl_error_unrecognized_name_alert

ssl_error_unrecognized_name_alert


awd

ejecutar el powershell como administrador y ejecutar el comando Set-ExecutionPolicy Unrestricted

npm i -g npm-check-updates
ncu -u
npm install

node js

npm i express express-handlebars express-session mysql express-mysql-session morgan bcryptjs passport passport-local timeago.js connect-flash express-validator



>node_modules
>src
    >controllers
    >lib
    >public
    >route
    >views
    database.js
    index.js
    keys.js
.gitignore
package-lock.json
package.json

quitar `npm fund`

quitar  `npm fund`  de forma global
npm config set fund false --location=global
----------------------
quitar  `npm fund`  de forma local
npm config set fund false 

ModuleNotFoundError: No module named 'webdriver'

ImportError: cannot import name 'webdriver' from partially initialized module ''


muchos de estos error vienen dados por realizar los siguientes tipos de importacion

import webdriver
from selenium.webdriver.chrome.options import Options

options = Options()
options.page_load_strategy = 'normal'
driver = webdriver.Chrome(options=options)
driver.get("http://www.google.com")
driver.quit()


 Solucion

from selenium.webdriver.chrome.service import Service

from selenium.webdriver.common.by import By

from webdriver_manager.chrome import ChromeDriverManager

from selenium import webdriver

driver = webdriver.Chrome()

driver.get("https://www.google.com")

driver.quit()


tener presente que la version de Chrome (por ejemplo) sea compatible con con WebDriver utilizado 

base pyqt5

from PyQt5.QtWidgets import QApplication
from gui import *

class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):

def __init__(self):
QtWidgets.QMainWindow.__init__(self)
self.setupUi(self)

app = QApplication([])
gui = MainWindow()
gui.show()
app.exec_()

Selenium - espera explícita

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
if __name__ == '__main__':

driver = webdriver.Chrome()
driver.get("https://www.google.com.ar/maps")

try:
# $x("//*[@id='searchboxinput']")
element = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "searchboxinput")))
elem=driver.find_element(By.ID, "searchboxinput")
elem.send_keys("ddddd")

# elemento = driver.find_element(By.ID, "searchboxinput")
elemento = driver.find_element(By.XPATH, "//input[@id='searchboxinput']")
time.sleep(4)




except Exception:
print("nada")
finally:
print("fin")
driver.quit()from selenium.webdriver.support.wait import WebDriverWait


Las siguientes son las condiciones esperadas que se pueden utilizar en la espera explícita.

  1. alertIsPresent()
  2. elementSelectionStateToBe()
  3. elementToBeClickable()
  4. elementToBeSelected()
  5. frameToBeAvaliableAndSwitchToIt()
  6. invisibilityOfTheElementLocated()
  7. invisibilityOfElementWithText()
  8. presenceOfAllElementsLocatedBy()
  9. presenceOfElementLocated()
  10. textToBePresentInElement()
  11. textToBePresentInElementLocated()
  12. textToBePresentInElementValue()
  13. titleIs()
  14. titleContains()
  15. visibilityOf()
  16. visibilityOfAllElements()
  17. visibilityOfAllElementsLocatedBy()
  18. visibilityOfElementLocated()

usb-file-resc_17.1.0.0

archivo del programa

fallo en la publicación. las respuesta no es una respuesta json válida

en wordpress...
Ajustes---> Enlaces permanentes ---> guardar cambios (click)

quitar menu de pagina de wordpress

en  CSS Adicional poner 

#main-header{
display:none;
}

lo que hace que el elemento con id="main-header" quede oculto.

urllib.request.urlretrieve

urlretrieve(url, nombre de archivo=Ninguno, reporthook=Ninguno, datos=Ninguno)


guardar una imagen y dejarla alojada en una carpeta "imagen"
urllib.request.urlretrieve(src, "imagen/" + name+".jpg")




    INDICE