2019-02-13 扇贝自动打卡贼简单版

使用Selenium编写自动化脚本,实现在线单词学习平台的自动点击操作。通过模拟鼠标点击,自动完成单词学习任务,包括登录、进入学习页面及循环点击等步骤。改进后的脚本增加了错误处理,并能适应不同页面元素的变化。
摘要由CSDN通过智能技术生成

下午背单词突然想搞点骚操作
于是用selenium写了个简单的东西
就是模拟鼠标点击啦,几行代码搞定
发现chrome的开发者模式可以帮你直接搞到xpath的selector,我居然还在自己写,还出错了好几次

代码很简单 就是:登录——进入学习页面——循环点击
没有try except,没有考虑任何出错的情况

def login(username,password):
    drive = webdriver.Chrome()
    url = "https://web.shanbay.com/web/account/login"
    drive.get(url)
    time.sleep(2)
    user = drive.find_element_by_id("input-account")
    user.send_keys(username)
    drive.find_element_by_id("input-password").send_keys(password)
    drive.find_element_by_id("button-login").click()
    time.sleep(5)
    drive.find_element_by_xpath("//*[text()='单词']").click()
    time.sleep(5)
    drive.find_element_by_xpath("//*[text()='开始学习']").click()
    for i in range(0,200):
        time.sleep(3)
        drive.find_element_by_xpath("//*[text()='认识']").click()
        time.sleep(4)
        drive.find_element_by_css_selector("#learning-box > div.test-box.span12.learning-detail-container > div:nth-child(9) > div > a").click()
        time.sleep(2)
    drive.close()

经测试,改动了一些东西:
加入try except
然后发现不同页面的按钮对应的selector会变化,所以加入了遍历查找,然后成功完成今天300单词的任务(滑稽

玩归玩,英语还是要好好学的

def login(username,password):
    drive = webdriver.Chrome()
    url = "https://web.shanbay.com/web/account/login"
    drive.get(url)
    user = drive.find_element_by_id("input-account")
    user.send_keys(username)
    drive.find_element_by_id("input-password").send_keys(password)
    drive.find_element_by_id("button-login").click()
    time.sleep(2)
    drive.find_element_by_xpath("//*[text()='单词']").click()
    time.sleep(2)
    drive.find_element_by_xpath("//*[text()='开始学习']").click()
    time.sleep(2)
    for i in range(0,100):
        try :
            drive.find_element_by_xpath("//*[text()='认识']").click()
        except:
            pass
        time.sleep(3)
        try :
            for n in range(0,10):
                try:
                    if drive.find_element_by_css_selector("#learning-box > div.test-box.span12.learning-detail-container > div:nth-child("+str(n)+") > div > a"):
                        drive.find_element_by_css_selector("#learning-box > div.test-box.span12.learning-detail-container > div:nth-child("+str(n)+") > div > a").click()
                        break
                except:
                    continue
            if drive.find_element_by_css_selector("#summary-box > div.span9 > div:nth-child(3) > div > a"):
                drive.find_element_by_css_selector("#summary-box > div.span9 > div:nth-child(3) > div > a").click()
        except:
            pass
        time.sleep(3)
    drive.close()
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值