1、操作系统指令
os.system("taskkill /F /PID 1808")#指定PID关闭进程
os.system("taskkill /F /IM firefox.exe")#关闭所有指定应用程序
os.system("calc.exe")#启动计算器
os.system(r"G:\firefox32\firefox.exe")#启动Firefox浏览器
2、#验证码解决方案:
应用场景:防止非法操作,刷票、秒杀
#1.测试环境中配置万能验证码,在控制代码中加一行允许万能验证码通过
#2.测试环境中的验证码配置成开关模式,采取屏蔽方式来解决
#3.采取机器打码技术解决(打码平台)
#4.采取图像识别,openCV视觉库,让机器来学习识别元素(验证码)
#5.开发提供验证码的公共接口,直接调用接口传出的随机验证码
3、相关弹框的绝对方法:
1)提示输入信息:prompt
2) 提示框:alert
3) 确认框:confirm
4)提示框点击确定:dr.switch_to.alert.accept()
5)提示框点击取消:dr.switch_to.alert.dismiss()
6)提示输入框输入数据:dr.switch_to.alert.send_keys("XXX")
7)获取提示框文本信息:dr.switch_to.alert.text
4、css选择器定位模式:
#<input type="text" id="username" class="form-control">
1)依据id :#username
dr.find_element_by_css_selector("#username").send_keys("admin")
2)依据class:.class ; A B
form.form-inline input dr.find_element_by_css_selector("form.form-inline input").send_keys("admin")
3)父元素下有多个子元素 AAA:BBB
form.form-inline>div:nth-child[3]>input dr.find_element_by_css_selector("form.form-inline>div:nth-child[3]>input").send_keys("admin")
4)元素之间层层递进:XXX>YYY>ZZZ
dr.find_element_by_css_selector("form.form-inline>div:last-child>button").click()
5)[prop='value'],匹配方式:完全匹配:p=v,匹配开头:p^=v,匹配结尾:p$=v,包含匹配:p*=v
6)利用标签tag+class,img.ke-common-icon.ke-icon-source
driver.find_element_by_css_selector("img.ke-common-icon.ke-icon-source").click()
5、xpath路径定位方式:
# 1)绝对路径 /html/body/div[4]/div/form/div[2]/input 一层一层往下找
dr.find_element_by_xpath("/html/body/div[4]/div/form/div[2]/input").send_keys("admin")
# 2) 相对路径 //input 直接找
dr.find_element_by_xpath("//input").send_keys("admin")
# 3) 指定位置 //form/div[3]/input
dr.find_element_by_xpath("//form/div[3]/input").send_keys("admin")
# 4) 依据属性 //input[@type="password"]
dr.find_element_by_xpath('//input[@type="password"]').send_keys("admin")
#5) 懒人匹配 /html/*/*/*/*/*/input
dr.find_element_by_xpath("/html/*/*/*/*/*/input").send_keys("admin")
6、keys(组合按键)导包 from selenium.webdriver.common.keys import Keys
send_keys(Keys.BACK_SPACE)
send_keys(Keys.CONTROL,'a')
send_keys(Keys.DELETE)
7、ActionChains(鼠标操作)导包 from selenium.webdriver.common.action_chains import ActionChains
1)鼠标右键点击:ActionChains(dr).context_click(dr.find_element_by_link_text('※ 公告管理 ※')).perform()
8、PyKeyboard,键盘操作 from pykeyboard import PyKeyboard
1)k=PyKeyboard(),实例化键盘对象
2)实现按压下键 k.press_key(k.down_key),Ke.release_key(k.down_key)#释放按键
3)实现按压回车键k.press_key(k.enter_key)
8、dr.switch_to.window()(窗口切换)
9、文件上传
1)#webdriver直接send_keys(),中英文路径均可实现
dr.find_element_by_id("batchfile").send_keys(r"E:\FTP\销售出库单-20171020-Test.xls")
2)#鼠标点击“选择文件”,通过键盘+鼠标操作实现
ActionChains(dr).click(dr.find_element_by_id('batchfile')).perform()
k.type_string(r"E:\FTP\sales-20171020-Test.xls")#不支持中文路径
k.press_key(k.enter_key)
10、截图
dr.save_screenshot(r"E:\FTP\test%d.png"%random_num)#截图
dr.get_screenshot_as_file(r"E:\FTP\test%d.png"%random_num)#截图