Estoy trabajando en la automatización de un proceso dentro de mi empresa, parte del cual es enviar un correo electrónico a través de SalesForce. No tenemos acceso a la API de SF y el correo electrónico debe enviarse a través de Salesforce para que los compañeros de trabajo puedan buscar la comunicación.
Necesito usar una plantilla que se pueda seleccionar en SalesForce, sin embargo, esta función no funciona en IE (que usa nuestra solución RPA), por lo que necesito crear este correo electrónico desde cero.
Veo dos opciones para esto:
Esta pregunta será sobre la opción 1. Publicaré una pregunta adicional con respecto a la segunda opción por separado y editaré esta pregunta para incluir ese enlace. EDITAR: ¡ Aquí está el enlace a la otra pregunta!
Pasemos ahora a la pregunta: utilizamos el paquete de software Blue Prism RPA. Tiene la posibilidad de insertar fragmentos de javascript en un sitio web y luego invocarlos. Tenía la esperanza de poder crear un fragmento de javascript que recrea la plantilla, insertarlo y luego invocarlo. He estado trabajando en esto durante la semana pasada y casi no he avanzado más.
Ahora puedo agregar texto básico en el campo requerido, pero descubrí que para poder usar la estructura de la plantilla necesito usar un campo diferente, basado en HTML. Este campo que encuentro vive dentro de un iframe.
No he tenido ninguna experiencia con javascript antes de esta semana (afortunadamente, parece similar a c# en el que tengo experiencia) y ahora este iframe me tiene perplejo. Aparentemente, cuando usa Selenium o similar, puede cambiar el controlador al nuevo iframe, pero no tengo esa opción, debe hacerse a través de la automatización de la superficie. Dentro de javascript, así como de la consola, no puedo hacer que apunte al documento separado dentro del iframe. Aparentemente, los contenidos del iframe no se incorporan de esa manera en la página web más grande.
Entonces mi pregunta es esta: ¿Cómo puedo "cambiar el enfoque" al iframe usando javascript? ¿Cómo puedo editar el contenido del iframe a través de javascript? ¡Cualquier ayuda, consejos, etc. sería muy apreciada!
Si va a las herramientas de desarrollo en el navegador (F12 o haga clic con el botón derecho en inspeccionar), puede usar la herramienta de inspección para obtener la ruta que está buscando. un iframe es solo otra ventana dentro de la ventana y una vez que tenga la 'ruta base', puede extenderse más hacia la ventana desde la ruta base del iframe.
Puede acceder a los marcos de una de las dos formas que conozco;
document.getElementById('the frame you are looking for goes here').contentWindow.targetFunction();y/o
window.frames[0].otherfunctionsdonde 0 es el orden N de marco en la ventana en caso de que haya otros.
una vez que encuentre esa ruta, puede interactuar con los subelementos en ese iframe al obtener la ruta desde dentro del iframe.
algunas cosas a tener en cuenta. los marcos aún no se cargan, así que asegúrese de que el marco que desea esté cargado y que ningún otro marco lo esté moviendo por la pantalla en tiempo de ejecución. También asegúrese de que el marco secundario esté en el mismo dominio, creo que llamar a javascript tiene problemas cuando se cruza entre dominios, es decir, no funciona (es posible que se corrija allí, aunque tal vez dependa de la configuración del grupo)
Proporcione algún código o el diseño de la página y podría darle un ejemplo de código, pero en mi opinión, el formato se verá así
var doc = ventana.frames[0] var cosa = getElementById(doc.getElementByPath('maybePath')
'realiza algunas operaciones de configuración como establecer HTML interno para lo que deseas