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 identifierParece 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)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: