• 基于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():关闭当前窗口

     
    运行脚本
     
    成功运行
  • 相关阅读:
    jwplayer播放器停止 单页内多个jwplayer对象停止问题
    jquery.smint.js 页面菜单浮动之谷歌浏览器异常
    jquery获取不到append出来的新元素的解决办法
    Received an invalid response. Origin 'null' is therefore not allowed access
    Java中转UTC时间字符串(含有T Z)为local时间
    OSS 图片处理流程
    java8中的map 和reduce
    MySQL的语句执行顺序
    数据库死锁解决办法
    mysql查询用if控制显示列
  • 原文地址:https://www.cnblogs.com/April-Chou-HelloWorld/p/8603656.html
Copyright © 2020-2023  润新知