一、鼠標(biāo)操作
1. 鼠標(biāo)操作
常見的鼠標(biāo)操作有:點擊、右擊、雙擊、懸停、拖拽等,對于這些鼠標(biāo)操作Selenium都封裝了相應(yīng)的操作方法。
1.1 為什么操作鼠標(biāo)
現(xiàn)在Web產(chǎn)品中村子啊豐富的鼠標(biāo)交互方式,作為一個Web自動化測試框架。需要應(yīng)對這些鼠標(biāo)操作的應(yīng)用場景。
1.2 鼠標(biāo)操作的方法
說明:在Selenium中將操作鼠標(biāo)的方法封裝在ActionChains類中。
實例化對象:
? ? ? ? action = ActionChains(driver)
方法:
? ? ? ? 1. context_click(element)? ?右擊 -->模擬鼠標(biāo)右鍵點擊效果
? ? ? ? 2. double_click(element)? 雙擊-->模擬鼠標(biāo)雙擊效果
? ? ? ? 3. drag_and_drop(source,target)? 拖動 -->模擬鼠標(biāo)拖動效果
? ? ? ? 4. move_to_element(element)? ? ?懸停 --> 模擬鼠標(biāo)懸停效果
? ? ? ? 5. perform()? ? ? ? ? ? ? ? ? ? ?執(zhí)行 -->此方法用來執(zhí)行以上所有鼠標(biāo)操作
提示:
? ? ? ? 鼠標(biāo)操作的所有方法都需要執(zhí)行perform() 方法才能生效。
1.3 鼠標(biāo)執(zhí)行-perform()?
說明:在ActionChains類中所有提供的鼠標(biāo)事件方法,在調(diào)用的時候所有的行為都存儲在ActionChains對象中。
? ? ? ? 而perform()方法就是真正去執(zhí)行所有的鼠標(biāo)事件。
1.4 鼠標(biāo)右鍵-context_click
說明:對于點擊鼠標(biāo)右鍵,如果彈出的就是瀏覽器默認(rèn)的菜單,Selenium沒有提供操作菜單選項。如果是自定義的右鍵菜單,則可以通過元素定位來操作菜單中的選項。
1. 導(dǎo)包:from selenium.webdriver import ActionChains
2. 實例化ActionChains對象:action =?ActionChains(driver)
3. 調(diào)用右鍵方法:action .context_click(element)
4. 執(zhí)行:action.perform()
1.5 鼠標(biāo)雙擊-double_click()
說明:模擬鼠標(biāo)左鍵雙擊操作
1.6?鼠標(biāo)拖拽-drag_and_drop(源元素,目的元素)
說明:模擬鼠標(biāo)拖拽操作
1.7?鼠標(biāo)懸停-move_to_element()
說明:模擬鼠標(biāo)懸停在指定的元素上
注意:在該方法執(zhí)行時,不要動鼠標(biāo)
# 實現(xiàn)百度的搜索設(shè)置,搜索展示條數(shù)
driver = webdriver.Chrome()
driver.get("https://www.baidu.com/")
user_setting = driver.find_element(By.ID, "s-usersetting-top")
action = ActionChains(driver)
action.move_to_element(user_setting) # 鼠標(biāo)懸浮
action.perform()
driver.find_element(By.LINK_TEXT,"搜索設(shè)置").click()
# 頁面跳轉(zhuǎn)之后,停留時間,加載頁面
time.sleep(2)
nr_1 = driver.find_element(By.ID, "nr_1")
nr_2 = driver.find_element(By.ID, "nr_2")
nr_3 = driver.find_element(By.ID, "nr_3")
time.sleep(2)
if nr_1.is_selected(): # 判斷是否被選中
nr_2.click()
elif nr_2.is_selected():
nr_3.click()
time.sleep(5)
driver.quit()
二、鍵盤操作
Selenium中吧鍵盤的按鍵都封裝在Keys類中
2.1 Keys類
from selenium.webdriver.common.keys import Keys
2.2 常用鍵盤操作?
1. 元素.send_keys(Keys.BACK_SPACE)? 刪除鍵(BackSpace)
2.?元素.send_keys(Keys.SPACE)? 空格鍵(Space)
3. 元素.send_keys(Keys.TAB)? 制表鍵(Tab)
4.?元素.send_keys(Keys.ESCAPE)? 回退鍵(Esc)
5.?元素.send_keys(Keys.ENTER)? 回車鍵(Enter)
6.?元素.send_keys(Keys.CONTROL,'a')? 全選(Ctrl+A)文章來源:http://www.zghlxwxcb.cn/news/detail-606741.html
6.?元素.send_keys(Keys.CONTROL,'c')? 復(fù)制(Ctrl+C)文章來源地址http://www.zghlxwxcb.cn/news/detail-606741.html
2.3 代碼實例
try:
driver = webdriver.Chrome()
driver.get("http://localhost/backend/page/login/login.html")
user = driver.find_element(By.CSS_SELECTOR, '[placeholder="賬號"]')
user.clear()
user.send_keys("admin1")
user.send_keys(Keys.BACK_SPACE)
user.send_keys(Keys.CONTROL, 'a')
user.send_keys(Keys.CONTROL, 'c')
time.sleep(1)
pwd = driver.find_element(By.CSS_SELECTOR, '[placeholder="密碼"]')
pwd.send_keys(Keys.CONTROL, 'a')
pwd.send_keys(Keys.CONTROL, 'v')
time.sleep(5)
except Exception as e:
print(e)
finally:
driver.quit()
到了這里,關(guān)于【W(wǎng)EB自動化測試】-鼠標(biāo)和鍵盤操作的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!