1,setup基本设定
def setup(self):
self.driver = webdriver.Chrome() #选择的浏览器
self.driver.maximize_window() #最大化窗口
self.driver.implicitly_wait(5) #隐式等待5s
2,等待方式
直接等待:time.sleep(3) #强制休眠3s,基本不适用
隐式等待:self.driver.implicitly_wait(5) #可以全局应用,一般写在setup中,可以动态等待5s
显式等待:
action_sign = (By.XPATH, "//*[@text = '等待元素']") WebDriverWait(self.driver,10).until(expected_conditions.element_to_be_clickable(action_sign)) #在特定的情况下需要使用,有些个别位置因为响应速度慢或者网速慢可以使用显式等待等到某个元素出现时,再继续下面的测试操作。
3,web的控件操作
self.find_click(By.XPATH, "//*[@text='查找元素']")#查找网页中文字为“查找元素”的控件
还可以By.ID,By.CSS_SELECTOR,By.CLASS_NAME,By.LINK_TEXT等等方式查询控件
4,鼠标操作
需要调用ActionChains
action = ActionChains(driver)
单击
action.click(element)
右键
action.context_click(element)
双击
action.double_click(element)
移动到某个元素上
action.move_to_element(element)
拖拽一个元素到另一个元素上并放掉
action.long_press(x, y_start, duration).move_to(x1,y_end).release().perform() 或者 action.drag_and_drag(element_drag,element_drop)
删除
action.send_keys(keys.BACK_SPACE)
5,多窗口
获取当前窗口句柄
driver.current_window_handle
获取所有窗口句柄
driver.window_handles
切换窗口
driver.switch_to.window('句柄')
根据id切换frame
driver.switch_to.frame("id")
切换到默认frame
driver.switch_to.default_content()
切换到父级frame
driver.switch_to.parent_frame()