定位的方法有16種,element和elements各8個。
但是我個人認為定位的方法常用的就兩個:
find_element_by_id()和find_element_by_xpath()
因為隨著頁面的改變,運用其他的定位方法,會導致定位錯誤,而id一般是唯一的。
xpath:定位方式有兩種:
在定位的基礎上,進一步加深,就是多重定位。先定位父元素,在定位子元素
例如**的定位:先定為父元素:table 再定位,在定位tr,最後定位td
# 多重定位
#限定為table
ele_table=driver.find_element_by_id(u'table')
#在定位tr
ele_table_trs=ele_table.find_elements_by_tag_name(u'tr')
#用迴圈獲得想要的td內容
for i in range(len(ele_table_trs)):
if i==0:
continue
else:
tds=ele_table_trs[i].find_elements_by_tag_name(u'td')
for j in range(len(tds)):
if j==1:
elif j==2:
else:
continue
有的網頁採用frame框架來進行構造,雖然介面顯示的位址是當前頁面的http位址,但是實際上我們定位的位置在其他網頁上,因此我們需要先找到frame框架,再根據它來找我們需要的定位,這個過程可能是兩次,也可能是3次乃至更多。
話不多說,乙個小例子:frame兩次定位找到位置並輸入
#encoding:utf-8
from selenium import webdriver
from selenium.webdriver.support.ui import select
from selenium.webdriver import actionchains
driver= webdriver.firefox()
url=""
driver.get(url)
frame1=driver.find_element_by_link_text(u'frame框架頁面')
frame1.click()
#第一次定位,並跳轉
middle_frame=driver.find_element_by_id(u'middleframe')
driver.switch_to.frame(middle_frame)
#第二次定位,找到頁面所在的最終位置,並跳轉頁面
iframe=driver.find_element_by_id(u'iframe')
driver.switch_to.frame(iframe)
title_input=driver.find_element_by_id(u'note_title')
title_input.send_keys(u'我是爸爸')
UI自動化測試元素定位思想
2014年的最後一天,以一篇短文紀念一下。經常看到有同學說ui自動化測試定位難,找不到北。這話是不錯的,定位是難,靈活且複雜,需要經驗加技術,但是有寫東西是可以提煉出來作為思想去推而廣之的。簡單來說,ui元素定位思想應該如下 大道至簡指的是有明顯特徵的元素一定要用明顯的特徵去定位。比如有id有nam...
UI自動化元素定位
1.id定位 find element by id self,id 2.name定位 find element by name self,name 3.class定位 find element by class name self,name 4.tag定位 find element by tag n...
UI自動化 Selenium元素定位
ui自動化要做的就是模擬滑鼠或鍵盤操作,從而執行測試用例的行為。模擬滑鼠操作更多是通過控制元素進行動作的,而控制元素的第一步就是定位元素。接下來,結合selenium介紹幾種常見的元素定位方法 find element by id 通過id來定位元素 在html中,id是唯一的,通過id但部分元素可...