关于测试自动化Selenium的使用(3)

155 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路

介绍

今天是更新的第三篇,实在掘金发布的第三篇文章,更新selenium的后续使用,今天的更新内容主要是关于键盘的控制操作和输入操作

键盘输入

键盘输入.png 比如我现在需要在掘金的搜索框内输入内容并进行搜索 第一步我需要定位这个搜索框的元素,定位元素在第一篇文章中有说过,就是通过获取元素的xpath来定位元素

点击f12,找到对应的标签,右键标签,鼠标滑到复制那里,复制元素的xpath

xpath.png 找到xpath值之后就是通过代码来定位元素

driver.find_element_by_xpath('/html/body/div[1]/div/div/div[1]/div/header/div/nav/ul/ul/li[1]/ul/li[1]/form/input')

selenium输入需要用到一个类Keys,输入的方法是类中的send_keys()

和定位组合起来就是

driver.find_element_by_xpath('/html/body/div[1]/div/div/div[1]/div/header/div/nav/ul/ul/li[1]/ul/li[1]/form/input').send_keys('掘金')

切记输入的时候要导入keys类

键盘的操作

键盘的操作也一般都是用于输入框

删除操作

删除.png

我现在需要删除搜索框内输入的掘金

还是需要先定位,然后调用send_keys()方法

driver.find_element_by_xpath('/html/body/div[1]/div/div/div[1]/div/header/div/nav/ul/ul/li[1]/ul/li[1]/form/input').send_keys(Keys.BACK_SPACE)

这样写删除只会删除一个‘金’字,因为他只是执行了一次的删除键,要是想一次全部删除完文本框的输入内容,需要先对文字进行全选在进行删除,以下是对输入框的内容进行全选的代码

driver.find_element_by_id("/html/body/div[1]/div/div/div[1]/div/header/div/nav/ul/ul/li[1]/ul/li[1]/form/input").send_keys(Keys.CONTROL, 'a')

结合上一步的就是

driver.find_element_by_xpath('/html/body/div[1]/div/div/div[1]/div/header/div/nav/ul/ul/li[1]/ul/li[1]/form/input').send_keys(Keys.BACK_SPACE)

driver.find_element_by_id("/html/body/div[1]/div/div/div[1]/div/header/div/nav/ul/ul/li[1]/ul/li[1]/form/input").send_keys(Keys.CONTROL, 'a')

先对文字进行全选然后再对文字进行删除

键盘复制

和全选基本一致,只是把后面的a换成了c

driver.find_element_by_id("/html/body/div[1]/div/div/div[1]/div/header/div/nav/ul/ul/li[1]/ul/li[1]/form/input").send_keys(Keys.CONTROL, 'a')

键盘剪切

直接上代码,组合键的键盘控制其实都一样,就是把后面的指令给改掉

driver.find_element_by_id("/html/body/div[1]/div/div/div[1]/div/header/div/nav/ul/ul/li[1]/ul/li[1]/form/input").send_keys(Keys.CONTROL, 'x')

其他的键盘控制

空格键

driver.find_element_by_id("/html/body/div[1]/div/div/div[1]/div/header/div/nav/ul/ul/li[1]/ul/li[1]/form/input").send_keys(Keys.Space)

tab键

driver.find_element_by_id("/html/body/div[1]/div/div/div[1]/div/header/div/nav/ul/ul/li[1]/ul/li[1]/form/input").send_keys(Keys.TAB)

回退键

driver.find_element_by_id("/html/body/div[1]/div/div/div[1]/div/header/div/nav/ul/ul/li[1]/ul/li[1]/form/input").send_keys(Keys.ESCAPE)

enter键

driver.find_element_by_id("/html/body/div[1]/div/div/div[1]/div/header/div/nav/ul/ul/li[1]/ul/li[1]/form/input").send_keys(Keys.ENTER)

下一篇明天上午或者是今天下午的时候更新