20171012学习笔记Selenium 2 第四章WebDriver API 4.2控制浏览器 4.3简单元素操作4.4鼠标事件4.5键盘事件

4.2控制浏览器
4.2.1控制浏览器窗口大小
通过 driver.set_window_size(480,800) 来设置大小。
#coding=utf-8

#打开浏览器,并控制浏览器的大小
from selenium import webdriver
driver = webdriver.Firefox()
driver.get( "http://bbs.u.360.cn" )

#参数数字为像素点
print ( "设置浏览器宽480.高800" )
driver.set_window_size( 480 , 800 )
#driver.quit()

maximize_window_size()来设置全屏。

4.2.2控制浏览器前进、后退
back()后退
forward()前进

#coding=utf-8
# from selenium import webdriver
from time import sleep
#
# driver =webdriver.Firefox

from selenium import webdriver
driver = webdriver.Firefox()
driver.get( "http://bbs.u.360.cn" )

# first_url= 'http://bbs.u.360.cn'
# print("now access %s" %(first_url))
# driver.get("http://bbs.u.360.cn")
sleep( 2 )
driver.find_element_by_link_text( "手机版" ).click()

sleep( 2 )
driver.get( "http://u.360.cn" )
driver.back()
sleep( 1 )
driver.back()
sleep( 1 )

driver.forward()

4.2.3模拟器刷新
driver.refresh()
某些界面进行操作后,还需要手动刷新才会有数量变化。


4.3简单元素操作
clear() 清除文本
send_keys(*value) 模拟按键输入
click() 单机元素


4.3.1网站登陆
#coding=utf-8

from selenium import webdriver
from time import sleep

driver = webdriver.Firefox()
#driver = webdriver.Chrome()


#url="http://www.126.com"
#url="http://www.baidu.com"
driver.get(url)

driver.find_element_by_link_text( "登录" ).click()

sleep( 2 )
print ( "account" )
driver.find_element_by_css_selector( '.quc-input.quc-input-account' ).send_keys( "username" )#输入账号
print ( "password" )
sleep( 2 )
driver.find_element_by_css_selector( '.quc-input.quc-input-password' ).send_keys( 'password' )#输入密码
print ( "login_account" )
driver.find_element_by_css_selector( ".quc-submit.quc-button.quc-button-sign-in" ).click()

sleep( 2 )
driver.refresh()

#driver.quit()
4.3.2WebElement接口常用方法
submit() 用于提交表单。 需要type=submit 有道首页已经更改,没有翻译按钮没有type=submit属性,所以用百度首页。

#coding=utf-8

from selenium import webdriver

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

driver.find_element_by_id( "kw" ).send_keys( "hello" )
#提交输入框的内容
driver.find_element_by__by_id( "su" ).submit()
#driver.quit

size() 返回元素的尺寸
text() 获取元素的文本
get_attribute(name) 获取属性值
is_displayed() 设置


__author__ = 'dufengchen'
#coding=utf-8
from selenium import webdriver

driver=webdriver.Firefox()
url= "http://www.baidu.com"
#url="http://bbs.u.360.cn"
driver.get(url)

#获取输入框的尺寸
size=driver.find_element_by_id( "key-words" ).size
print (size)

#返回底部备案信息
text= driver.find_element_by_css_selector( '.footer>p' ).text

textEncode=text.encode( "utf-8" )
print (textEncode)

#textDecode=textEncode.decode("utf-8")
#print(textDecode)

#通过urllib.parse.quote 将字节序列转化成url的中文编码形式,逆过程是unquote函数。
import urllib.parse
res = urllib.parse.quote(textEncode)
print (res)

#返回第一个游戏列表的某一元素属性,游戏名称
game_name=driver.find_element_by_css_selector( ".bbs_home_games>dl>dt>a>p" ).get_attribute( "title" )
print (game_name)

#判断某一元素:游戏挂件是否存在
result=driver.find_element_by_css_selector( ".pos_con_hang>a>img" ).is_displayed()
print (result)

driver.quit()

4.4鼠标事件
ActionChains 类提供了鼠标操作的常用方法
perform() 执行所有ActionChains中存储的方法
context_click() 右击
double_click() 双击
drag_and_drop() 拖动
move_to_element() 鼠标悬停
需要引入点击事件的库:
from selenium.webdriver.common.action_chains import ActionChains

from selenium import webdriver
#引入ActionChains类
from selenium.webdriver.common.action_chains import ActionChains

driver = webdriver.Firefox()

url= "http://bbs.u.360.cn"
driver.get(url)

#1定位要右击的元素
right_click=driver.find_element_by_css_selector( ".icon-gamelist.gamelist-button" )
ActionChains(driver). context_click (right_click).perform()
print ( "右击" )

#2设置鼠标悬停
above = driver.find_element_by_css_selector( ".bbs_home_games>dl>dt>a>p" )
ActionChains(driver). move_to_element (above).perform()
print ( "悬停" )

#3定位要双击的元素
doubleshuang_click=driver.find_element_by_class_name( "icon-gamelist.gamelist-button" )
ActionChains(driver). double_click( doubleshuang_click).perform()
print ( "双击" )

#4鼠标拖放,drag_and_drop()

#定位元素原先位置
element=driver.find_element_by_xpath( ".//*[@id='bbs_home_hot_games']/div[1]/dl[2]/dt/a/p" )
#element=driver.find_element_by_css_selector()
#定位元素要拖放的位置
target =driver.find_element_by_xpath( ".//*[@id='bbs_home_hot_games']/div[1]/dl[3]/dt/a/p" )

#执行元素的托放操作
ActionChains(driver).drag_and_drop(element,target).perform()

4.5键盘事件
send_keys()可以模拟键盘输入,除此之外,还可以模拟组合按键。使用键盘方法必须事先导入Keys类

#coding=utf-8
from selenium import webdriver
#引入Keys模块
from selenium.webdriver.common.keys import Keys
from time import sleep

driver=webdriver.Firefox()

url= "http://www.baidu.com"
id_words= "kw"
#url="http://bbs.u.360.cn"
#id_words="key-words"
driver.get(url)

#输入内容
driver.find_element_by_id(id_words).send_keys( "seleniumM" )
sleep( 1 )
# 删除最 后一个字符M
driver.find_element_by_id(id_words). send_keys(Keys.BACK_SPACE)
sleep( 2 )
#输入空格,加上教程
driver.find_element_by_id(id_words).send_keys(Keys.SPACE)
driver.find_element_by_id(id_words). send_keys(Keys.SPACE)
driver.find_element_by_id(id_words). send_keys('教程')
sleep( 2 )
#ctrl+ a 全 选输入框中的内容
driver.find_element_by_id(id_words). send_keys(Keys.CONTROL,'a')
sleep( 2 )
# ctrl+ x 剪切输 入框中的内容
driver.find_element_by_id(id_words). send_keys(Keys.CONTROL,'x')
sleep( 2 )
#ctrl+ v 粘贴输入框中的内容
driver.find_element_by_id(id_words). send_keys(Keys.CONTROL, 'v' )
sleep( 2 )
#通过回车键代替单击操作
driver.find_element_by_id(id_words). send_keys(Keys.ENTER)

sleep( 2 )

#driver.quit()



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值