我通过selenium登录网站后想开始自动化点击网页的一些按钮,通过xpath定位,却找不到
代码如下(账号密码不重要,需要登录才可以进入课程,留下方便大家帮忙调试)
from selenium import webdriver
import time
# 创建chrome参数对象
opt = webdriver.ChromeOptions()
# 把chrome设置成无界面模式,不论windows还是linux都可以,自动适配对应参数
#opt.set_headless()
# 创建chrome无界面对象
driver = webdriver.Chrome(options=opt)
driver.get('https://www.ulearning.cn/umooc/user/login.do')
#打印内容
#print(driver.page_source)
# 用户名
user = driver.find_element_by_xpath('//*[@id="loginName"]')
user.send_keys('20164045033')
# 用户密码
password = driver.find_element_by_xpath('//*[@id="password"]')
password.send_keys('dk154310')
# 登录按钮
bt = driver.find_element_by_xpath('//*[@id="loginForm"]/input[3]').click()
print(driver.page_source)
#print(driver.get_cookies())
# cookies = {
# 'domain': 'www.ulearning.cn',
# 'httpOnly': False,
# 'name': 'staticCookie',
# 'path': '/ulearning_web',
# 'secure': True,
# 'value': '1'
# }
#
# 等待页面加载
time.sleep(3)
# 点击继续学习按钮
learn = driver.find_element_by_xpath('/html/body/div[2]/div[2]/div/div[1]/div[1]/div/div/div/section[1]/div[2]/div[1]/div[5]/input').click()
time.sleep(10)
test = driver.find_element_by_xpath('//*[@id="page559654"]/div/div/span').click()
就是最后一行的元素找不到,感觉是用了javascript子类的来加载,但是我不会,麻烦大家帮忙看一下,给出解决的方法,谢谢!
自己写 xpath 比较准确,用 css 可能更简洁,请参考文档
以下是参考代码,已测