物件的定位應該是自動化測試的核心,webdriver 提供了一系列的物件定位方法,常用的有以下幾種:
idname
class name
link text
partial link text
tag name
xpath
css selector
物件的定位應該是自動化測試的核心,webdriver 提供了一系列的物件定位方法,常用的有以下幾種:
idname
class name
tag name
css selector
xpath
link text
partial link text
可以看到搜尋框的id為kw,name為wd,因此,
1、通過id定位:browser.find_element_by_id("kw").send_keys("selenium")
2、通過name定位:browser.find_element_by_name("wd").send_keys("selenium")
id 和name 是我們最最常用的定位方式,因為大多數控制項都有這兩個屬性,而且在對控制項的id 和name 命名時一般使其有意義也會取不同的名字.對於class 和tag name(標籤名),input 就是乙個標籤的名字,class也可以從上圖中看到。
3、通過tag name 方式:browser.find_element_by_tag_name("input").send_keys("selenium")
4、通過class name 方式:browser.find_element_by_class_name("s_ipt").send_keys("selenium")
css(cascading style sheets)是一種語言,它被用來描述html 和xml 文件的表現。css 使用選擇器來為頁面元素繫結屬性。這些選擇器可以被selenium 用作另外的定位策略。
5、通過css 方式:browser.find_element_by_css_selector("#kw").send_keys("selenium")
新聞driver.find_element_by_css_selector("a[name=\"tj_news\"]").click()
感覺用css定位非常靈活,只是我還沒學會具體怎麼使用,比較習慣用xpath。
對css具體的講述教程參見:
6、xpath也是一大塊知識體系
什麼是xpath:
xpath 基礎教程:
通過xphan 方式:browser.find_element_by_xpath("//input[@id='kw']").send_keys("selenium")
再舉例:
xpath("//div[@id='fm']/form/span/input")表示定位在/form/span/input 層級標籤下有個div 標籤的id=fm 的元素
xpath("//tr[@id='check']/td[2]")表示tr標籤下id 為'check' ,定位到他裡面的第2個
xpath("//tr[7]/td[2]")表示第7個tr 裡面的第2個td
xpath("//a[contains(text(),'網頁')]")表示在a 標籤下有個文字(text)包含(contains)'網頁' 的這個元素
xpath("//a[@href='']")表示有個叫a 的標籤,他有個鏈結href=' 的元素
7、有時候不是乙個輸入框也不是乙個按鈕,而是乙個文字鏈結,我們可以通過link
browser.find_element_by_link_text("貼吧").click()
browser.find_element_by_partial_link_text("貼").click()
元素定位 Cypress 元素定位
cypress含有多種定位方式我們無需擔心因為定位導致測試失敗,cypress有獨一無二的定位策略能使你擺脫元素定位的噩夢。cypress專有選擇器 舉例 submitsubmitsubmit獲取元素方法 cy.get data cy submit click cy.get data test su...
元素的定位
css 有三種基本的定位機制 普通流 浮動和絕對定位。除非專門指定,否則所有框都在普通流中定位。也就是說,普通流中的元素的位置由元素在 x html 中的位置決定。塊級框從上到下乙個接乙個地排列,框之間的垂直距離是由框的垂直外邊距計算出來。行內框在一行中水平布置。可以使用水平內邊距 邊框和外邊距調整...
元素的定位
position static 靜態定位 是元素預設定位方式,就是各元素在html文件流中的預設位置。注意 任何元素在預設狀態下都會以靜態定位來確定自己的位置,在靜態定位狀態下,無法通過邊偏移屬性 top,bottom,left,right 來改變元素位置。position relative 相對定...