• Empleos
  • Sobre nosotros
  • Empleos
    • Inicio
    • Empleos
    • Cursos y retos
  • Empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Evaluaciones
    • Contrata talento tech
    • Blog
    • Comercial
    • Calculadora de salario

0

381
Vistas
JavaScriptException en el método execute_script
def send(self, message): try: textArea = self.driver.find_element_by_xpath("//textarea[@placeholder='Message...']") textArea.clear() self.driver.execute_script("arguments[0].value='" + message + "'", textArea) # Error right here textArea.send_keys(Keys.SPACE) sendButton = self.driver.find_element_by_xpath("//button[contains(text(), 'Send')]").click() except NoSuchElementException or StaleElementReferenceException as ex: print("Исключение в send()") print(ex)

Hasta este punto, la quinta línea funcionó, pero ahora no puedo entender cuál es el problema. Y las variables tienen valores correctos.

 File "D:\PROJECTS\BLD_Project\main.py", line 187, in send self.driver.execute_script("arguments[0].value='" + message + "'", textArea) File "D:\PROJECTS\INST\venv\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 878, in execute_script return self.execute(command, { File "D:\PROJECTS\INST\venv\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 424, in execute self.error_handler.check_response(response) File "D:\PROJECTS\INST\venv\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 247, in check_response raise exception_class(message, screen, stacktrace) selenium.common.exceptions.JavascriptException: Message: javascript error: Unexpected identifier
over 3 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Parece que te estás encontrando con problemas para escapar. Si message contiene un carácter de comillas, por ejemplo, O'Hara , terminará con un error de sintaxis en el código JavaScript ejecutado:

 arguments[0].value='O'Hara'

La solución es usar la matriz de arguments que ya está usando, para pasar también la cadena del message :

 self.driver.execute_script("arguments[0].value = arguments[1]", textArea, message)
over 3 years ago · Juan Pablo Isaza Denunciar

0

Suponiendo message es una cadena, puede usar setAttribute dentro execute_script como se muestra a continuación:

 textArea = self.driver.find_element_by_xpath("//textarea[@placeholder='Message...']") self.driver.execute_script(f"arguments[0].setAttribute('value', '{message}')", textArea)

para pasar la variable del message al elemento web textArea .

Actualizar:

ingrese la descripción de la imagen aquí

over 3 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda