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

来源:互联网 发布:c 网络通信 编辑:程序博客网 时间:2024/06/16 02:37
4.2控制浏览器
4.2.1控制浏览器窗口大小
通过 driver.set_window_size(480,800) 来设置大小。
#coding=utf-8

#打开浏览器,并控制浏览器的大小
fromselenium importwebdriver
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
fromtime importsleep
#
# driver =webdriver.Firefox

fromselenium importwebdriver
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

fromselenium importwebdriver
fromtime importsleep

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

fromselenium importwebdriver

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
fromselenium importwebdriver

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函数。
importurllib.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

fromselenium importwebdriver
#引入ActionChains类
fromselenium.webdriver.common.action_chainsimportActionChains

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
fromselenium importwebdriver
#引入Keys模块
from selenium.webdriver.common.keys import Keys
fromtime importsleep

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 0
原创粉丝点击