您的位置:軟件測試 > 開源軟件測試 > 開源功能測試工具 > Selenium
Selenium自動化定位方法
作者:glumer 發(fā)布時間:[ 2016/12/26 17:09:12 ] 推薦標簽:自動化測試 Selenium

  用selenium操作瀏覽器進行自動化操作其實是通過元素屬性執(zhí)行相關(guān)操作。所以,我們要知道怎樣去查找元素,定位元素。
  常見的定位屬性有:
#查找元素的id
find_elements_by_id(id)
find_elements_by_id(id)
#查找元素的name
find_element_by_name(name)
find_elements_by_name(name)
#查找元素的鏈接文本
find_element_by_link_text(link_text)
find_elements_by_link_text(link_text)
#查找元素的鏈接的部分文本
find_element_by_partial_link_text(link_text)
find_elements_by_partial_link_text(link_text)
#查找元素的標簽名
find_element_by_tag_name(name)
find_elements_by_tag_name(name)
#查找元素的xpath
find_element_by_xpath(xpath)
#查找元素內(nèi)的子元素的xpath
find_elements_by_xpath(xpath)
#查找一個元素的類名
find_element_by_class_name(name)
#查找元素的類名
find_elements_by_class_name(name)
#查找并返回一個元素的CSS 選擇器
find_element_by_css_selector(css_selector)
#查找并返回多個元素的CSS 選擇器列表
find_elements_by_css_selector(css_selector)
webdriver中常用的操作方法有:
.click()                    進行點擊操作,用于點擊一個按鈕。
.send_keys()           在對象上模擬按鍵輸入,用于在一個輸入框里輸入內(nèi)容。
.clear()                   清除對象的內(nèi)容。
.text                      獲取該元素的文本。
.submit()                提交表單。
.get_attrbute          獲得屬性值。
  以百度首頁為例:
#coding:utf-8
from selenium import webdriverimport time
brower = webdriver.Firefox()
brower.get("http://www.baidu.com")
#根據(jù)元素的類名進行定位
brower.find_element_by_class_name('s_ipt').send_keys('12306')
#根據(jù)元素的id進行定位
brower.find_element_by_id('kw').send_keys('12306')
#根據(jù)元素的name進行定位
brower.find_element_by_name('wd').send_keys('selenium')
#根據(jù)元素的xpath進行定位
brower.find_element_by_xpath("//input[@id = 'kw']").send_keys('selenium')
#根據(jù)元素的鏈接文本進行定位
brower.find_element_by_link_text(u'糯米').click()
#根據(jù)元素的CSS選擇器進行定位
#----------------第一種id進行定位------------------
brower.find_element_by_css_selector('#kw').send_keys(u'定位')
brower.find_element_by_css_selector('#su').click()
#----------------第二種屬性元素定位------------------
brower.find_element_by_css_selector('input[id = "kw"]').send_keys(u'自動化')
brower.find_element_by_css_selector('input[id = "su"]').click()
#----------------第三種標簽進行定位------------------
brower.find_element_by_css_selector('input.s_ipt').send_keys(u'百度')
brower.find_element_by_css_selector('input.bg').click()
#----------------第四種class屬性組合定位------------------
brower.find_element_by_css_selector('span.bg>input.s_ipt').send_keys(u'測試')
brower.find_element_by_css_selector('span.bg>input.bg').click()
#----------------第五種id屬性組合定位------------------
brower.find_element_by_css_selector('span>input#kw').send_keys(u'地鐵')
brower.find_element_by_css_selector('span>input#su').click()
#----------------第六種class屬性定位------------------
brower.find_element_by_css_selector('.s_ipt').send_keys(u'高鐵')
#或者
brower.find_element_by_css_selector('.s_btn').click()
brower.find_element_by_css_selector('.bg.s_btn').click()
#----------------第七種class與id組合定位------------------
brower.find_element_by_css_selector('.bg.s_ipt_wr.quickdelete-wrap>#kw').send_keys('selenium')
brower.find_element_by_css_selector('#su').click()
time.sleep(3)
brower.quit()
  注:用css定位時只有元素"id"可以用#,元素"class"用"."

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