python3.0 加载所有菜单栏的页面,含子页面可执行的代码
import selenium
from selenium import webdriver
from time import sleep
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import NoSuchElementException, WebDriverException
# 登录模块
def auto_login(username, password):
url1 = 'XXX'
driver = webdriver.Chrome()
driver.maximize_window()
driver.get(url1)
# 找到输入用户名和密码的元素并填充
username_field = driver.find_element(By.XPATH, '// input[ @ name = "username"]')
password_field = driver.find_element(By.XPATH, '// input[ @ name = "passWord"]')
username_field.send_keys(username)
password_field.send_keys(password)
# 找到登录按钮并点击
login_button = driver.find_element(By.XPATH, '// button[@type="button"]')
login_button.click()
sleep(1)
# 检查登录是否成功
current_url = driver.current_url
if current_url == 'XXX':
print("登录成功!")
# 网站相关操作或页面跳转
else:
print("登录失败!")
# driver.quit()
wait = WebDriverWait(driver, 10)
try:
# 定位菜单栏
menu_bar = wait.until(EC.presence_of_element_located((By.XPATH, "// ul[@role='menubar']//span")))
# 遍历菜单项
menu_items = menu_bar.find_elements(By.XPATH, "// ul[@role='menubar']//span")
for item in menu_items:
try:
# 点击菜单项
item.click()
print(item.text)
sleep(2)
# 检查页面是否出现错误
error_message = driver.find_element(By.CLASS_NAME, "error-message")
print(f"Error found on page: {error_message.text}")
except NoSuchElementException:
# 如果没有找到错误信息,继续
pass
except WebDriverException as e:
# 如果有其他WebDriver异常,打印错误信息
print(f"WebDriverException: {e}")
finally:
# 关闭浏览器
driver.quit()
if __name__ == '__main__':
auto_login('XXX', 'XXXX')