**
八大定位
**
id
name
class name 伪类名定位
tge name 标签名定位
link text 链接文本定位
part lint text 部分链接文本
xpath 路径
css selector css选择定位
关闭
**quit()关闭所有页面 close()关闭当前页面**
(quit清理临时文件,close不会)
**
屏幕
**
w.maximize_window()全屏
w.set_window_size() 设置屏幕大小
w.get_window_size()获取当前页面大小
#下载网页源码 page_source
#wb(已二进制的方法写入)
date1=w.page_source
with open('baidu.html','wb') as f:
f.write(date1.encode())
保存快照
#w.get_screenshot_as_file('baidu.jpg')
**
读取文件
**
import csv
#找到文件路径 通过(open)打开,申明打开的方式:mode
编码格式utf-8
csv_file=open(r'D:\untitled1\test_demo_csv',mode='r',encoding='utf-8')
#通过csv包提供读的方法来读取上面的文件
csv_data=csv.reader(csv_file)
#循环遍历输出
for i in csv_data:
print(i)
#关闭
csv_file.close()
r 读取文件 若文件不存在则保错
a 写文件若文件不存在创建 追加
w 写文件若文件不存在则创建 覆盖
a+ 可读可写 文件不存在创建 追加
w+ 可读可写 文件不存在则创建
r+:可读,可写,文件不存在会报错,写操作时会覆盖
表单
切换进入表单内部
d.switch_to.frame(d.find_element_by_xpath('/html/body/div[4]/iframe'))
#切换出来,回到最外层
#d.switch_to.default_content()
#切换出来,回到上一层
#d.switch_to.parent_frame()
首先定位下拉框,然后通过下拉菜单来下拉选择选项
Select(dd.find_element_by_name('sel_question')).select_by_value('favorite_food')
页面切换
第一种切换页面
#获取所有窗口页面
all=d.window_handles #all=['第一个页面','第二个页面']
进行窗口切换
d.switch_to.window(all[1])
#第二种切换页面
#获取当前页面
a=w.current_window_handle
#获取所有页面
all=w.window_handles
for i in all:
if i !=a:
w.switch_to.window(i)
**
``# #警告框处理—》alert
**
#切换警告框
#d.switch_to.alert.accept()#点了确定按钮
#d.switch_to.alert.dismiss()#点了取消按钮
**
ActionChains鼠标键盘操作
**
#悬停的目标 perform()表示执行
a=d.find_element_by_partial_link_text('更多')
# 悬停---》鼠标事件类
ActionChains(d).move_to_element(a).perform()
**
ActionChains(w).context_click(a).perform() 鼠标右击
ActionChains(w).double_click(a).perform() 鼠标右击
**
#鼠标向下移动6次
#a.send_keys(Keys.DOWN*6,Keys.ENTER)
Keys库 键盘操作(k大写)
w.find_element_by_id('kw').send_keys(Keys.CONTROL,'c') 注释:(Keys.CONTROL,'c')---- ctrl+c
#路径
# 获取上级路径 D:\untitled1
b=os.path.abspath(os.path.dirname(os.getcwd()))
#获取当前路径
b= os.path.abspath('.')
#获取上上级路径
b=os.path.abspath(os.path.join(os.getcwd(), "../.."))
**
滚动 ‘window.scrollTo(x,y)’
**
x为水平拖动距离 y为垂直拖动距离
js='window.scrollTo(0,1000)'
d.execute_script(js) 执行
js= "var q=document.documentElement.scrollTop=n"
n为从顶部往下移动滚动举例 (倒着拖动)
for i in range(100):
js='window.scrollTo(0,%s)'%(i*100)
d.execute_script(js)
#等待
显示等待
#需要导入的包
#导入By
from selenium.webdriver.common.by import By
#导入webdriver等待类
from selenium.webdriver.support.ui import WebDriverWait
#导入预期条件设置类
from selenium.webdriver.support import expected_conditions as EC
#浏览器总共等待10秒,在10秒内,每隔0.5秒去使用id的方式定位一下元素,如果定位到,就结束等待,如果定位不到同时没有大于10秒,则继续等待
el = WebDriverWait(driver,10,0.5).until(EC.presence_of_element_located((By.ID,'su')))
隐示等待
d.implicitly_wait(10)
强制等待
time.sleep(3)
**
cookies
**
# 获取cookies,直接调用,不需要参数
data = driver.get_cookies()
print(data)
# 删除所有cookies
driver.delete_all_cookies()
# 设置cookies
cookie = {"name":"itcast","value":"soft_test"}
driver.add_cookie(cookie)
# 获取
data1 = driver.get_cookies()
print(data1)
#文件读取某一行 .txt
#读取
file=open(r'zhmm.txt',"r")
dd=len(file.readlines())
#随机
a=random.randrange(1,dd)
#读取某一行
bb=linecache.getline('zhmm.txt',a)
判断txt文档 是不是空行
第一种
bb=linecache.getline('zhmm',a)
line = bb.strip()
if line==''
-------------------
第二种
bb=='/n'