阿里邮箱首页UI自动化找不到元素

代码如下:

import time

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.remote.webdriver import WebDriver
from selenium.webdriver.support import expected_conditions as ec
from selenium.webdriver.support.wait import WebDriverWait

driver = webdriver.Chrome()
driver.get("http://mail.hichina.com/")
time.sleep(10)  # 使用强制等待,还是找不到啊

# 显示等待selenium.common.exceptions.TimeoutException: Message:
# WebDriverWait(driver, 10).until(ec.presence_of_element_located((By.CSS_SELECTOR, "input#username.login_input")))
# ele = driver.find_element(By.CSS_SELECTOR, "input#username.login_input")
# ele.click()
# driver.find_element(By.CSS_SELECTOR, "input#username.login_input").send_keys("jiangzhw")

#打印pagesource后发现,确实没有元素
with open("page_source.txt", "w+",encoding="utf-8") as f:
    f.write(driver.page_source)

1.考虑是未渲染完全,添加死等、显示等待后无效
2.切换定位方式,css、xpth也都无效,console使用css定位也能定位到
3.定位页面其他元素,也无效
4.使用执行脚本$().click()也无效
5.打印pagesource后发现,确实没有元素,全是js代码
page_source.txt (17.8 KB)
对前端不太了解,求解。

考虑一下页面有没有frame需要切换一下呢

前端的page source不像app,并不是所有的控件,而是html+js+css。如果想知道当前有没有对应的空间,有这样几个方法。

  • 检查window frame
  • 截图
  • 使用xpath //* 获得所有的控件列表

ook,我试下

这个忘写了,,我简单的在console确认过了,没有frame存在。