一)常用快捷键的使用:
我们以禅道登陆界面为例进行演示:
1)当我们输入用户名和密码的时候,我们当前用enter键来进行操作的时候,也是可以直接进行登录操作的
2)下面我们写一下正常使用用户名+密码+登录按钮之后进行登录的脚本:
from selenium import webdriver import time driver=webdriver.Edge("C:\Program Files\Python310\Scripts\msedgedriver.exe"); driver.get("http://127.0.0.1:88/zentao/user-login-L3plbnRhby8=.html"); driver.maximize_window(); time.sleep(1); driver.find_element_by_id("account").send_keys("admin") #当我们选中的元素值不正确的时候,会自动进行设置波浪线 driver.find_element_by_name("password").send_keys("12503487e") driver.find_element_by_id("submit").click(); #上面是一个form表单 time.sleep(1); driver.quit();
2)下面我们来写一下用enter回车进行的登录操作:
#咱们首先要进行引入元件相关的操作包 from selenium import webdriver import time from selenium.webdriver.common.keys import Keys driver=webdriver.Edge("C:\Program Files\Python310\Scripts\msedgedriver.exe"); driver.get("http://127.0.0.1:88/zentao/user-login-L3plbnRhby8=.html"); driver.maximize_window(); time.sleep(1); #选中输入框 driver.find_element_by_id("account").send_keys("admin"); driver.find_element_by_name("password").send_keys("12503487e"); #我们使用enter键直接进行登录,我们使用enter键的时候还是在这个密码框进行输入的,直接按一下回车 driver.find_element_by_name("password").send_keys(Keys.ENTER); time.sleep(1); driver.quit();
3)现在我们来写一个优化版本:
#我们可以写一个更简单的简化版本 # coding utf-8 from selenium import webdriver import time from selenium.webdriver.common.keys import Keys driver=webdriver.Edge("C:\Program Files\Python310\Scripts\msedgedriver.exe"); url="http://127.0.0.1:88/zentao/user-login-L3plbnRhby8=.html"; driver.get(url); driver.maximize_window(); time.sleep(1); #因为我们要多次用到password这个输入框,所以我们需要进行获取返回元素 driver.find_element_by_id("account").send_keys("admin"); password=driver.find_element_by_name("password"); password.send_keys("12503487e"); #下面我们使用回车键直接进行登录 password.send_keys(Keys.ENTER); time.sleep(1); driver.quit();
2)使用tab键来进行移动输入框而不使用鼠标点击切换
当我们现在有两个输入框,一个是用户名输入框 ,一个是密码输入框,那么现在我用名输入框已经输入完成了,咱们要自动切换到密码输入框,可是我又不想使用鼠标来及进行点击切换,该怎么进行操作呢?
下面是搭配enter键来实现禅道的登陆
from selenium import webdriver import time from selenium.webdriver.common.keys import Keys # 1.输入禅道的官方地址 url = "http://127.0.0.1:88/zentao/user-login-L3plbnRhby8=.html" driver = webdriver.Edge("C://Users//18947//AppData//Local//Programs//Python//Python310//msedgedriver.exe") # 2.打开禅道 driver.get(url) time.sleep(3) username=driver.find_element_by_id("account"); username.send_keys("admin") # 3.模拟到Tab键,适用于不输入什么东西但是需要切换焦点 username.send_keys(Keys.TAB) # 4.进行输入密码 password=driver.find_element_by_name("password"); password.send_keys("12503487eA!") time.sleep(3) # 5.进行回车登录 password.send_keys(Keys.ENTER)
模拟场景:复制粘贴
1)打开浏览器,输入百度的网址,在输入框里面输入第一次要搜索的关键字
2)先选中输入框,ctrl+a进行全选,ctrl+x进行剪切
from selenium import webdriver; import time; from selenium.webdriver.common.keys import Keys; url="http://www.baidu.com"; driver=webdriver.Edge("C:\Program Files\Python310\Scripts\msedgedriver.exe"); driver.get(url); #我们先进行选中输入框 driver.find_element_by_id("kw").send_keys("生命在于运动"); driver.find_element_by_id("su").click(); time.sleep(2); kw=driver.find_element_by_id("kw"); kw.send_keys(Keys.CONTROL,'a'); time.sleep(1); kw.send_keys(Keys.CONTROL,'x'); time.sleep(1); kw.send_keys("小姐姐"); driver.find_element_by_id("su").submit(); time.sleep(3); driver.quit();
鼠标事件:
想要使用鼠标事件必须要首先导入工具包:
1)from selenium.webdriver.common.action_chains import Actions
2)进入到浏览器之后,先在输入框里面输入要搜索的关键字,在进行鼠标双击按钮和鼠标右键按钮
from selenium import webdriver import time from selenium.webdriver.common.keys import Keys from selenium.webdriver.common.action_chains import ActionChains url="http://www.baidu.com" driver=webdriver.Edge("C://Users//18947//AppData//Local//Programs//Python//Python310//msedgedriver.exe") # 1.打开百度网址 driver.get(url) time.sleep(3) # 2.进行演示鼠标双击和鼠标右击的操作 kw=driver.find_element_by_id("kw") kw.send_keys("张三其人") time.sleep(2) su=driver.find_element_by_id("su") # 3.进行鼠标双击操作,里面指明了要进行对那个元素进行双击,还指明了要使用哪一个驱动,perform就是正式执行这个操作 ActionChains(driver).double_click(su).perform() time.sleep(2) # 4.进行鼠标右击操作 ActionChains(driver).context_click(su).perform() time.sleep(2) driver.quit()