Python利用splinter实现浏览器自动化操作

利用Splinter开发浏览器自动化操作,编写代码比较简单。

案例一:

from splinter import Browser

with Browser() as browser:
    # Visit URL
    url = "http://www.google.com"
    browser.visit(url)
    browser.fill(q, splinter - python acceptance testing for web applications)
    # Find and click the search button
    button = browser.find_by_name(btnG)
    # Interact with elements
    button.click()
    if browser.is_text_present(splinter.readthedocs.io):
        print("Yes, the official website was found!")
    else:
        print("No, it wasnt found... We need to improve our SEO techniques")

第1行是导入Browser。 Browser是整个测试的基础,你可以把它理解为一个浏览器。 第3行初始化一个Browser,不加参数的话默认是firefox。 第4行是命令browser打开"http://google.com"。 第5行是命令browser使用‘splinter - python acceptance testing for web applications’填充页面中‘name’是‘q’的元素。在Google的首页中,就是那个搜索框。大家可以看一下Google首页的代码。 第6行是两个命令。第一个是找到‘name’属性为‘btnG’的按钮,第二个是click()也就是点击这个按钮。这个按钮就是Google的搜索按钮。 第8行是判断页面中是否有‘splinter.cobrateam.info’这个字符串,因为上一步点击了搜索按钮,所以这里搜索的就是跳转之后的页面。当然,大家不用担心网速慢会判断出错,splinter会等页面载入完成再进行下一步的操作。 第13行是删除browser。


案例二:

这里,我给出自动登录126邮箱的案例。难点是要找到页面的账户、密码、登录的页面元素,这里需要查看126邮箱登录页面的源码,才能找到相关控件的id. 例如:输入密码,密码的文本控件id是pwdInput.可以使用browser.find_by_id()方法定位到密码的文本框, 接着使用fill()方法,填写密码。至于模拟点击按钮,也是要先找到按钮控件的id,然后使用click()方法。 由于代码较简单,我就只在代码中给出注解说明工作原理。

#coding=utf-8
import time
from splinter import Browser

def splinter(url):
    browser = Browser(chrome)
    #login 126 email websize
    browser.visit(url)
    #wait web element loading
    time.sleep(5)
    #fill in account and password
    browser.find_by_id(idInput).fill(xxxxxx)
    browser.find_by_id(pwdInput).fill(xxxxx)
    #click the button of login
    browser.find_by_id(loginBtn).click()
    time.sleep(8)
    #close the window of brower
    browser.quit()

if __name__ == __main__:
    websize3 =http://www.126.com
    splinter(websize3)


经验分享 程序员 微信小程序 职场和发展