• 1000 *
Я пытаюсь автоматизировать систему для оповещения меня по электронной почте, если у меня есть какие-либо сообщения, на очень жесткой платформе. Единственный способ узнать, сколько там сообщений, - войти в систему, поэтому я использую селен. Я могу получить доступ к платформе. Но я застрял, пытаясь просто захватить простой текст, говорящий, есть ли у меня сообщения или нет.
текст и проверка для захвата
Я пробовал: find_element_by_id, by_xpath, by_name, by_tag, by_text, by_partial_text, et c. Действия, выполняем et c. Иногда он не распознает элемент, а иногда только извлекает пустой список.
Я обнаружил в исходном коде макроса, что текст генерируется функцией сценария JS
Есть ли способ просто прочитать этот текст и t с экрана после того, как фраза будет сгенерирована скриптом, и сохранить ее в переменной?
Это фрагмент кода функции в исходном коде:
function setNumeroMensajes(numMensajes)
{
numMensajes = parseInt(numMensajes);
if(isNaN(numMensajes))return;
var mensaje = "";
switch(numMensajes)
{
case 0:
mensaje = "No tiene mensajes pendientes de leer";
break;
case 1:
mensaje = "Tiene 1 mensaje pendiente de leer";
break;
default:
mensaje = "Tiene "+numMensajes+" mensajes pendientes de leer";
break;
}
document.getElementById("numeroMensajes").innerHTML = mensaje;
это то, что я пытаюсь, с разными попытками найти элементы
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.action_chains import ActionChains
PATH = "*********/Selenium/chromedriver"
driver = webdriver.Chrome(PATH)
driver.get("https://************/***********/identificacion.jsp")
usuario = driver.find_element_by_name("usuario")
usuario.send_keys("xxxxxx")
driver.implicitly_wait(3)
clave = driver.find_element_by_name("clave")
clave.send_keys("*******")
driver.implicitly_wait(3)
entrar = driver.find_element_by_name("entrar")
entrar.send_keys(Keys.RETURN)
driver.implicitly_wait(5)
actions = ActionChains(driver)
seguimiento = driver.find_element_by_xpath(
'/html[1]/body[1]/table[1]/tbody[1]/tr[2]/td[1]/table[1]/tbody[1]/tr[2]/td[1]/table[1]/tbody[1]/tr[2]/td[2]/form[1]/table[1]/tbody[1]/tr[1]/td[5]/a[1]/img[1]')
actions.click(seguimiento)
actions.perform()
driver.implicitly_wait(5)
mis_mensajes = driver.find_elements_by_xpath(
'/html[1]/body[1]/table[1]/tbody[1]/tr[1]/td[2]/table[1]/tbody[1]/tr[1]/td[4]/table[1]/tbody[1]/tr[3]')
actions.click(mis_mensajes)
actions.perform()
driver.implicitly_wait(5)
print(mis_mensajes)
for mensaje in mis_mensajes:
print(mensaje)