Python 如何使用selenium'在mail.ru中打开信件;谁是网络驱动程序?

Python 如何使用selenium'在mail.ru中打开信件;谁是网络驱动程序?,python,selenium,webdriver,Python,Selenium,Webdriver,我尝试: 它给了我: driver = webdriver.Firefox() driver.get('https://e.mail.ru/messages/inbox/') ... letterTag = driver.find_element_by_css_selector("div.b-datalist__item__addr") 我在开发工具中看到了“div.b-datalist\u_item\u_addr”,但在页面的源代码中找不到它。我想它是由javascript生成的。。。我需要

我尝试:

它给了我:

driver = webdriver.Firefox()
driver.get('https://e.mail.ru/messages/inbox/')
...
letterTag = driver.find_element_by_css_selector("div.b-datalist__item__addr")
我在开发工具中看到了“div.b-datalist\u_item\u_addr”,但在页面的源代码中找不到它。我想它是由javascript生成的。。。我需要单击此元素才能打开一封信。我该怎么做?

。 我的解决方案:

selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"id","selector":"div.b-datalist__item__addr"}

你正确登录了吗?@MattClark,是的。至少,我认为是这样。我用send_keys()和submit()输入了姓名和密码。你试过:
驱动程序。用合适的JS代码执行_脚本(“…”
?@Würgspaß,没有。不幸的是,我不擅长JS。但根据selenium的文档,我找到了另一种解决方案。正如我所想,JS生成HTML,我不得不等待。我使用了WebDriverWait()。
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

name = input("Login: ")
password = input("Password: ")
driver = webdriver.Chrome()
driver.get('https://mail.ru/')
driver.find_element_by_id('mailbox__login')
mail_name = driver.find_element_by_id('mailbox__login')
mail_name.send_keys(name)
mail_pass = driver.find_element_by_id('mailbox__password')
mail_pass.send_keys(password)
mail_pass.submit()
# get first letter
element = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CSS_SELECTOR, "a.js-href.b-datalist__item__link")))
element.click()