在做UI自动化时,是模仿我们手动操作界面,免不了鼠标点击,双击,左键,选中内容,悬停等操作。那今天给大家看一的如何在Python自动化代码中实现这些操作,还是以百度首页为例,对页面的一些标签选项进行操作。干讲语法知识点还不如看源码来得快,边操作边理解,大家也可以根据以下代码来自己敲一敲,比看知识点效果好。
对上面的页面的一些标签做操作:代码如下:
from selenium import webdriver
import time
#导入鼠标事件的类
from selenium.webdriver.common.action_chains import ActionChains
#导入键盘事件类
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome()
driver.get(‘http://www.youdao.com’)
driver.maximize_window() # 窗口最大化
driver.find_element_by_name(‘q’).send_keys(‘selenium’)
#submit与click方法类似,都是提交数据的方法
driver.find_element_by_xpath(’//*[@id=“form”]/button’).submit()
#鼠标事件:
driver = webdriver.Chrome()
driver.get(‘http://www.baidu.com’)
driver.maximize_window() # 窗口最大化
#1.定位要右击的元素
right_click =driver.find_element_by_id(‘kw’) # 对百度输入条进行定位
#ActionChains(driver):调用ActionChains,需要driver作为实现这个方法的参数
#context_click(right_click):用于鼠标右键单击的操作,使用要指定操作位置(入参要写定位)
#.perform():执行ActionChains类中的存储的行为,相当于是对整个操作进行确认提交动作
ActionChains(driver).context_click(right_click).perform()
#鼠标的悬停:获取悬停的位置,获取‘设置’的位置
time.sleep(2)
#xt = driver.find_element_by_xpath(’//*[@id=“s-usersetting-top”]’)
xt = driver.find_element_by_css_selector(’[id=“s-usersetting-top”]’)
#通过鼠标悬停在‘设置’处
ActionChains(driver).move_to_element(xt).perform()
time.sleep(2)
#悬停后,执行鼠标的双击操作
double_click = driver.find_element_by_link_text(‘搜索设置’)
ActionChains(driver).double_click(double_click).perform()
#鼠标的拖动操作:drag_and_drop:
yt = xt = driver.find_element_by_css_selector(’[id=“s-usersetting-top”]’)
ActionChains(driver).move_to_element(yt).perform()
time.sleep(2)
#定义拖动的起始位置
start = yt = driver.find_element_by_xpath(’//*[@id=“s-usersetting-top”]’)
#定义拖动的目标位置
end = driver.find_element_by_link_text(‘隐私设置’)
#start, end:鼠标拖动的源元素,鼠标释放的目标元素
ActionChains(driver).drag_and_drop(start, end).perform()
time.sleep(2)
#鼠标的移动:将鼠标从设置移动到隐私设置
ActionChains(driver).move_to_element(end).perform()
#键盘事件;
driver.find_element_by_id(‘kw’).send_keys(‘花开花落自有时’)
#删除输入内容中的最后一个字,keys-BACK_SPACE
time.sleep(2)
driver.find_element_by_id(‘kw’).send_keys(Keys.BACK_SPACE)
driver.find_element_by_id(‘kw’).clear()
#输入空格,
driver.find_element_by_id(‘kw’).clear() # 输入空格之前清空内容
driver.find_element_by_id(‘kw’).send_keys(‘花开花落自有时’)
time.sleep(2)
#执行输入一行空格的操作:Keys.SPACE
driver.find_element_by_id(‘kw’).send_keys(Keys.SPACE)
time.sleep(2)
driver.find_element_by_id(‘kw’).send_keys(‘缘起缘灭无穷尽’)
time.sleep(2)
driver.find_element_by_id(‘kw’).send_keys(Keys.SPACE)
time.sleep(2)
driver.find_element_by_id(‘kw’).send_keys(‘缘来缘去缘如水,人来人往皆不遇!’)
#模拟Crtl+a\Crtl+x\Crtl+v\回车键
#全部选中输入框中的内容
time.sleep(2)
driver.find_element_by_id(‘kw’).send_keys(Keys.CONTROL,‘a’)
#剪切输入框中的内容
time.sleep(2)
driver.find_element_by_id(‘kw’).send_keys(Keys.CONTROL,‘x’)
#粘贴内容到输入框
time.sleep(2)
driver.find_element_by_id(‘kw’).send_keys(Keys.CONTROL,‘v’)
#执行回车操作
time.sleep(2)
driver.find_element_by_id(‘su’).send_keys(Keys.ENTER)
#模拟输入F1,F12,TAB键
time.sleep(3)
driver.find_element_by_id(‘kw’).send_keys(Keys.F1)
time.sleep(3)
driver.find_element_by_id(‘kw’).send_keys(Keys.F12)
time.sleep(3)
driver.find_element_by_id(‘kw’).send_keys(Keys.TAB)
driver.find_element_by_id(“kw”).send_keys(‘春暖花开终有时’)
#模拟ESC键
driver.find_element_by_id(‘su’).send_keys(Keys.ESCAPE)
#driver.quit()
#获取标题
title = driver.title
print(title)
#获取url
now_url = driver.current_url
print(now_url)