• Selenium2+python自动化71-多个浏览器之间的切换【转载】


    前言

    有时候一些业务的功能涉及到多个系统,需要在web系统1打开造一些数据,然后用到某些参数是动态生成的,需要调用web系统2里面的参数。

    举个简单例子:在做某些业务的时候,需要手机短信验证码,我不可能去搞个手机连着电脑吧,那样太傻,我们的目的是获取短信验证码,短信验证码都有短信平台去查询。

    当然能直接操作数据库最简单了,用python连数据库直接通过sql去查就行。

    一、启动两个driver

    1.如果我想启动2个火狐,一个火狐打开百度,另外一个火狐打开博客园,我们只需用2个实例driver去控制就行

    (注意:不要两个都叫driver,要不然后面的会覆盖前面的,导致无法继续操作前面那个浏览器窗口了)

    2.运行后结果,桌面启动2个窗口,一个打开了百度,一个打开了上海-悠悠 博客园

    二、关掉窗口

    1.driver1是控制第一个浏览器窗口的实例参数,driver2是控制第二个窗口的实例参数,如果想关掉第一个,driver1.quit()就行了

    2.quit掉第一个浏览器窗口后,前面那个浏览器窗口就无法操作了,这里可以接着操作第二个浏览器窗口

    # coding:utf-8
    from selenium import webdriver
    import time

    # 启动第一个浏览器
    driver1 = webdriver.Firefox()
    driver1.get("https://www.baidu.com")
    print(driver1.title)

    # 启动第二个浏览器
    driver2 = webdriver.Firefox()
    driver2.get("http://www.cnblogs.com/yoyoketang/")
    print(driver2.title)

    # 关掉第一个浏览器窗口
    driver1.quit()

    # 点首页"博客园"按钮
    driver2.find_element_by_id("blog_nav_sitehome").click()
    time.sleep(2)
    print(driver2.title)

    三、封装启动浏览器方法

    1.如果涉及到不同的浏览器(如Firefox、chrome)之间的切换,我们可以专门写一个函数去启动不同浏览器

    四、参考代码

    # coding:utf-8
    from selenium import webdriver

    def browser(browser='firefox'):
        '''
        open browser "firefox"、"chrome"、"ie"、"phantomjs"
        usage:
        driver = broswer("chrome")
        '''
        try:
            if browser == "firefox":
                driver = webdriver.Firefox()
                return driver
            elif browser == "chrome":
                driver = webdriver.Chrome()
                return driver
            elif browser == "ie":
                driver = webdriver.Ie()
                return driver
            elif browser == "phantomjs":
                driver = webdriver.PhantomJS()
                return driver
            else:
                print("Not found browser!You can enter 'firefox', 'chrome', 'ie' or 'phantomjs'")
        except Exception as msg:
            print "open browser error:%s" % msg

    if __name__ == "__main__":
        # 默认启动firefox
        driver_firefox = browser()
        driver_firefox.get("https://www.baidu.com")
        print("open browser:%s" % driver_firefox.name)
        print(driver_firefox.title)

        # 启动第phantomjs
        driver_pj = browser("phantomjs")
        driver_pj.get("http://www.cnblogs.com/yoyoketang/")
        print("open browser:%s" % driver_pj.name)
        print(driver_pj.title)

  • 相关阅读:
    String&StringBuffer&StringBuilder区别
    linux启动流程简介
    nginx视频直播/点播服务干货分享
    Http协议的认识
    php中对象是引用类型吗?
    nginx与php-fpm 504 Gateway Time-out 排查与解决案例
    php header函数常见用途
    php魔术方法
    ajax 和jsonp 不是一码事 细读详解
    php session redis 配置
  • 原文地址:https://www.cnblogs.com/caoj/p/7815777.html
Copyright © 2020-2023  润新知