前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >利用 Python + Selenium 实现自动登陆签到

利用 Python + Selenium 实现自动登陆签到

作者头像
sylan215
发布2020-03-02 09:34:50
1.4K0
发布2020-03-02 09:34:50
举报
阅读本文大概需要 4 分钟。

工具是人手的延伸,用的好了,它可以成为我们身体的一部分,用不好,它就只是别人身体的一部分。

这是众所周知的道理,但是落实到每个人的具体实践上却是千差外别。

比如我们熟悉的 web 自动化测试工具 Selenium,很多人都听说过,但是很多人在实际的 web 测试中并没有用到。

之前我在《手把手教你搭建 Selenuim 自动化环境》中做了 Selenium 环境搭建的说明,今天我就用一个简单的实例来说明它的具体应用。

例子很简单,我是用 Selenium 实现了 51testing 论坛的模拟登陆和签到。

废话少说,直接上代码:

代码语言:javascript
复制
# -*- coding: utf-8 -*-

"""
工具说明:
使用 selenium 实现自动登陆 51testing 论坛并签到
"""

import time
from selenium import webdriver


def denglu_luntan(driver, user, pwd):
    """登录论坛

    利用 WebDriver 找到登陆窗口模拟登陆操作

    Args:
        driver:初始化的 webdriver
        user:用户名
        pwd:登陆密码

    Returns:
        无,仅单独抽取执行登陆操作
    """
    user_box = driver.find_element_by_name('username')
    user_box.send_keys(user)
    passwd_box = driver.find_element_by_name('password')
    passwd_box.send_keys(pwd)
    load_box = driver.find_element_by_name('loginsubmit')
    load_box.click()


def do_sign():
    """执行签到操作

    利用 WebDriver 找到签到的表情和输入框,并执行签到操作

    Args:
        无

    Returns:
        无,执行签到操作后正常退出
    """
    driver = webdriver.Chrome()
    driver.get('http://bbs.51testing.com/dsu_paulsign-sign.html')
    time.sleep(5)
    denglu_luntan(driver, 'sylan215', 'password')
    time.sleep(20)
    xiqing_png = driver.find_element_by_id('fd')
    xiqing_png.click()
    duanyu_input = driver.find_element_by_id('todaysay')
    duanyu_input.send_keys('不要怂,就是干')
    btn_png = driver.find_element_by_xpath(
        '//*[@id="qiandao"]/table[1]/tbody/tr/td/div/a/img')
    btn_png.click()
    time.sleep(30)
    driver.quit()


if __name__ == '__main__':
    do_sign()

下面我对代码做个简单的讲解:

1.denglu_luntan 函数是利用 WebDriver 模拟进行论坛的登陆操作;2.do_sign 函数是利用 WebDriver 模拟进行真正的签到操作;

本次涉及到的具体知识点:

1.查找元素:查找元素我一共使用了三种方式,分别是 find_element_by_name、find_element_by_id、find_element_by_xpath,具体什么地方使用什么方式,请根据实际情况自行决定,原则上要保证唯一性和稳定性;2.输入数据:直接调用 send_keys 函数实现;3.点击操作:直接调用 click 函数实现;

看到没,是不是很简单?赶紧动手用起来吧。

以上,我通过 Python + Selenium 模拟登陆 51testing 论坛进行自动签到,来简单说明了 Selenium 的实践。

之前大部分地方介绍 Selenium 都是为了更好的自动化,一提到自动化就是自动化框架,其实这些都是工具,我们不仅仅在测试自动化的过程中可以用到它,在所有可以用到工具的地方都可以用到它,而当我们用到工具的地方多了,自然就会让工具体系化,逐渐也就有了框架,不要什么事一上来就去谈那些特别高大上的东西,从手头上的点滴改进做起,任何工具的使用都可以算是自动化的一部分。

不知道你是否也这么认为,欢迎留言说说你的看法。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-05-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 sylan215 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档