获取标签元素css
# 经过ID定位目标元素 driver.find_element_by_id('#i1') # 经过classname定位目标元素 driver.find_element_by_class_name('c1') # 经过name属性定位目标元素 driver.find_element_by_name('name') # 经过Xpath定位目标元素 driver.find_element_by_xpath("//*[@id='i1']") # 经过Css Selector定位目标元素 driver.find_element_by_css_selector('#i1') # 经过标签名称定位(注:在一个页面中标签必定会重复,因此通常不用这个定位) driver.find_element_by_tag_name('input') # 经过标签中的文本查找元素 driver.find_element_by_link_text('大师兄博客') # 经过标签中文本的模糊匹配查找 driver.find_element_by_partial_link_text('大师兄')
获取标签元素经常使用的一共有8种定位方式,而Selenium实际提供了18种定位方式,还有8中是上面的复数形式,这里就不一一介绍了,实际运用中并不经常使用,还有2种其实是这上面所说16种的底层封装。参数化的一种调用方式而已。chrome
浏览器操做windows
driver.refresh() #刷新
driver.forward() #前进
driver.back() #后退
窗口操做浏览器
# 获取当前浏览器大小 driver.get_window_size() # 经过像素设置浏览器大小 driver.set_window_size('width:100px','height:100px') # 获取当前窗口针对于windows的位置的坐标x,y driver.get_window_position() # 设置当前窗口针对windows的位置,x,y driver.set_window_position(20,20) # 最大化当前窗口,不须要传参 driver.maximize_window() # 返回当前操做的浏览器句柄 driver.current_window_handle # 返回全部打开server的浏览器句柄 driver.window_handles
截取当前页面ui
# 获取当前页面的二进制图片数据,须要本身去写入文件
driver.get_screenshot_as_png()
# as_png的上层封装,只须要传入图片名称自动写成图片
driver.get_screenshot_as_file()
执行JavaScript语句url
# 执行JavaScript语句 driver.execute_script('JavaScript Command') # 例:经过JS才操做滚动条 # 参数1:x 参数2:y window.scrollTo(100,400)
关闭与退出spa
# 当开启多个时,关闭当前页面
driver.close()
# 退出并关闭全部页面驱动
driver.quit()
其它code
# 返回页面源码
driver.page_source
# 返回tag标题
driver.title
# 返回当前url
driver.current_url
# 获取浏览器名称 如:chrome
driver.name
ElementApi接口server
# 根据标签属性名称,获取属性value element.get_attribute('style') # 向输入框输入字符串 若是input的type为file类型 能够输入文件绝对路径上传文件 element.send_keys() # 鼠标左键点击操做 element.click() # 清除文本内容 element.clear() # 经过属性名称获取属性 element.get_property('id') # 返回元素是否可见 True or False element.is_displayed() # 返回元素是否被选中 True or False element.is_selected() # 返回标签元素的名字 element.tag_name # 获取当前标签的宽和高 element.size # 获取元素的文本内容 element.text # 模仿回车按钮 提交数据 element.submit() # 获取当前元素的坐标 element.location # 截取图片 element.screenshot()
常见异常blog
NoSuchElementException:没有找到元素
NoSuchFrameException:没有找到iframe
NoSuchWindowException: 没找到窗口句柄handle
NoSuchAttributeException: 属性错误
NoAlertPresentException:没找到alert弹出框
ElmentNotVisibleException:元素不可见
ElementNotSelectableException:元素没有被选中
TimeoutException:查找元素超时