1、下拉列表
# 导入select模块 from selenium.webdriver.support.select import Select # 获取指定元素 select_loc = (By.XPATH,'//select[@name="ft"]') # 等待指定元素出现WebDriverWait(driver,20).until(EC.visibility_of_element_located(select_loc)) # 获取下拉元素 ele = driver.find_element(*select_loc) # 创建select对象 s = Select(ele) # 下标方式选元素 s.select_by_index(3) # value属性选元素 s.select_by_value("all") # 文本内容选元素 s.select_by_visible_text("Adobe Acrobat PDF (.pdf)")
2、Enter按键操作
# 导入按键模块 from selenium.webdriver.common.keys import Keys # 操作按键 driver.find_element_by_id("kw").send_keys("潇潇",Keys.ENTER)
3、js操作日期框
# 修改js的值 js_pha = """ var a = document.getElementById("train_date"); a.readOnly = false; a.value = "2019-10-10"; """ # 执行js语句 driver.execute_script(js_pha)
4、js操作滚动条
# 移动到元素element对象的“底端”与当前窗口的“底部”对齐 driver.execute_script("arguments[0].scrollIntoView(false);",element) # 移动到元素element对象的“顶端”与当前窗口的“顶部”对齐 driver.execute_script("arguments[0].scrollIntoView();",element) # 移动到页面底部 driver.execute_script("window.scrollTo(0,document.body.scrollHeight)") # 移动到页面顶部: driver.execute_script("window.scrollTo(document.body.scrollHeight,0)") # 找到我要滚动到可见区域的元素 loc = (By.XPATH,'//a[text()="-软件测试论坛-测试人才交流社区"]') WebDriverWait(driver,20).until(EC.visibility_of_element_located(loc)) element = driver.find_element(*loc) # 执行js的函数 # 因顶部有遮罩层,所以与可见区域的底部对齐。 driver.execute_script("arguments[0].scrollIntoView(false);",element)
5、窗口切换
# 获取元素 loc = (By.XPATH,'') # 获取当前窗口数量 cur_handles = driver.window_handles # 操作元素导致出现新的窗口 driver.find_element(*loc).click() # 等待新的窗口出现 WebDriverWait(driver,20).until(EC.new_window_is_opened(cur_handles)) # 获取当前所有窗口 wins = driver.window_handles # 切换窗口 driver.switch_to.window(wins[-1])
6、iframe切换
# 等待iframe出现并切换窗口 WebDriverWait(driver,20).until(EC.frame_to_be_available_and_switch_to_it((By.XPATH,'//iframe[@name="login_frame_qq"]')))
7、alert弹窗处理
# 做一个操作,导致alert框出现 driver.find_element_by_id("press_me").click() # 等待alert出现并直接切换到alert弹窗 alert = WebDriverWait(driver,10).until(EC.alert_is_present()) # 点击确定,关闭弹框 alert.accept()
8、上传操作
# 导入win32库 import win32gui import win32con # 前提 :windows上传窗口已经出现。sleep1-2秒等待弹出的出现。 def upload(filePath,browser_type="chrome"): if browser_type == "chrome": title = "打开" else: title = "" #找元素 # 一级窗口"#32770","打开" dialog = win32gui.FindWindow("#32770",title) ComboBoxEx32 = win32gui.FindWindowEx(dialog,0,"ComboBoxEx32",None) #二级 comboBox = win32gui.FindWindowEx(ComboBoxEx32,0,"ComboBox",None) #三级 # 编辑按钮 edit = win32gui.FindWindowEx(comboBox,0,'Edit',None) #四级 #打开按钮 button = win32gui.FindWindowEx(dialog,0,'Button',"打开(&O)") #二级 # 往编辑当中,输入文件路径 。 win32gui.SendMessage(edit,win32con.WM_SETTEXT,None,filePath) #发送文件路径 win32gui.SendMessage(dialog, win32con.WM_COMMAND, 1, button) #点击打开按钮