前言
有时候一些业务的功能涉及到多个系统,需要在web系统1打开造一些数据,然后用到某些参数是动态生成的,需要调用web系统2里面的参数。
举个简单例子:在做某些业务的时候,需要手机短信验证码,我不可能去搞个手机连着电脑吧,那样太傻,我们的目的是获取短信验证码,短信验证码都有短信平台去查询。
当然能直接操作数据库最简单了,用python连数据库直接通过sql去查就行。
一、启动两个driver
1.如果我想启动2个火狐,一个火狐打开百度,另外一个火狐打开博客园,我们只需用2个实例driver去控制就行
(注意:不要两个都叫driver,要不然后面的会覆盖前面的,导致无法继续操作前面那个浏览器窗口了)
2.运行后结果,桌面启动2个窗口,一个打开了百度,一个打开了上海-悠悠 博客园
二、关掉窗口
扫描二维码关注公众号,回复:
612223 查看本文章
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)之间的切换,我们可以专门写一个函数去启动不同浏览器
四、参考代码
1 # coding:utf-8 2 from selenium import webdriver 3 4 def browser(browser='firefox'): 5 ''' 6 open browser "firefox"、"chrome"、"ie"、"phantomjs" 7 usage: 8 driver = broswer("chrome") 9 ''' 10 try: 11 if browser == "firefox": 12 driver = webdriver.Firefox() 13 return driver 14 elif browser == "chrome": 15 driver = webdriver.Chrome() 16 return driver 17 elif browser == "ie": 18 driver = webdriver.Ie() 19 return driver 20 elif browser == "phantomjs": 21 driver = webdriver.PhantomJS() 22 return driver 23 else: 24 print("Not found browser!You can enter 'firefox', 'chrome', 'ie' or 'phantomjs'") 25 except Exception as msg: 26 print "open browser error:%s" % msg 27 28 if __name__ == "__main__": 29 # 默认启动firefox 30 driver_firefox = browser() 31 driver_firefox.get("https://www.baidu.com") 32 print("open browser:%s" % driver_firefox.name) 33 print(driver_firefox.title) 34 35 # 启动第phantomjs 36 driver_pj = browser("phantomjs") 37 driver_pj.get("http://www.cnblogs.com/yoyoketang/") 38 print("open browser:%s" % driver_pj.name) 39 print(driver_pj.title)