
找驱动和Xpath的方法在最底下
下个所用的浏览器驱动然后换一下网址,账号密码,和前面的部分元素就可以用了,有问题评论问
私信也可以
点个赞吧,没被赞过很伤心。
from selenium import webdriver
from selenium.webdriver.common.by import By
import time
from selenium.webdriver import Edge
browser=webdriver.Edge('自己下的驱动位置')#前面的edge是edge服务器,也可以换成chrome
url = 'http://passport2.chaoxing.com/login?#打开网址fid=&newversion=true&refer=http://i.chaoxing.com'
webpage=browser.get(url)
# 学校 学号 密码 验证码登陆
def login():
time.sleep(4)
inp_1 = '账号'
inp_2 = '密码'
Account = browser.find_element(By.ID, "phone")#找账号
password = browser.find_element(By.ID, "pwd")
Account.send_keys(inp_1)
password.send_keys(inp_2)
browser.find_element(By.ID, "loginBtn").click()
print("----------正在登陆中----------")
# 进入主页 开始选择课程 xpath匹配
def html_1():
time.sleep(4)
browser.switch_to.frame('frame_content')
browser.find_element(By.XPATH,'自己选的课程的Xpath').click() # 课程选项的xpath
print("----------进入课程----------")
# 选择我需要学的课的xpath
time.sleep(4)
browser.switch_to.window(browser.window_handles[1])
browser.find_element(By.XPATH,'//*[@id="boxscrollleft"]/div/ul[1]/li[2]/a').click() # 进入章节
print("----------已进入章节----------")
def html_2():
browser.switch_to.frame('frame_content-zj')
# 进入课程中的第一个小节
time.sleep(4)
browser.find_element(By.XPATH,'选小节的Xpath').click() # 开始小节
print("----------进入小节----------")
# button模拟点击播放
def button():
time.sleep(4)
try:
# 进入frame播放框架
browser.switch_to.frame("iframe")
browser.switch_to.frame(0)
time.sleep(4) # 此处等待一下就不会报错终止程序
browser.find_element(By.XPATH,'//*[@id="video"]/button').click()
print('----------等待播放----------')
time.sleep(4)
print("----------课程正在播放中----------")
except:
# 回到主框架
browser.switch_to.default_content()
print("----------此处不是视频,即将点击下一页----------")
time.sleep(4)
browser.find_element(By.XPATH, '//*[@id="right"]').click()
print("----检测是否有再确定")
time.sleep(4)
try:
browser.find_element(By.XPATH, '//*[@id="mainid"]/div[1]/div/div[3]/a[2]').click()
except:
pass
print("----已进入下一页-----")
time.sleep(4)
# 判断完重新回到button函数再进行判断
button()
# 判断视频是否播放完
def vedio_if():
time.sleep(4)
try:
vedio_stat_time = browser.find_element(By.XPATH,'//*[@id="video"]/div[6]/div[2]/span[2]').get_attribute(
"textContent")
vedio_end_time = browser.find_element(By.XPATH,'//*[@id="video"]/div[6]/div[4]/span[2]').get_attribute(
"textContent")
print("播放时间:", vedio_stat_time, '结束时间:', vedio_end_time)
time.sleep(10)
return vedio_stat_time, vedio_end_time
except:
try:
vedio_stat_time = browser.find_element(By.XPATH, '//*[@id="video"]/div[5]/div[2]/span[2]').get_attribute(
"textContent")
vedio_end_time = browser.find_element(By.XPATH, '//*[@id="video"]/div[5]/div[4]/span[2]').get_attribute(
"textContent")
print("播放时间:", vedio_stat_time, '结束时间:', vedio_end_time)
time.sleep(10)
return vedio_stat_time, vedio_end_time
except:
pass
# 判断有第二节课吗有就播放
def vedio_if2(vedio_stat_time, vedio_end_time):
if vedio_stat_time == vedio_end_time:
try:
browser.switch_to.parent_frame()
browser.switch_to.frame(1)
browser.find_element(By.XPATH,"//*[@id='video']/button").click()
time.sleep(4)
except:
print("----------没有第二节课了,即将进入下一页----------")
def next_start(vedio_stat_time, vedio_end_time):
if vedio_stat_time == vedio_end_time:
try:
browser.switch_to.default_content()
print("----------开始点下一页----------")
time.sleep(4)
browser.find_element(By.XPATH, '//*[@id="right"]').click()
time.sleep(4)
except:
print("----------课程已播完,无提示----------")
def course():
while True:
button()
time_tuple = vedio_if()
while time_tuple[0] != time_tuple[1]:
time_tuple = vedio_if()
try:
vedio_if2(time_tuple[0], time_tuple[1])
if time_tuple[0] == time_tuple[1]:
print("----------开始测试第二节课时间----------")
time_tuple_2 = vedio_if()
while time_tuple_2[0] != time_tuple_2[1]:
time_tuple_2 = vedio_if()
next_start(time_tuple_2[0], time_tuple_2[1])
except:
next_start(time_tuple[0], time_tuple[1])
if __name__ == '__main__':
login()
html_1()
html_2()
course()
2022.10.14修改,新增如何下载edge驱动
1、查找版本号
然后点击设置
2.、去官网下载对应版本驱动
Microsoft Edge WebDriver - Microsoft Edge Developer
存储在自己可以找到的位置,方便待会更换代码中的驱动位置
查找Xpath
鼠标右键最底下--检查,打开页面如下
点击自己所需要的课程,右边对应灰框就是对应的元素。在元素上右键,找到复制,复制Xpath即可更换代码中的Xpath
2022/10/17
要是真的不会找xpath,
百度链接给一手https://jingyan.baidu.com/article/0a52e3f482e380bf62ed7205.html
本文含有隐藏内容,请 开通VIP 后查看