元素定位常用方法

 1 # -*- coding:utf-8 -*-

 2 

 3 """

 4 selenium webdriver 定位元素是通过使用 findElement() 和 findElements()方法.

 5 findElement() 方法返回一个基于指定查询条件的  WebElement 对象或是抛出一个没有

 6 找到符合条件元素的异常.

 7 findElements()方法会返回匹配指定查询条件的 WebElement的集合,如果没有找到则返回为空.

 8 findElement() 和 findElements() 方法当找不到相应的元素的时候就会抛出 NoSuchElementFoundException 异常.

 9 """

10 

11 from selenium import webdriver

12 from selenium.webdriver.common.by import By

13 

14 driver = webdriver.Firefox()

15 driver.get('http://www.51testing.com')

16 print driver.find_element(By.ID, 'username').get_attribute('type')              #通过 ID 属性定位元素

17 

18 driver.get('http://www.baidu.com')

19 print driver.find_element(By.CLASS_NAME, 's_ipt').get_attribute('name')         #通过 css 属性定位元素

20 

21 print driver.find_element(By.NAME, 'wd').get_attribute('id')                    #通过 name 属性定位元素

22 

23 #层级定位, 先定位父元素, 再定位子元素

24 print driver.find_element(By.CLASS_NAME, 's_ipt_wr').find_element(By.NAME, 'wd').get_attribute('class')

25 

26 """

27 findElements() 方法, 可以得到匹配指定规则的集合列表

28 """

29 links = driver.find_elements(By.XPATH, './/a')

30 #print type(links)

31 #print len(links)

32 

33 for link in links:

34     print 'URL: ', link.get_attribute('href'), ' 名称: ', link.get_attribute('text')

35     

36 print driver.find_element(By.LINK_TEXT, '关于百度').get_attribute('href')       #通过链接名定位链接 

37 

38 print driver.find_element(By.PARTIAL_LINK_TEXT, '把百度').get_attribute('href')  #通过部分链接名定位链接

 

你可能感兴趣的:(常用方法)