栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

提升之路--从0开始学web自动化(5)--鼠标,键盘对页面元素操作

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

提升之路--从0开始学web自动化(5)--鼠标,键盘对页面元素操作

鼠标

 

1,从selenium.webdriver导入Actionchains类

from selenium.webdriver import ActionChains

2,从Actionchains类生成对象,参数输入浏览器对象

mouse = ActionChains(browser)

3,找到鼠标需要使用的元素,进行鼠标操作

setting = browser.find_element(By.XPATH, '//*[@id="s-usersetting-top"]')

ActionChains类里的方法都要加上perform()方法才能生效

-悬停

鼠标移动到某个元素上停止不动

mouse.move_to_element(setting).perform()

-点击

mouse.click(el).perform()

也可以使用el.click()进行元素的点击操作,但是限制比较多,通常使用在点击链接(a标签),按钮(btn)操作,selenium会自动校验是不是这些标签,有的元素不支持直接使用click()方法

而使用ActionChains去操作点击,表示在全局中鼠标的点击事件,更底层的操作

当我们发现元素不能直接使用click()方法直接点击的时候,就可以使用ActionChains去操作鼠标点击

-双击

快速点击鼠标左键2次

#鼠标双击,记得加perform()表示执行操作
        mouse.double_click(el).perform()

-右击

鼠标右击某个元素

# 鼠标右击,记得加perform()表示执行操作
        mouse.context_click(img).perform()

-拖动

把元素拖动到另一个元素上

拖动需要传入2个参数,起始元素,结束元素

mouse.drag_and_drop("开始元素","结束元素").perform()

用户输入

-send_keys()

输入框操作,可以传入多个参数

-单/多选

找到元素直接点击

 #选择框
        browser.find_element(By.XPATH,'//input[@value="a"]').click()

-下拉选项

   #下拉框
        # browser.find_element("name","myselect").click()
        # time.sleep(3)
        browser.find_element(By.XPATH,'//option[text()="选项3"]').click()

可以先找到选择框进行点击,再点击里面的元素

也可以直接点击选择框里的元素,因为select和option是一起加载的

快捷键

1,从selenium.webdriver导入Keys类

from selenium.webdriver import ActionChains,Keys

2,send_keys()里面传入按键参数,可以是位置不定长参数,要按照顺序

单个按键  

回车键

browser.find_element(By.ID,"kw").send_keys("柠檬班",Keys.ENTER)

组合键

复制粘贴 ctrl+c  ctrl+v

先按住ctrl 再按c 然后松开ctrl

-得到一个ActionChains对象

#得到一个ActionChains的对象
        actions = ActionChains(browser)

-找到要复制内容的输入框,如果想复制输入框里的内容,需要点击进入输入框,不然就会直接选取页面全部元素进行复制

browser.find_element(By.ID, "kw").click()

如果输入框里没有内容,就要先输入内容,输入内容后不做操作,光标仍然会停留输入框,可以进行复制粘贴操作

browser.find_element(By.ID,"kw").send_keys("柠檬班")

-使用ctrl+a全选输入框的内容,按ctrl+c,最后ctrl+v,使用了ActionChains类的方法,所以要加perform()

     #复制/粘贴
        #得到一个ActionChains的对象
        actions = ActionChains(browser)
        browser.find_element(By.ID, "kw").click()
        #先按住ctrl 再按v,最后松开ctrl
        actions.key_down(Keys.CONTROL).send_keys("a").key_up(Keys.CONTROL).perform()
        actions.key_down(Keys.CONTROL).send_keys("c").key_up(Keys.CONTROL).perform()
        actions.key_down(Keys.CONTROL).send_keys("v").key_up(Keys.CONTROL).perform()
        actions.key_down(Keys.CONTROL).send_keys("v").key_up(Keys.CONTROL).perform()

在元素内直接使用send_keys

 browser.find_element(By.ID, "kw").send_keys(Keys.CONTROL,'v')

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/642045.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号