一.常用webdriver语句
打开网址:driver.get(url)
关闭浏览器:driver.quit()
关闭当前窗口:driver.close()
设置窗口大小:driver.set_window_size(200,500)
最大化窗口:driver.maximize_window()
获取网页源码:driver.page_source
获取窗口名称:driver.name
刷新页面:driver.refresh()
获取页面标题:driver.title
获取当前页面URL地址:driver.current_url
获取当前页面截图:driver.get_screenshot_as_file(path)
往回退一步操作:driver.back()
往前一步操作:driver.forward()
获取当前打开的窗口句柄:driver.window_handles(用于页面切换)
切换页面:driver.switch_to.window()
二.常用的定位方式
1.id定位
driver.find_element('id', 'username').send_keys(un)
2.name属性定位
driver.find_element('name', 'sex').click() # 男
driver.find_element('name', 'sex')[1].click() # 女
3.class name定位
driver.find_element('class name', 'dotborder').send_keys('ff')
注意:复合样式不能直接使用class name定位,下图的不能用
4.tag name定位(一般用于寻找同类元素)
driver.find_element('tag name', 'input').send_keys('ff')
5.link text 和partial link text定位超链接
link text需要写完整的文字,partial link text可写部分文字
driver.find_element('link text', '打开百度').click()
driver.find_element('partial link text', '百度').click() # 等同上面
6.xpath
(1)绝对路径:从上往下找,不常用
(2)相对路径:从目标开始往上找
driver.find_element('xpath', '//tbody/tr[3]/td[2]/i').text()
driver.find_element('xpath', '//tbody/tr[3]///i').text() # 等同上面
(3)xpath属性定位
driver.find_element('xpath', '//input[@type="file"]').click()
driver.find_element('xpath', '//input[@type="file"][@mode="sub"]').send_keys('18')
(4)xpath模糊定位
driver.find_element('xpath', '//*[contains(@placeholder,"yourself")]').send_keys('ff')
driver.find_element('xpath', '//*[contains(text(),"60岁")]').send_keys('ff')
(5)用chrom浏览器可以检查定位的元素
$x(‘//*[contains(text(),“60岁”)]’)
(6)自动生成xpath路径
三.元素定位的常规原则
1.页面有id时,优先使用id来定位
2.xpath很强悍,但定位性能不是很好,当其他方法不好定位时可以用
3.定位一组相同元素时,可考虑使用tag name或者name
4.定位链接时,可以考虑link text 或partial link text
四.webdriver常用API元素操作
clear:清除文本框内的文字
send_keys:向文本框或文件上传按钮发送文字内容
click:点击按钮
text:获取节点上的文本信息
get_attribute(name):获取元素的属性信息
is_displayed:判断元素是否显示出来
五.webelement属性
id:标识
size:宽高
rect:宽高和坐标
tag_name:标签名称
text:文本内容
from selenium import webdriver
driver = webdriver.Firefox()
driver.get("http://sahitest.com/demo/")
e = driver.find_element_by_id('t1')
print(type(e))
print(e.id)
print(e.size)
print(e.rect)
print(e.text)
## 六.webElement方法
send_keys() :输入内容
clear():清空内容
click():单击
get_attribute():获得属性值
is_selected():是否被选中
is_enabled():是否可用
is_displayed():是否显示
value_of_css_property():css属性值