selenium自动化常用的键盘操作

selenium提供了比较完整的键盘操作,在使用的模拟键盘操作之前需要导入

from selenium.webdriver.common.keys import Keys

在keys类中,定义了非常多的按键操作,以下内容是在实际上会常用到的

组合键:

我们经常会用到的Ctrl+A,Ctrl+C都是组合键

在使用按键操作的时候需要借助一下send_keys()来模拟操作

Keys.CONTROL,也就是我们键盘上的Ctrl键,下面是几个常用的组合键:driver.find_element_by_id('xxx').send_keys(Keys.CONTROL,'a')

send_keys(Keys.CONTROL,'a')  # 全选(Ctrl+A)
send_keys(Keys.CONTROL,'c')  # 复制(Ctrl+C)
send_keys(Keys.CONTROL,'x')  # 剪切(Ctrl+X)
send_keys(Keys.CONTROL,'v')  # 粘贴(Ctrl+V)

注意:send_keys 有两个参数

 

常用的非组合键:driver.find_element_by_id('xxx').send_keys(Keys.ENTER)

回车键:Keys.ENTER

删除键:Keys.BACK_SPACE

空格键:Keys.SPACE

制表键:Keys.TAB

回退键:Keys.ESCAPE

刷新键:Keys.F5

 

例如在百度中利用Keys.ENTER代替搜索:

from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keys
import time

driver = webdriver.Chrome()
driver.maximize_window()
driver.get('http://www.baidu.com')

driver.find_element_by_id('kw').send_keys('python')
time.sleep(3)

# 1.实例化ActionChains类
ac = ActionChains(driver)

# 2.调用鼠标行为,最后调用perform()来执行鼠标操作
ele = driver.find_element_by_xpath('//div[@id="u"]//a[@name="tj_settingicon"]')
ac.move_to_element(ele).perform()

WebDriverWait(driver,20).until(EC.visibility_of_element_located((By.XPATH,'//a[text()="高级搜索"]')))
driver.find_element_by_xpath('//a[text()="高级搜索"]').click()

WebDriverWait(driver,20).until(EC.visibility_of_element_located((By.XPATH,'//input[@value="高级搜索"]')))
driver.find_element_by_id('adv_keyword').clear()
driver.find_element_by_id('adv_keyword').send_keys('selenium')
# 使用Enter键代替高级搜索
driver.find_element_by_xpath('//input[@value="高级搜索"]').send_keys(Keys.ENTER)

driver.quit()

 

你可能感兴趣的:(web自动化,selenium,Python)