selenim之ActionChains(一)


大家好,來介紹下,今天要分享的是小編學ActionChains的經驗。

先來說一下今天要用到的方法:

  • click(element=null)                                 點擊元素,參數為空時,鼠標在當前位置點擊
  • send_keys(keys_to_send)                     向文本框發送文字、按鍵                                    
  • move_to_element(element)                   鼠標懸浮在某元素上
  • perform()                                               執行所有存儲在ActionChains中的動作

ActionChains是什么呢?顧名思義吧,是一個動作鏈,如果在一個用例中只有一兩個動作,那么用之前講過的簡單版的就可以了,如果動作很復雜,那么可以使用這個了。

  • ActionChains是自動執行低級交互的一種方式,例如:鼠標移動,鼠標點按,鍵盤操作,文本操作等。
  • 當我們調用這里的方法時,這些操作會被先儲存在一個隊列中,當我們調用perform()方法時,隊列中的操作會被按順序執行,執行后隊列被清空。

首先來看如何引入這個包

from selenium.webdriver.common.action_chains import ActionChains

當然,我們還要引入wedbriver的包,用來啟動瀏覽器

from selenium import webdriver

下面以火狐首頁為例,以一個較復雜的用例,來介紹幾個最常用最常用的操作,先來看下需要用到的元素

第一組動作,在火狐首頁,打開新浪新聞

<li class="site-multiple site-dropdown" sid="10">
  <a class="dropdown-menu" href="http://www.sina.com.cn/" title="新 浪" style="width:45px">新 浪</a>
  <div class="site-dropmenu" style="display: block;">
    <a class="site-sub first" href="http://news.sina.com.cn/" title="新浪新聞">新浪新聞</a>
    <a class="site-sub " href="http://sports.sina.com.cn/" title="新浪體育">新浪體育</a>
    <a class="site-sub " href="http://finance.sina.com.cn/" title="新浪財經">新浪財經</a>
    <a class="site-sub " href="http://mil.news.sina.com.cn/" title="新浪軍事">新浪軍事</a>
  </div>
</li>

#定位新浪
sina=driver.find_element_by_css_selector("a[title='新 浪']")
#定位新浪新聞
news=driver.find_element_by_css_selector("a[title='新浪新聞']")

#定義ActionChains
actions=ActionChains(driver)
#鼠標移動到“新浪”上點擊“新浪新聞”
actions.move_to_element(sina).click(news).perform()

第二組操作,在搜索欄搜索“鹿晗”,點擊搜索

<!-- 搜索框 -->
<input class="cheadSeaKey" name="q" value="請輸入關鍵詞" onfocus="if(this.value=='請輸入關鍵詞'){this.value='';}" onblur="if(this.value==''){this.value='請輸入關鍵詞';}" autocomplete="off" type="text"/>
<!-- 搜索按鍵 -->
<input class="cheadSeaSmt" value="搜索" type="submit"/>
actions=ActionChains(driver)
keys=driver.find_element_by_css_selector("input[value='請輸入關鍵詞']")
search=driver.find_element_by_css_selector("input[value='搜索']")
keys.click()
actions.send_keys(u"鹿晗")
actions.click(search).perform()

 全部代碼

ActionChains1
import time
from selenium.webdriver.common.action_chains import ActionChains
from selenium import webdriver

driver=webdriver.Firefox()
driver.get("http://e.firefoxchina.cn/")
time.sleep(3)
print("打開網頁成功")

#定位
sina=driver.find_element_by_css_selector("a[title='新 浪']")
news=driver.find_element_by_css_selector("a[title='新浪新聞']")

#定義動作
actions=ActionChains(driver)
actions.move_to_element(sina).click(news).perform()
actions.perform()

#切換窗口
driver.switch_to_window(driver.window_handles[-1])
print(driver.title)

#第二組動作
actions=ActionChains(driver)
keys=driver.find_element_by_css_selector("input[value='請輸入關鍵詞']")
search=driver.find_element_by_css_selector("input[value='搜索']")
keys.click()
actions.send_keys(u"鹿晗")
actions.click(search).perform()

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM