webdriver获取元素的18种方式:
1、单数模式8 种
id定位模式
element = driver.find_element_by_id('i1')
element.send_keys('UI 自动化')
print(element)
class 定位
element= driver.find_element_by_class_name('classname')
element.send_keys('你猜吧')
name定位
element= driver.find_element_by_name('name')
element.send_keys('你猜吧')
css定位
element= driver.find_element_by_css_selector('input[placeholder="请通过CSS SELECTOR定位元素"]')
element.send_keys('shenjing')
xpath定位
element= driver.find_element_by_xpath("//*[@id='basebody']/div/div[1]/div[6]/input")
element.send_keys('shenjing')
LINKTEXT 超链接文案
element= driver.find_element_by_link_text("跳转大师兄博客地址")
element.click()
模糊 匹配
driver.execute_script("window.scrollTo(0,0);") #执行js
element = driver.find_element_by_partial_link_text("跳转大师")
element.click()
TAGNAME
element = driver.find_element_by_tag_name("input") #返回获取的第一个
element.send_keys("PPPP")
2、复数模式8 种
element = driver.find_elements_by_tag_name("input")[1] #返回的是相同的筛选条件筛选结果的list
print(element)
element.send_keys("今天!!!")
......
3、底层实现2种
element = driver.find_element('By.ID','[id="i1"]')
element.send_keys('UI 自动化')
这18种调用方式最常用的是css和xpath 其他的都不常用
窗口操作
WebDriverApi接口:
webdriver获取元素的18种方式:
1、单数模式8 种
id定位模式
element = driver.find_element_by_id('i1')
element.send_keys('UI 自动化')
print(element)
class 定位
element= driver.find_element_by_class_name('classname')
element.send_keys('你猜吧')
name定位
element= driver.find_element_by_name('name')
element.send_keys('你猜吧')
css定位
element= driver.find_element_by_css_selector('input[placeholder="请通过CSS SELECTOR定位元素"]')
element.send_keys('shenjing')
xpath定位
element= driver.find_element_by_xpath("//*[@id='basebody']/div/div[1]/div[6]/input")
element.send_keys('shenjing')
LINKTEXT 超链接文案
element= driver.find_element_by_link_text("跳转大师兄博客地址")
element.click()
模糊 匹配
driver.execute_script("window.scrollTo(0,0);") #执行js
element = driver.find_element_by_partial_link_text("跳转大师")
element.click()
TAGNAME
element = driver.find_element_by_tag_name("input") #返回获取的第一个
element.send_keys("PPPP")
2、复数模式8 种
element = driver.find_elements_by_tag_name("input")[1] #返回的是相同的筛选条件筛选结果的list
print(element)
element.send_keys("今天!!!")
......
3、底层实现2种
element = driver.find_element('By.ID','[id="i1"]')
element.send_keys('UI 自动化')
这18种调用方式最常用的是css和xpath 其他的都不常用
窗口操作
# 返回当前操作的浏览器句柄
driver.current_window_handle
# 返回所有打开server的浏览器句柄
driver.window_handles
以上两个用作切换浏览器的tab时封装在pyse中
#获取当前浏览器的大小
driver.get_window_size()
#通过像素设置浏览器的大小
driver.set_window_size('width','height')
#获取当前窗口针对于windows的位置的坐标x,y
driver.get_window_position(20,20)
#最大化当前窗口,不需要任何参数
driver.maximize_window()
截取图片
1、 获取当前页面的二进制图片数据,需要自己去写入文件
driver.get_screenshot_as_png()
2、as_png的上层封装,只需要传入图片名称自动写成图片
driver.get_screenshot_as_file('fileName.png')
3、# element截取
element.screenshot()
关闭和退出
# driver.quit() #关闭所有webdriver的页面
# driver.close() #关闭当前页面
执行javascript语句
driver.execute_script('window.scrollTo(100,400);')
cookie操作
根据cookiekey,获取cookie信息
cookie = driver.get_cookie('key')
获取所有的cookie信息
cookies = driver.get_cookies()
#添加cookie,严格按照格式添加,cookie的name是key,value是值
driver.add_cookie({'name':'fuck','value':'123123123'})
#删除所有 cookie信息
driver.delete_all_cookies()
#根据key删除对应的cookie
driver.delete_cookie('fuck')
浏览器操作
1、driver.refresh() 刷新
2、driver.forward() 前进
3、driver.back() 后退
ElementApi接口
element.get_attribute('style') #根据标签属性名称获取value
element.send_keys() #想输入框框中输入字符串如果file类型,可以输入文件的绝对路径上传
element.clear() #清楚文本内容
element.click() #鼠标点击操作
element.is_displayed() #返回元素是否课件 True or False
element.is_selected() #返回原色是否被选中 True or False
elemen.screenshot() 截图
# 通过属性名称获取属性
element.get_property('id')
# 返回标签元素的名字
element.tag_name
# 获取当前标签的宽和高
element.size
# 获取元素的文本内容
element.text
# 模仿回车按钮 提交数据
element.submit()
常见异常:
NoSuchElementException:没有找到元素
NoSuchFrameException:没有找到iframe
NoSuchWindowException:没找到窗口句柄handle
NoSuchAttributeException:属性错误
NoAlertPresentException:没找到alert弹出框
ElmentNotVisibleException:元素不可见
ElementNotSelectableException:元素没有被选中
TimeoutException:查找元素超时