1. 程式人生 > 程式設計 >UI自動化定位常用實現方法程式碼示例

UI自動化定位常用實現方法程式碼示例

8大基礎定位

  • driver.find_element_by_id() # id定位
  • driver.find_element_by_name() # name定位
  • driver.find_element_by_class_name() # class名稱定位
  • driver.find_element_by_tag_name() # 標籤定位
  • driver.find_element_by_xpath() # xpath定位
  • driver.find_element_by_css_selector() # css定位
  • driver.find_element_by_link_text() # a標籤的文字定位
  • driver.find_element_by_partial_link_text() # a標籤的區域性文字定位

xpath定位

  //*[]:// 相對定位 * 匹配任意標籤

  第一種:id\class\name\其他屬性,精確匹配

driver.find_element_by_xpath("//*[@id='']") # id與id的值
driver.find_element_by_xpath("//*[@class='']") # class和class的值<br data-filtered="filtered">driver.find_element_by_xpath("//*[@name='']")     # naem和值<br data-filtered="filtered">driver.find_element_by_xpath("//*[@shuxingming='']") # 屬性名和值

  第二種:模糊匹配\層級\索引\邏輯運算

  模糊匹配:

driver.find_element_by_xpath("//*[contains(text(),'測試')]")     # 包含某些字元
driver.find_element_by_xpath("//*[starts-with(text(),'測試')]")   # 以某些字元開頭
driver.find_element_by_xpath("//*[ends-with(text(),'測試')]")     # 以某些字元結尾
driver.find_element_by_xpath("//*[matchs(text(),'測試')]")      # 正則匹配

  層級:

driver.find_element_by_xpath("//*[@id='']/p")

  索引:

driver.find_element_by_xpath("//*[@id='']/option[0]")

  第三種:絕對定位

  html/body/heard/div/divdiv/ul/li[2]/a 不推薦

css定位

  第一種:id\class\標籤名

#:id

.:class

driver.find_element_by_css_selector("#username") #id為username
driver.find_element_by_css_selector(".username") #class為username
driver.find_element_by_css_selector("iframe") #標籤名為iframe

 第二種:

索引:

driver.find_element_by_css_selector("selet#nr>option:nth-child(1)") #標籤名:nth-child(1)來定位子元素

層級:

driver.find_element_by_css_selector("selet#nr>option") #標籤名:nth-child(1)來定位子元素

邏輯運算:

driver.find_element_by_css_selector("input#nr[id=''][class='']") #不用and連線,寫在一起即可

定位多組元素

使用 find_elements ,結果為列表,使用下標索引方式取值

names=driver.find_elements_by_name("username")
print names[1]

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。