selenium筆記:窗口截圖+警告框+鼠標(biāo)事件+鍵盤事件+內(nèi)嵌網(wǎng)頁(yè)處理+多標(biāo)簽頁(yè)處理
一、窗口截圖
webdriver 提供了?get_screenshot_as_file()函數(shù)來(lái)截取當(dāng)前窗口
二吃度、警告框處理
在WebDriver中處理JavaScript所生成的alert扰她、confirm以及prompt十分簡(jiǎn)單仓技,具體做法是使用 switch_to.alert 方法定位到 alert/confirm/prompt舀寓,然后使用text/accept/dismiss/ send_keys等方法進(jìn)行操作
? ·??text:返回 alert/confirm/prompt 中的文字信息?
·??accept():接受現(xiàn)有警告框?
·??dismiss():取消現(xiàn)有警告框?
·??send_keys(“haha”):發(fā)送文本至警告框
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ???三、PART鼠標(biāo)事件
用selenium做自動(dòng)化,有時(shí)候會(huì)遇到需要模擬鼠標(biāo)操作才能進(jìn)行的情況,比如單擊幔欧、雙擊、點(diǎn)擊鼠標(biāo)右鍵丽声、拖拽等等礁蔗。而selenium給我們提供了一個(gè)類來(lái)處理這類事件——ActionChains
ActionChains 類提供了鼠標(biāo)操作的常用方法:
?·??perform(): 執(zhí)行操作?
·??context_click(): 右擊;?
·??double_click(): 雙擊雁社;?
·??drag_and_drop(): 拖動(dòng)浴井;?
·??move_to_element(): 鼠標(biāo)懸停。
? ? ? ? ? ??
? ? ? ? ? 四霉撵、PART鍵盤事件
Keys()類提供了鍵盤上幾乎所有按鍵的方法磺浙。 前面了解到, send_keys()方法可以用來(lái)模擬鍵盤輸入喊巍, 除此 之外屠缭, 我們還可以用它來(lái)輸入鍵盤上的按鍵, 甚至是組合鍵崭参, 如 Ctrl+A呵曹、 Ctrl+C 等
以下為常用的鍵盤操作:
?·? ?end_keys(Keys.BACK_SPACE) 刪除鍵(BackSpace)?
?·??send_keys(Keys.SPACE) 空格鍵(Space)?
?·??send_keys(Keys.TAB) 制表鍵(Tab)?
?·??send_keys(Keys.ESCAPE) 回退鍵(Esc)?
?·??send_keys(Keys.ENTER) 回車鍵(Enter)?
·??send_keys(Keys.CONTROL,'a') 全選(Ctrl+A)?
?·??send_keys(Keys.CONTROL,'c') 復(fù)制(Ctrl+C)?
?·??send_keys(Keys.CONTROL,'x') 剪切(Ctrl+X)?
?·??send_keys(Keys.CONTROL,'v') 粘貼(Ctrl+V
?·??send_keys(Keys.F1) 鍵盤 F1
?·??……?
?·??send_keys(Keys.F12) 鍵盤 F12
?
?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??五、iframe切換
iframe,又叫浮動(dòng)幀標(biāo)記奄喂,是內(nèi)嵌的網(wǎng)頁(yè)元素铐殃,可以將一個(gè)html文件嵌入到另一個(gè)html文件中顯示
對(duì)iframe進(jìn)行操作,需要用到以下三種方法:
switch_to_iframe()? ? ? ? ? ? ? ? ? ? ? ?切換到iframe上
switch_to.frame()? ? ? ? ? ? ? ? ? ? ? ? ?切換到iframe上
switch_to.default_content()? ? ? ? ?切換回原主頁(yè)面
?
通過(guò)如下方式進(jìn)行切換操作
#定位到iframe
iframe=driver.find_element_by_id("x-URS-iframe")
#切換到iframe
driver.switch_to_frame(iframe)
? ? ? ? ? ? ??
? ? ? ? ? ? 六跨新、多標(biāo)簽頁(yè)切換
在頁(yè)面操作過(guò)程中有時(shí)候點(diǎn)擊某個(gè)鏈接會(huì)彈出新的窗口富腊,這時(shí)就需要切換到新打開的窗口上進(jìn)行操作。WebDriver提供了以下方法
current_window_handle:獲得當(dāng)前標(biāo)簽頁(yè)句柄
window_handles:返回所有便簽頁(yè)的句柄
switch_to.window(標(biāo)簽頁(yè)句柄):切換到對(duì)應(yīng)的標(biāo)簽頁(yè)
關(guān)閉標(biāo)簽頁(yè)使用?close 方法