1. 程式人生 > >3.8種元素定位

3.8種元素定位

() drive nth lin wrap rom link elements lec

1.8種常用的元素定位方法:

1.id定位:driver.find_element_by_id(" ")

2.Name定位:driver.find_element_by_name(" ")

3.Class定位:driver.find_element_by_class_name(" ")

4.Tag定位:driver.find_element_by_tag_name(" ")

5.Link定位:driver.find_element_by_link_text(" ")

6.Partial_link定位:driver.find_element_by_Partial_link_text(" ")

7.Xpath定位:

driver.find_element_by_xpath(" ")

8.css定位:driver.find_element_by_css_selector(" ")

from selenium import webdriver
import time
driver = webdriver.Firefox()
driver.get(https://www.baidu.com/)
title = driver.title
print(title)

driver.find_element_by_id("kw").send_keys("python")    #通過id定位搜索框,用send_keys輸入文本
driver.find_element_by_id("su").click() #點擊事件 time.sleep(3) driver.find_element_by_link_text(u"百度首頁").click() #通過link屬性定位, 加 u 的作用是把中文字符串轉換成unicode 編碼 driver.find_element_by_partial_link_text("ao123").click() #partial_link是一種模糊匹配的方式,對於超長字符串截取其中一部分 driver.back() driver.find_element_by_name(
"wd").send_keys("花兒爺") #使用name屬性定位 driver.find_element_by_id("su").click() driver.back() time.sleep(3) driver.find_element_by_class_name("s_ipt").send_keys("蘇寧易購") #使用class屬性定位 driver.find_element_by_id("su").submit() #模擬鍵盤enter鍵 driver.back() time.sleep(3) #driver.find_element_by_tag_name("input").send_keys("python") #通過tag標簽定位,運行會報錯,不建議使用 ‘‘‘ #通過css定位方法 #1.通過元素的id、name、class這些屬性定位 driver.find_element_by_css_selector("#kw").send_keys("python") #css通過id定位 driver.find_element_by_css_selector(".s_ipt").send_keys(‘python‘) # .號後面跟的是class屬性, class="s_ipt" driver.find_element_by_css_selector("[name=‘wd‘]").send_keys(‘python‘) # css通過name屬性定位 driver.find_element_by_css_selector("[autocomplete=‘of‘]").send_keys(‘python‘) #css通過autocomplete屬性定位 driver.find_element_by_css_selector("[type=‘text‘]").send_keys(‘python‘) #css通過type屬性定位 #2.css層級 driver.find_element_by_css_selector("form#form>span>input").send_keys(‘python‘) driver.find_element_by_css_selector("form.fm>span>input").send_keys(‘python‘) 3.css索引定位 driver.find_element_by_css_selector("select#nr>option:nth-child(1)").click() ‘‘‘ #driver.find_elements_by_xpath(".//*[@id=‘kw‘]").send_keys("python") #通過路徑定位 ‘‘‘ #1.使用絕對路徑xpath定位 dr.find_element_by_xpath("/html/body/div[3]/div[1]/div/div[1]/div/form/span[1]/input").send_keys(‘0‘) # 2.使用相對路徑的xpath定位 通過元素的id、name、class這些屬性定位 driver.find_element_by_xpath("//*[@id=‘kw‘]").send_keys("python") driver.find_element_by_xpath("//*[@name=‘wd‘]").send_keys("python") driver.find_element_by_xpath("//*[@class=‘s_ipt‘]").send_keys("python") #3.xpath層級,元素屬性不明顯時可以定位父元素 driver.find_element_by_xpath("//span[@id=‘s_kw_wrap‘]/input").send_keys("python") #通過定位父元素來定位 driver.find_element_by_xpath("//form[@id=‘form]/span/input").send_keys("python") #通過定位爺爺元素來定位 #4.xpath索引定位,元素兄弟一樣,無法通過層級定位,指定索引 driver.find_element_by_xpath("//select[@id=‘nr‘]/option[1]").click #索引值通過1算起的 driver.find_element_by_xpath("//select[@id=‘nr‘]/option[2]").click ‘‘‘ driver.quit()

後幾種復數形式定位方法,定位到的是一組元素返回的是一個隊列:

  1. id定位:driver.find_elements_by_id(" ")
  2. Name定位:driver.find_elements_by_name(" ")
  3. Class定位:driver.find_elements_by_class_name(" ")
  4. Tag定位:driver.find_elements_by_tag_name(" ")
  5. Link定位:driver.find_elements_by_link_text(" ")
  6. Partial_link定位:driver.find_elements_by_Partial_link_text(" ")
  7. Xpath定位:driver.find_elements_by_xpath(" ")
  8. css定位:driver.find_elements_by_css_selector(" ")

3.8種元素定位