ActionChains定位元素

2022-06-27 05:54:08 字數 2311 閱讀 1661

actionchains

ui自動化測試過程中,經常遇到那種,需要滑鼠懸浮後,要操作的才會元素出現的這種場景,那麼我們就要模擬滑鼠懸浮到某乙個位置,做一系列的連貫操作,selenium給我們提供了actionchains模組。

引入方式

fromselenium.webdriver.common.action_chains importactionchain

實際上actionchains這個模組的實現的核心思想就是,當你呼叫actionchains的方法時,不會立即執行,而是會將所有的操作按順序存放在乙個list裡,當你呼叫perform()方法時,佇列中的時間會依次執行。(注:推薦乙個尺子工具,measulerit)

drag_and_drop

# 將source元素拖放至target元素處,引數為兩個elementobj

actionchains(driver).drag_and_drop(source=source,target=target)

# 將乙個source元素 拖動到針對source坐上角坐在的x y處 可存在負寬度的情況和負高度的情況

actionchains(driver).drag_and_drop_by_offset(source,x,y)

# 這種也是拖拽的一種方式,都是以源元素的左上角為基準,移動座標

actionchains(driver).click_and_hold(dom).move_by_offset(169,188).release().perform()

move_to_element

# 滑鼠移動到某乙個元素上,結束elementobj

actionchains(driver).move_to_element(e)

# 滑鼠移動到制定的座標上,引數接受x,y

actionchains(driver).move_by_offset(e['x'],e['y'])

例:driver=webdriver.chrome()

driver.maximize_window()

driver.get('')

time.sleep(2)

driver.execute_script('document.body.scrolltop=0')

time.sleep(1)

a=driver.find_element_by_id('a').location

dis=driver.find_element_by_id('dis1')

actionchains(driver).move_by_offset(a['x'],a['y']).double_click(dis).perform()

click

# 單擊事件,可接受elementobj

actionchains(driver).click()

# 雙擊事件,可接受elementobj

actionchains(driver).double_click()

# 點選滑鼠右鍵

actionchains(driver).context_click()

# 點選某個元素不鬆開,接收elementobj

actionchains(driver).click_and_hold()

# # 某個元素上鬆開滑鼠左鍵,接收elementobj

actionchains(driver).release()

key_down與key_up

有時我們需要模擬鍵盤操作時,那麼就需要用到actionchains中的key操作了,提供了兩個方法,key_down與key_up,模擬按下鍵盤的某個鍵子,與鬆開某個鍵子,接收的引數是按鍵的keys與elementobj。可以與send_keys連用(例:全選、複製、剪下、貼上)

# key_down 模擬鍵盤摁下某個按鍵 key_up 鬆開某個按鍵,與sendkey連用完成一些操作,每次down必須up一次否則將出現異常

actionchains(driver).key_down(keys.control,dom).send_keys('a').send_keys('c').key_up(keys.control)

.key_down(keys.control,dom1).send_keys('v').key_up(keys.control).perform()

keys 實際是selenium提供的乙個鍵盤事件模組,在模擬鍵盤事件時需要匯入keys模組

fromselenium.webdriver.common.keys importkeys

css selector定位元素

selenium中經常要用css selector定位元素,雖說可以用firefox的firebug firepath直接copy元素的xpath路徑,但有時還是很必要用css selector來定位,也算技多不壓身吧 系統的學習一下,也當是臨陣磨槍。一共8種方式的選擇器。根據元素的標籤定位,如下 ...

CSS Selector定位元素

滴 今日打卡!博主之前寫過一篇關於xpath元素定位的部落格,裡面也有提到過xpath方法和css選擇器方法的比較 今天就補上css選擇器定位筆記。1.css選擇器定位元素 1 標籤選擇器 driver.find element by css selector li 選擇所有 li標籤元素 2 類選...

selenium xpath定位元素

xpath獲取 f12開啟瀏覽器除錯視窗,找到元素對應html 右鍵 copy copy xpath xpath 是xml的查詢語言,和sql的角色很類似。以下面xml為例,介紹xpath 的語法。empire burlesque bob dylan 10.90 hide your heart bo...