我正在尝试使用selenium chromedriver和python代码在outlook(OWA(中截屏最新的电子邮件。我是硒的新手,所以我肯定错过了如何在新窗口中打开元素并获取屏幕。
python版本:3.7无头铬版本:84.0.4147.89
我可以登录并选择最新的电子邮件。当我尝试点击((最新的电子邮件元素时,它不会显示任何错误,但当我尝试发送ENTER等键在新窗口中打开它时,它会给我一个错误,说
selenium.common.exceptions.ElementNotInteractableException: Message: element not interactable
需要输入如何打开最新的电子邮件并将其保存为图像。
我使用过的代码:
chrome_options = Options()
chrome_options.add_argument("--headless")
chrome_options.add_argument("--window-size=1920x1080")
chrome_options.add_argument("start-maximized");
chrome_options.add_argument("disable-infobars")
chrome_options.add_argument("--disable-extensions")
chrome_driver = os.getcwd() + "/chromedriver"
driver = webdriver.Chrome(chrome_options=chrome_options, executable_path=chrome_driver)
# login part
driver.get("my OWA url")
username = driver.find_element_by_id("username")
password = driver.find_element_by_id("password")
username.send_keys("my user name")
password.send_keys("password here")
driver.find_element_by_css_selector("input.btn").click()
# To reach to email list and latest email
latest_email = driver.find_elements_by_id("vr")[0]
latest_email.click()
#WebDriverWait(driver, 15).until(EC.element_to_be_clickable((By.ID, 'vr')))
#latest_email.send_keys(Keys.ENTER)
print(latest_email.is_selected())
print(latest_email.is_displayed())
time.sleep(5)
driver.save_screenshot("just_to_see.png")
driver.close()
上面的代码在执行时表示元素被显示(true(,但false表示元素被选中。它还显示了选择最新电子邮件的屏幕。
当我取消注释发送密钥和WebDriverWait时,它会给出一个错误,说Selenium.common.exceptions.ElementNotInteractableException: Message: element not interactable
我尝试了其他选项,比如move_to_element((,也点击了cData类,但无法打开最新的电子邮件。
如果它对某人有帮助,当我使用以下内容时,它就起作用了ActionChains(driver).double_click(latest_email).perform()
然后切换到新窗口和包含消息的iframe。能够得到消息。。