针对自动化测试登录网站时,元素的id,xpath在不停的变化,定位不到所以在登录时候用手动,跳过登录这一步
以登录麦子学院为例:
# -*- ecoding: utf-8 -*-
# @ModuleName:
# @Author: TianJinZi
# @Time: 2020/6/9 14:47
from selenium import webdriver
import time
from selenium.webdriver.support import expected_conditions as EC
#进入网站
browser = webdriver.Chrome()
browser.get('https://study.163.com/provider/470451/index.htm')
#监测界面弹出的确认框
try:
browser.find_element_by_xpath('//*[@id="ux-modal"]/div[3]/span').click()
print('已经关闭!')
print(browser.current_url)
except EC.NoAlertPresentException:
print("没有弹窗")
except EC.NoSuchElementException:
print("此页面没有这个元素")
#最大化窗口
browser.maximize_window()
#点击‘’登录/注册‘’按钮
browser.find_element_by_link_text('登录/注册').click()
#循环监测网页内容是否有变动,有,则登录成功,否则提示找不到元素
while(1):
time.sleep(3) #三秒监测一下你登录好了没
print('等待登录中.........')
try:
user = browser.find_element_by_xpath('//*[@id="j-topnav"]/div/div[2]/div[1]/div/a[1]').text
if('登录/注册'!=user):
print("我监测到你登录成功了!笔芯@")
break #跳出循环
except EC.NoSuchElementException:
print("找不到元素")
#下面的代码再写关于登录之后的操作,比如查看用户界面
try:
browser.find_element_by_xpath('//*[@id="j-topnav"]/div/div[2]/div[1]/div/a[1]').click()
print("查看用户中心成功!")
except EC.NoSuchElementException:
print("找不到元素")