一,鼠标事件
要使用鼠标操作,首先需要引入ActionChains包
from selenium.webdriver.common.action_chains import ActionChains
- context_click() 右击
- double_click() 双击
- drag_and_drop() 拖动
- move_to_element() 鼠标悬停在一个元素上
- click_and_hold() 按下鼠标左键在一个元素上
鼠标右键
#定位到要右击的元素 qqq=driver.find_element_by_xpath("/html/body/div/div[2]/div[2]/div/div[3]/table/tbody/tr/td[2]")
#对定位到的元素执行鼠标右键操作 ActionChains(driver).context_click(qqq).perform()
鼠标双击的写法:
#定位到要双击的元素 qqq =driver.find_element_by_xpath("xxx")
#对定位到的元素执行鼠标双击操作 ActionChains(driver).double_click(qqq).perform()
鼠标拖放操作的写法
#定位元素的原位置 element = driver.find_element_by_name("source")
#定位元素要移动到的目标位置 target = driver.find_element_by_name("target")
#执行元素的移动操作 ActionChains(driver).drag_and_drop(element, target).perform()
备注:.每个方法后的perform()是关键,如果么有这一步,是不生效的,就好比前面把工作都准备好,放缓存或者内存当中,最后一步就是提交,但是没有提交,还是在缓存当中的,所以就看不到效果,就好比打开文件写入一样,如果不关闭文件,那么文件内容一直是空的,好多人说我明明写入东西了,怎么打开是空的,就是这原因
我现在想将我是超人这框拖拽到第一个框里面,分三步,分别定位两个元素,然后利用drag_and_drop方法
移动前
移动后:
二,键盘按键键用法:
要想调用键盘按键操作需要引入keys包:
from selenium.webdriver.common.keys import Keys
通过send_keys()调用按键:
send_keys(Keys.TAB) # TAB
send_keys(Keys.ENTER) # 回车
备注:使用场景,好多页面如果删除了,或者新增什么成功了,会有一个提示框提示一下,这个时候,如果去页面定位,然后再找到后,点击确定按钮,浪费时间,而且有时候不好操作,甚至有时间根本就没有按钮可以点击,这时候如果直接给一个回车键会非常好,可能有些人说那我等几秒让他自动消失,可以是可以,如果我现在大批量造数据,每操作一个等3秒,如果进行10000次操作需要等多久,这时候回车键就特别好用
driver.find_element_by_id("user_name").send_keys(Keys.TAB)
driver.find_element_by_id("user_pwd").send_keys(Keys.ENTER)
键盘组合键用法:
#ctrl+a 全选输入框内容
driver.find_element_by_id("kw").send_keys(Keys.CONTROL,'a')
#ctrl+x 剪切输入框内容
driver.find_element_by_id("kw").send_keys(Keys.CONTROL,'x')
#ctrl+v 粘贴内容
driver.find_element_by_id("kw").send_keys(Keys.CONTROL,'v')
定位页面元素,输入test,然后全选,然后剪贴,然后粘贴
找到第一个输入框,输入test,然后输入tab键,光标跳转到下一个输入框