webdriver的API学习(二)

一、获得验证信息

# 当前页面的标题title
# 当前页面的url
# 当前页面的标签中的内容
from selenium import webdriver
import time

driver = webdriver.Firefox()

driver.get('http://www.baidu.com')

# 打印title
title = driver.title
print(title)

# 打印页面的url
url = driver.current_url
print(url)

# 获取用户名
username = driver.find_element_by_xpath("//*[@id='s_username_top']/span").text
print(username)

driver.quit()

二、元素等待

1、显性等待

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
driver = webdriver.Firefox()
driver.get('http://www.baidu.com')
# 在设置的时间内,默认每隔一段时间检测一次是否存在,检测不到抛异常
element = WebDriverWait(driver, 5, 0.5).unitl(
	EC.presence_of_element_located((By.ID, 'kw'))   # 判断是否存在
	)
element.send_keys(xx)

2、隐性等待

driver.implicitly_wait(10)   # 隐形等待10s

3、使用sleep函数

三、iframe切换

# 通过iframe表单嵌入一个页面,直接定位会出错


driver.get(...)
# 切换到iframe(id="if"),便可以正常定位了,默认为id或name属性
# 如果没有id或name属性,可通过xpath定位到iframe,在把对象传给
# xf = driver.find_element_by_xpath('//*[@class="if"]')
# driver.switch_to.frame(xf)
driver.switch_to.frame("if")

# 完成后,跳出iframe,跳出上一级
driver.switch_to.parent_frame()

# 如果有多层表单,想要跳到最外层
driver.switch_to.default_content()
# submit的应用
from selenium import webdriver
import time

driver = webdriver.Firefox()
driver.get('http://youdao.com/')

driver.find_element_by_id('translateContent').send_keys('hello')
driver.find_element_by_id('form').submit()
time.sleep(2)

driver.quit()

四、警告窗处理

# 警告窗switch_to_alert()
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
import time

driver = webdriver.Firefox()
driver.implicitly_wait(10)
driver.get('http://baidu.com')

# 鼠标悬浮到设置上
link = driver.find_element_by_link_text('设置')
ActionChains(driver).move_to_element(link).perform()

# 打开搜索设置
driver.find_element_by_link_text('搜索设置').click()

# 保存设置
driver.find_element_by_class_name("prefpanelgo").click()
time.sleep(2)

# 接受警告窗==确认
driver.switch_to_alert().accept()

driver.quit()

五、操作cookie

# 操作cookie
# 得到cookie:get_cookies(),或get_cookie(name)
# 添加cookie:add_cookie()
# 删除cookie:全部:delete_all_cookies(),一个:delete_cookie(name)
from selenium import webdriver

driver = webdriver.Firefox()
driver.get('http://www.baidu.com')

# 获取cookie信息
cookie = driver.get_cookies()
print(cookie)

# 添加cookie
driver.add_cookie({'name': 'key-aaaa', 'value': 'value-bbbb'})

# 遍历
for cookie in driver.get_cookies():
	print("%s -> %s" % (cookie['name'], cookie['value']))


driver.quit()

六、调用js

# 调用js操作滚动条,textarea填充内容
# 执行js execute_script(js)
from selenium import webdriver
from time import sleep

driver = webdriver.Firefox()
driver.get("http://www.baidu.com")

# 设置浏览器的大小
driver.set_window_size(600, 600)

# 搜索
driver.find_element_by_id('kw').send_keys('selenium')
sleep(2)
driver.find_element_by_id('su').click()
sleep(2)

# 通过js设置浏览器滚动条的位置,水平,垂直
js = "window.scrollTo(100, 450);"
driver.execute_script(js)
sleep(3)

# driver.quit()

七、处理HTML5的视频播放

# 操作video标签
from selenium import webdriver
from time import sleep

driver = webdriver.Firefox()
driver.get('http://videojs.com')

video = driver.find_element_by_xpath('//*[@id="preview-player_html5_api"]')

# 返回播放文件地址
url = driver.execute_script("return arguments[0].currentSrc;", video)
print(url)

# 播放视频
print("start")
driver.execute_script("return arguments[0].play()", video)

# 播放5s
sleep(5)

# 暂停视频
print('stop')
driver.execute_script("arguments[0].pause()",video)

driver.quit()

 

八、屏幕截图

# 截图
from selenium import webdriver
from time import sleep

driver = webdriver.Firefox()
driver.get('http://www.baidu.com')

driver.find_element_by_id('kw').send_keys('selenium')
driver.find_element_by_id('su').click()
sleep(2)

# 截取当前窗口,并保存指定位置
driver.get_screenshot_as_file("C:\\Desktop\\baidu_img.jpg")

driver.quit()

 

九、验证码

# 设置验证码
# 设计一个万能验证码,
from random import randint

# 生成一个1000到9999之间的随机整数
n = randint(1000, 9999)
print('生成的随机数:%d' %n)

number = input("请输入随机数")
print(number)
number = int(number)

if number == n:
	print('登录成功')  # 当验证码与输入的一致
elif number == 132741:   # 万能验证码
	print("登录成功")
else:
	print("验证码输入有误")

 

1.1 selenium webdriver学习(一)------------快速开始 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.2 selenium webdriver学习)————对浏览器的简单操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.3 selenium webdriver学习(三)------------执行js脚本 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.4 selenium webdriver学习(四)------------定位页面元素 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 1.5 selenium webdriver学习(五)------------iframe的处理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 1.6 selenium webdriver学习(六)------------如何得到弹出窗口 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 1.7 selenium webdriver学习(七)------------如何处理alert、confirm、prompt对话框 . . . . . . . . .24 1.8 selenium webdriver学习(八)------------如何操作select下拉框 . . . . . . . . . . . . . . . . . . . . . . . . .27 1.9 selenium webdriver学习(九)------------如何操作cookies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 1.10 selenium webdriver学习(十)------------如何把一个元素拖放到另一个元素里面 . . . . . . . . . . .31 1.11 selenium webdriver学习(十一)------------如何等待页面元素加载完成 . . . . . . . . . . . . . . . . . .33 1.12 selenium webdriver学习(十)------------如何利用selenium-webdriver截图 . . . . . . . . . . . .38
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值