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_())
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
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
ySolidCompression
configuran la compresión de los archivos del instalador.- En la sección
[Files]
,Source
es la ubicación del archivo fuente yDestDir
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
Suscribirse a:
Entradas (Atom)
-
Link al repositorio acá import sys from PyQt5 import uic, QtGui from PyQt5.QtWidgets import QMainWindow, QApplication class MainWindow (QMa...
-
Usar código html, usando &# primero, de la siguiente manera... se usó & la siguiente página muy útil a la hora de buscar cara...
-
Introducción a ASP.NET MVC 5 Microsoft ha lanzado Visual Studio 2013 Preview. Hay muchas nuevas características introducidas con esta versi...