boton para confirmar una accion QDialog

necesito un ejemplo de pyqt5 con python donde al hacer click en un boton me salte una ventana para confirmar

import sys from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton, QDialog, QVBoxLayout, QLabel class ConfirmationDialog(QDialog): def __init__(self): super().__init__() self.initUI() def initUI(self): self.setWindowTitle('Confirmación') self.setGeometry(100, 100, 300, 100) layout = QVBoxLayout() label = QLabel('¿Estás seguro de continuar?') layout.addWidget(label) confirm_button = QPushButton('Confirmar') confirm_button.clicked.connect(self.accept) # Aceptar el cuadro de diálogo layout.addWidget(confirm_button) cancel_button = QPushButton('Cancelar') cancel_button.clicked.connect(self.reject) # Rechazar el cuadro de diálogo layout.addWidget(cancel_button) self.setLayout(layout) class MainWindow(QMainWindow): def __init__(self): super().__init__() self.initUI() def initUI(self): self.setWindowTitle('Ventana Principal') self.setGeometry(100, 100, 400, 300) self.confirmation_dialog = ConfirmationDialog() confirm_button = QPushButton('Mostrar Confirmación', self) confirm_button.setGeometry(150, 100, 150, 50) confirm_button.clicked.connect(self.show_confirmation_dialog) def show_confirmation_dialog(self): result = self.confirmation_dialog.exec_() # Mostrar el cuadro de diálogo if result == QDialog.Accepted: print('Confirmado') else: print('Cancelado') if __name__ == '__main__': app = QApplication(sys.argv) main_window = MainWindow() main_window.show() sys.exit(app.exec_())

Android Studio - Problema gradle

ir a Gradle -> a la llave -> Gradle Setting -> version 17 oracle 

luego en Try Again

test1.iss

; Script generated by the Inno Script Studio Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!

#define MyAppName "My Program"
#define MyAppVersion "1.5"
#define MyAppPublisher "My Company, Inc."
#define MyAppURL "http://www.example.com/"
#define MyAppExeName "MyProg.exe"

[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{39CCC315-4A77-4CC9-848E-083584C110D9}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={pf}\{#MyAppName}
DefaultGroupName={#MyAppName}
OutputBaseFilename=setup
Compression=lzma
SolidCompression=yes

[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"

[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked

[Files]
Source: "C:\Program Files (x86)\Inno Setup 5\Examples\MyProg.exe"; DestDir: "{app}"; Flags: ignoreversion
; NOTE: Don't use "Flags: ignoreversion" on any shared system files

[Icons]
Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon

[Run]
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent

innosetup

https://doughennig.com/papers/pub/innosetup.pdf

https://blastcoding.com/utilizando-inno-setup/

https://www.opendcl.com/tutorials/IS_Tutorial_ESM.pdf

https://sysadm.es/scripts-en-inno-setup-facilitando-tareas/

https://microsoft.public.es.vb.narkive.com/0oMe1nnb/inno-setup-ejemplos


https://www.kymoto.org/products/inno-script-studio/downloads
https://jrsoftware.org/ispphelp/index.php?topic=expressions

Inno Setup Script

; Script de ejemplo para un instalador con Inno Setup

[Setup]
AppName=Mi Aplicación
AppVersion=1.0
DefaultDirName={pf}\MiAplicacion
DefaultGroupName=Mi Aplicación
OutputDir=Output
Compression=lzma2
SolidCompression=yes

[Files]
Source: "MiPrograma.exe"; DestDir: "{app}"
Source: "Archivo.dll"; DestDir: "{app}"
; Agregar más archivos aquí si es necesario

[Icons]
Name: "{group}\Mi Aplicación"; Filename: "{app}\MiPrograma.exe"



En este ejemplo:

  • AppName define el nombre de tu aplicación.
  • AppVersion establece la versión de la aplicación.
  • DefaultDirName es la ubicación predeterminada de la instalación.
  • DefaultGroupName es el nombre del grupo en el menú de inicio.
  • OutputDir es el directorio de salida donde se generará el instalador.
  • Compression y SolidCompression configuran la compresión de los archivos del instalador.
  • En la sección [Files], Source es la ubicación del archivo fuente y DestDir es la ubicación de destino durante la instalación.
  • En la sección [Icons], se crea un ícono en el menú de inicio para el programa instalado.

Asegúrate de reemplazar "MiPrograma.exe" y "Archivo.dll" con los nombres reales de tus archivos. También puedes agregar más archivos en la sección [Files] según sea necesario.


como obtengo el innerText de un elemento en selenium con python

Para obtener el texto interno (innerText) de un elemento utilizando Selenium con Python, puedes utilizar el método text del objeto WebElement. Aquí tienes un ejemplo de cómo hacerlo:

from selenium import webdriver from selenium.webdriver.common.by import By # 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 del que deseas obtener el texto (puedes usar cualquier selector que desees) elemento = driver.find_element(By.ID, 'elemento_id') # Obtener el texto interno del elemento texto = elemento.text # Imprimir el texto obtenido print("Texto interno del elemento:", texto) # Cerrar el navegador driver.quit()

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


INDICE