元素定位常用方法

 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')  #通过部分链接名定位链接
原文地址:https://www.cnblogs.com/Roger1227/p/3131096.html