selenium-键盘事件

336 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第7天,点击查看活动详情

昨天讲到了鼠标事件,今天来介绍一下键盘事件的具体用法 1.已知元素定位、获取元素坐标位置:
坐标位置原点是在左上角,往右边走时,x会变大,往下面走时,y则增大 location = driver.find_element(By.method,element).location
return location -->> {'y': 255, 'x': 255}
除此之外还有一个方法时用来获取元素坐标位置的
document.querySelectorAll('css选择器')[0].getBoundingClientRect().left + document.documentElement.scrollLeft document.querySelectorAll('css选择器')[0].getBoundingClientRect().top + document.documentElement.scrollTop document.querySelectorAll('css选择器')[0].getBoundingClientRect().width document.querySelectorAll('css选择器')[0].getBoundingClientRect().height
这个方法需要在网页开发者模式下的console控制台中打开
2.已知元素定位、获取元素大小
size = driver.find_element(By.method,element).size return size -->> {'width': 66, 'height': 66} 3.提交表单(查找到表单(form)直接调用submit即可)
driver.find_element_by_id("form1").submit() 4.页面input框利用send_keys上传图片
#D:\dd.jpg 为本地图片路径 driver.find_element_by_id("file_select").send_keys("D:\dd.jpg") 5.设置网络
print(browser.set_network_conditions( offline=False, latency=5, # additional latency (ms) download_throughput=500 * 1024, # maximal throughput upload_throughput=500 * 1024) # maximal throughput ) )

键盘操作:
1.导包:
from selenium.webdriver.common.keys import Keys 2.send_keys()方法
driver.find_element(By.method,element).send_keys(Keys.键盘键值) driver.find_element(By.method,element).send_keys('')
3.常见键盘操作:
回退键:send_keys(Keys.BACK_SPACE)
空格:send_keys(Keys.SPACE)
tab 键:send_keys(Keys.TAB)
'+' 键:send_keys(Keys.ADD)
回车:send_keys(Keys.ENTER)
shift 键:send_keys(Keys.SHIFT)
Alt 键:send_keys(Keys.ALT)
Esc 键:send_keys(Keys.ESCAPE)
insert 键:send_keys(Keys.INSERT)
delete 键:send_keys(Keys.DELETE)
行尾键:send_keys(Keys.END)
行首键:send_keys(Keys.HOME)
翻页键上:send_keys(Keys.PAGE_UP)
翻页键上:send_keys(Keys.PAGE_DOWN)
Left 键:send_keys(Keys.LEFT)
UP 键:send_keys(Keys.UP)
RIGHT 键:send_keys(Keys.RIGHT)
DOWN 键:send_keys(Keys.DOWN)
数字09:send_keys(Keys.NUMPAD0NUMPAD9)
F1F12 键:send_keys(Keys.F1F12)
ctrl+c:send_keys(Keys.CONTROL, 'c')
ctrl+a:send_keys(Keys.CONTROL, 'a')
ctrl+v:send_keys(Keys.CONTROL, 'v')
ctrl+x:send_keys(Keys.CONTROL, 'x')
综合案例:
''' 在百度搜索框输入python ,复制粘贴搜狗输入框进行搜索 ''' def test_dragpageElement(self): url = 'www.baidu.com' self.driver = webdriver.Chrome() self.driver.get(url)

    input = self.driver.find_element_by_id('kw')
    input.send_keys('python')

      鼠标操作-按下键盘上的control键,键盘操作-发送a键,然后鼠标操作-松开键盘上的control键 ActionChains(self.driver).key_down(Keys.CONTROL).send_keys('a').key_up(Keys.CONTROL).perform() time.sleep(2)

    ActionChains(self.driver).key_down(Keys.CONTROL).send_keys('x').key_up(Keys.CONTROL).perform()
    self.driver.get(url)
    self.driver.find_element_by_id('kw').click()

      key_down(Keys.CONTROL)表示按下ctrl键,send_keys('v')类似模拟了V键,组合起来就是Ctrl+v,而key_down(Keys.CONTROL)表示释放Ctrl键

ActionChains(self.driver).key_down(Keys.CONTROL).send_keys('v').key_up(Keys.CONTROL).perform()
self.driver.find_element_by_id('su').click()