1、窗口操作
from selenium import webdriver
import time
dr = webdriver.Chrome()
wd = dr.get('http://baidu.com/')
dr.set_window_position(30,50)
time.sleep(1)
dr.set_window_position(80,100)
print(dr.get_window_position())
time.sleep(1)
dr.set_window_size(800,300)
print(dr.get_window_size())
time.sleep(1)
dr.minimize_window()
time.sleep(1)
dr.maximize_window()
dr.find_element_by_css_selector('#form input#kw').send_keys('python')
dr.find_element_by_css_selector('input#su').click()
time.sleep(1)
dr.back()
time.sleep(1)
dr.forward()
time.sleep(1)
dr.refresh()
time.sleep(1)
dr.quit()
2、鼠标事件
在selenium当中除了简单的点击动作外,还有一些稍微复杂的动作,就需要用到ActionChains(动作链)这个子模块来满足需求。 鼠标操作的方法封装在ActionChains类中,为了方便使用,首先需要导入这个类。所有的动作执行后都需要使用perform()方法提交才可以成功。
from selenium import webdriver
from selenium.webdriver import ActionChains
ActionChains.click()
ActionChains.perform()
ActionChains.context_click()
ActionChains.double_click()
ActionChains.drag_and_drop(a,b)
ActionChains.move_to_element()
3、键盘事件
键盘事件操作的方法存放在Keys()类中,需要先导入 from selenium.webdriver.common.keys import Keys
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
Keys.BACK_SPACE
Keys.SPACE
Keys.TAB
Keys.ESCAPE
Keys.ENTER
Keys.CONTROL,'a'
Keys.CONTROL,'c'
Keys.CONTROL,'x'
Keys.CONTROL,'v'
Keys.F12
4、滚动条
浏览器滚动条到最下方的代码(适合滚动加载使用),window.scrollTo() 参数,滚动条的横向距离和纵向距离
方法一:
每次滚动到最下方
original_top = 0
while True:
self.wd.execute_script("window.scrollTo(0,document.body.scrollHeight)")
time.sleep(0.5)
check_height = self.wd.execute_script(
"return document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop;")
if check_height == original_top:
break
original_top = check_height
方法二:
每次滚动设定距离
original_top = 0
while True:
self.wd.execute_script("window.scrollBy(0,500)")
time.sleep(0.5)
check_height = self.wd.execute_script(
"return document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop;")
if check_height == original_top:
break
original_top = check_height
两段代码不同之处在于execute_script中的参数window.scrollTo,和 window.scrollBy ,window.scrollBy(在设置每次滚动设定距离时使用较好),在获取当前滚动条距离顶部的距离时,某些浏览器会有所不同。
其他方向的滚动
滚动到元素对象的“底端”与当前窗口的“底部”对齐 :
execute_script("arguments[0].scrollIntoView(false);",element)
滚动到元素对象的“顶端”与当前窗口的“顶部”对齐:
execute_script("arguments[0].scrollIntoView();",element)
|