zoukankan      html  css  js  c++  java
  • 基于Python的Web自动化(Selenium)之第一个查询脚本

    之前已经将Web自动化的环境已经搭建好了,现在就需要进行开始进行脚本的编写了。首先放上一段比较简单的脚本,如下:

    #coding = utf-8

    from selenium import webdriver

    import time

    try:

        driver = webdriver.Chrome()

        # driver = webdriver.Firefox()

        driver.maximize_window()

        # driver.set_window_size(1200, 900)

        driver.get('https://www.baidu.com/')

        driver.find_element_by_id("kw").send_keys("Selenium2")

        driver.find_element_by_id("su").click()

        # driver.find_element_by_id("su").submit()

        time.sleep(5)

    except Exception as e:

        print(e)

    finally:

        # driver.quit()

        driver.close()

    惯例讲解:

    一、Python知识

    1、“#coding = utf-8”

    PY文件当中是不支持中文的,即使你输入的注释是中文也不行,为了解决这个问题,就需要把文件编码类型改为UTF-8的类型,输入这个代码就可以让PY源文件里面有中文了。

    建议你写代码之前都把这句话加上,因为不管是注释还是弹出消息提示,免不了的要输入中文,所以这个基本是必须的。

    2、“from...import..."和"import"

    2.1from...import:是只引入某个包里的某个类

    例如:from selenium import webdriver

    导入selenium包中的webdriver类

    2.2import:是引入整个datetime

    例如:import time

    导入time 整个包

    3、"try:

        .....

    except Exception as e:

    .....

    finally:

    ....."

    Python跑出异常使用方法,代码出现错误后会继续运行下面的代码。

    二、运行失败

    可能直接运行以上代码不会成功,如果失败了需要检查是否安装浏览器驱动:

    Chrome:chromedriver

    FireFox:geckodriver

    IE:IEDriverServer

    这几个驱动直接放在Python安装目录下即可,因为只要加入配置环境变量即可,这就可以运行了。

    三、简单了解

    1、driver = webdriver.Chrome()

    把webdriver的Chrome对象赋值给变量driver。只有获得了浏览器对象后,才可以启动浏览器,打开网址,操作页面元素。

    2、修改浏览器窗口大小(两种方式)

    2.1driver.maximize_window():

    直接修改为最大化

    2.2driver.set_window_size(1200, 900)

    指定尺寸大小

    3、driver.get('https://www.baidu.com/')

    获得浏览器对象后,通过get()方法,可以向浏览器发送网址

    4、driver.find_element_by_id("kw").send_keys("Selenium2")和driver.find_element_by_id("su").click()

    网址指向的页面,根据自动化需求进行页面元素的获取,并且进行相应的操作。

    4.1driver.find_element_by_id("kw").send_keys("Selenium2")

    这里通过id=kw,定位到百度的输入框,并通过键盘输入方法send_keys()向百度输入框里输入"Selenium2"搜索关键字。

    4.2driver.find_element_by_id("su").click()和driver.find_element_by_id("su").submit()

    这一步通过id=su定位"百度一下"搜索按钮,并向搜索按钮发送单击事件click()(或者submit())。

    5、time.sleep(5)

    等待5秒钟。

    6、driver.quit()和driver.close()

    退出并关闭浏览器及相关的驱动程序,只有一个页面时,两个效果是一样的,如果打开多个页面就有区别了。

    driver.quit():退出驱动并关闭所有关联的窗口

    driver.close():关闭当前窗口

     
    运行脚本
     
    成功运行
  • 相关阅读:
    前端框架framework和库library的一点区别和记录
    DButils实现数据库表下划线转bean中驼峰格式
    layui内部使用jQuery
    Object...与Object[]使用的一点区别和记录
    SSM框架整合系列——第一步
    $.ajax的async设置true和false的区别一点笔记
    idea使用破解版mybatis plugin插件失败,idea打不开的解决方案
    ECharts在柱状图的柱子上方显示数量的方法
    Echarts使用Ajax异步获得数据的前端json格式转化问题
    Ajax的post表单,不在url后接一大串参数键值对的方法
  • 原文地址:https://www.cnblogs.com/April-Chou-HelloWorld/p/8603656.html
Copyright © 2011-2022 走看看