您的位置:軟件測試 > 開源軟件測試 > 開源功能測試工具 > Selenium
輕松自動化---selenium-webdriver(python) (五)
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時間:[ 2013/8/13 10:42:06 ] 推薦標(biāo)簽:

  這里自制了一個頁面,上面有兩個文字鏈接,點擊兩個鏈接會彈出一模一樣的的兩個下拉菜單,這兩個菜單的屬性基本一樣。那么我如何區(qū)分找到相應(yīng)的菜單項呢?

  方法如下:

# -*- coding: utf-8 -*-
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
import time
import os

dr = webdriver.Firefox()
file_path =  'file:///' + os.path.abspath('level_locate.html')
dr.get(file_path)

#點擊Link1鏈接(彈出下拉列表)
dr.find_element_by_link_text('Link1').click()

#找到id 為dropdown1的父元素
WebDriverWait(dr, 10).until(lambda the_driver: the_driver.find_element_by_id('dropdown1').is_displayed())
#在父親元件下找到link為Action的子元素
menu = dr.find_element_by_id('dropdown1').find_element_by_link_text('Action')

#鼠標(biāo)定位到子元素上
webdriver.ActionChains(dr).move_to_element(menu).perform()

time.sleep(2)

dr.quit()

  定位思路:

  具體思路是:先點擊顯示出1個下拉菜單,然后再定位到該下拉菜單所在的ul,再定位這個ul下的某個具體的link。在這里,我們定位第1個下拉菜單中的Action這個選項。

  ---------------------------------------------------------------------

  雖然我每行代碼前叫了注釋,但可能還是不太容易理解,因為里面多了不少以前沒見過的新東東。

  WebDriverWait(dr, 10)

  10秒內(nèi)每隔500毫秒掃描1次頁面變化,當(dāng)出現(xiàn)指定的元素后結(jié)束。dr不解釋了,前面操作webdriver.firefox()的句柄

  is_displayed()

  該元素是否用戶可以見

  class ActionChains(driver)

  driver: 執(zhí)行用戶操作實例webdriver

  生成用戶的行為。所有的行動都存儲在actionchains對象。通過perform()存儲的行為。

  move_to_element(menu)

  移動鼠標(biāo)到一個元素中,menu上面已經(jīng)定義了他所指向的哪一個元素

  to_element:元件移動到

  perform()

  執(zhí)行所有存儲的行為

  ------------------------------需要我們?nèi)粘9ぷ髦屑?xì)細(xì)品味、慢慢消化這些函數(shù)的用法

上一頁123下一頁
軟件測試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd