一、背景
部署架构为一套应用对应多套数据库,由此产生一个问题就是模块升级需要每个数据库都要操作,由于数据库数量增多,故想到使用selenium去简单实现。
二、实现方案
1、前提准备
1)由于使用的浏览器为chrome,所以要下载chromedriver.exe驱动,下载后放到chrome浏览器的同级目录下,比如我的是C:\Program Files (x86)\Google\Chrome\Application。
2)安装selenium,具体安装不做介绍。
2、Python代码
#启动浏览器
starttime=datetime.now()#脚本开始时间
chromedriver = "C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe"
os.environ["webdriver.chrome.driver"] = chromedriver
driver = webdriver.Chrome(chromedriver)
#打开登录页
driver.get("http://localhost:8069/web?#id=287&view_type=form&model=ir.module.module&action=36")#打开登录页
#driver.maxmize_window()#窗口最大化
time.sleep(10)
driver.find_element_by_id('login').send_keys('admin')#输入用户名
driver.find_element_by_id('password').send_keys('123456')#输入密码
driver.find_element_by_class_name('btn-erp').click()#点击登录框
time.sleep(10)
main_handle=driver.current_window_handle#获取当前主页面窗口句柄
print '-----------------------------------',main_handle
#######
#判断登录是否登录成功
print'------------------'
print u'测试登录'
time.sleep(20)
print driver.find_element_by_xpath("/html/body/div[2]/div[2]/div[2]/div/div[3]/div/div[4]/div/div/div/div/div[1]/h1/span/span").text#登录信息
print u'登录成功'
time.sleep(10)
print'------------------'
#点击升级按钮
driver.find_element_by_xpath("/html/body/div[2]/div[2]/div[2]/div/div[3]/div/div[4]/div/div/div/div/div[1]/div/button[2]").click()
time.sleep(100)
driver.get_screenshot_as_file("F:\Screenshots\\"+key+"shenji.png")#截屏并保存
driver.quit()
endtime=datetime.now()#脚本结束时间