网站测试,通俗讲就是通鼠标,键盘等操作网站的元素,完成一系列的流程。而网站自动化测试,就是将这些操作用程序来实现, 所以只需要掌握相关的命令即可上手。
详细了解自动化测试的同学,请移驾: https://www.cnblogs.com/gupao123/p/9791111.html
Driver相关
# 引入selenium 模块 from selenium import webdriver # 如果chrome 驱动配置到环境变量中, 直接使用 driver = webdriver.Chrome() # 不在环境变量中,加载chrome 驱动 driver = webdriver.Chrome('chrome driver path') # 打开页面 driver.get('地址'); driver.get('https://www.baidu.com'); #设置浏览器 宽500, 高800 driver.set_window_size(500,800) # 全屏 driver.maximize_window() # 后退 driver.back() # 前进 dirver.forward() # 刷新当前页面 driver.refresh() # 关闭当前页面 driver.close() # 退出(也就关闭浏览器) driver.quit(); #当前页面title driver.title #当前页面URL driver.current_url #截取当前窗口,并指定截图图片的保存位置 driver.get_screenshot_as_file("file")
元素定位
# 通过 id 定位元素,返回定位到的第一个元素 driver.find_element_by_id("id") # 通过 xpath 定位元素,返回定位到的第一个元素 driver.find_element_by_xpath("xpath") # 通过超链接定位元素,返回定位到的第一个元素 driver.find_element_by_link_text("link name") # 通过超链接定位元素(部分名称),返回定位到的第一个元素 driver.find_element_by_partial_link_text("link name") # 通过 name 定位元素,返回定位到的第一个元素 driver.find_element_by_name("name") # 通过 class name 定位元素,返回定位到的第一个元素 driver.find_element_by_class_name("class name") # 通过 tag name 定位元素(很少用到),返回定位到的第一个元素 driver.find_element_by_tag_name("tag name") # 通过 css 定位元素(很少用到),返回定位到的第一个元素 driver.find_element_by_css_selector("css") # 通过 id 定位元素,返回定位到的元素数组 driver.find_elements_by_id("id") # 通过 xpath 定位元素,返回定位到的元素数组 driver.find_elements_by_xpath("xpath") # 通过超链接定位元素,返回定位到的元素数组 driver.find_elements_by_link_text("link name") # 通过超链接定位元素(部分名称),返回定位到的元素数组 driver.find_elements_by_partial_link_text("link name") # 通过 name 定位元素,返回定位到的元素数组 driver.find_elements_by_name("name") # 通过 class name 定位元素,返回定位到的元素数组 driver.find_elements_by_class_name("class name") # 通过 tag name 定位元素(很少用到),返回定位到的元素数组 driver.find_elements_by_tag_name("tag name") # 通过 css 定位元素(很少用到),返回定位到的元素数组 driver.find_elements_by_css_selector("css")
元素操作
# 元素上的操作 element = driver.find_element_by_id('kw') # 清空 element.clear() # 点击 element.click() # 输入值 element.send_keys("value") # 获取元素的内容,页面上可看到的文字 element.text # 元素是否选中 element.is_selected() # 元素是否显示 element.is_displayed() # 断是否真正处于disabled的状态 element.is_enabled() # 获取元素属性内容, 如input value element.get_attribute("value")
键盘操作
# 引入键盘操作模块 from selenium.webdriver.common.keys import Keys # 删除键(BackSpace) element.send_keys(Keys.BACK_SPACE) # 空格键(Space) element.send_keys(Keys.SPACE) # 制表键(Tab) element.send_keys(Keys.TAB) # 回退键(Esc) element.send_keys(Keys.ESCAPE) # 回车键(Enter) element.send_keys(Keys.ENTER) # 全选(Ctrl+A) element.send_keys(Keys.CONTROL, 'a') # 复制(Ctrl+C) element.send_keys(Keys.CONTROL, 'c') # 剪切(Ctrl+X) element.send_keys(Keys.CONTROL, 'x') # 粘贴(Ctrl+V) element.send_keys(Keys.CONTROL, 'v') # F1键 其余类似 element.send_keys(Keys.F1)
鼠标操作
# 引入鼠标操作模块 注每个模拟事件后需加.perform() 才会执行 from selenium.webdriver.common.action_chains import ActionChains # move_to 移动, 将鼠标移动到定位的元素上面, 悬浮状态 ActionChains(driver).move_to_element(element).perform() # move_to 移动, 将鼠标移动到定位的元素上面,并点击 ActionChains(driver).move_to_element(element).click().perform() # 定位元素的源位置 element = driver.find_element_by_id("xxx") # 定位元素要移动到的目标位置 target = driver.find_element_by_id("xxx") # 执行元素的拖放操作 ActionChains(driver).drag_and_drop(element, target).perform() # 右击 ActionChains(driver).context_click(element).perform() # 双击 ActionChains(driver).double_click(element).perform() # 将鼠标移动到指定位置 ActionChains(driver).move_by_offset(100, 100).perform()
Frame切换
# iframe # 选中frame: 通过 id 或 name 选中 driver.switch_to.frame('toLogin') # 选中frame: 通过 元素, 因为有些frame上没有id 和 name, 那么通过元素定位 driver.switch_to.frame(element) # 选中父frame driver.switch_to.parent_frame() # 将frame 切换到主页面,注: frame 自动关闭则,会切换到主页面 driver.switch_to.default_content()
弹框
# 弹框 # 选择弹框 driver.switch_to_alert() # 获取弹框内容 driver.switch_to_alert().text # 弹框确定 driver.switch_to_alert().accept() # 弹框取消 driver.switch_to_alert().dismiss()
浏览器窗口
# 窗口 # 获取全部窗口 handles = driver.window_handles # 切换窗口 driver.switch_to.window(handles[0])
以上是常用的基础命令,整理出方便查看。
ps: 欢迎小伙伴们关注,转发, 收藏。