1、在selenium 框架中,操作元素定位使用的类是By,里面方法有8种,那么也就是说,定位页面的元素属性方法有8种,分别是:
ID = "id"(每个元素的id是唯一的,不可重复的)
XPATH = "xpath"
LINK_TEXT = "link text"
PARTIAL_LINK_TEXT = "partial link text"
NAME = "name"
TAG_NAME = "tag name"
CLASS_NAME = "class name"
CSS_SELECTOR = "css selector"
2、元素定位从分类上而言:
1)单个元素定位
2)多个元素定位(元素属性都一致)
A、获取到的元素属性,它是一个列表
B、按照我们需要被定位的元素属性,它在列表中是第几位,那么就使用它的索引来定位
3、单个元素定位示例(id)
1 from selenium import webdriver 2 import time as t 3 #实例化webdriver,并指定要测试的浏览器 4 driver=webdriver.Chrome() 5 #打开浏览器导航到百度 6 driver.get("http://www.baidu.com") 7 #send_keys是输入的方法(通过id属性定位到百度的搜索输入框,并且输入搜索的关键字) 8 driver.find_element_by_id("kw").send_keys("selenium") 9 t.sleep(3) 10 driver.quit()
4、单个元素定位示例(name)
1 from selenium import webdriver 2 import time as t 3 driver=webdriver.Chrome() 4 driver.get("http://www.baidu.com") 5 driver.find_element_by_name("wd").send_keys("selenium") 6 t.sleep(3) 7 driver.quit()
5、单个元素定位示例(class_name)
1 from selenium import webdriver 2 import time as t 3 driver=webdriver.Chrome() 4 driver.get("http://www.baidu.com") 5 driver.find_element_by_class_name("s_ipt").send_keys("selenium") 6 t.sleep(3) 7 driver.quit()
6、当一个元素使用ID,name,class_name定位不到的时候,那么这个时候使用css(基于样式)和xpath(基于路径)
7、单个元素定位示例(css_selector)
1 from selenium import webdriver 2 import time as t 3 driver=webdriver.Chrome() 4 driver.get("http://www.baidu.com") 5 driver.find_element_by_css_selector("#kw").send_keys("selenium") 6 t.sleep(3) 7 driver.quit()
注:在Chrome浏览器中的百度首页,右键选择“检查”,在弹出的页面点击选择元素图标,再去选择百度的搜索输入框,在蓝色框选的区域点击右键选择“copy selector”,如下图所示:

8、单个元素定位(xpath)
1 from selenium import webdriver 2 import time as t 3 driver=webdriver.Chrome() 4 driver.get("http://www.baidu.com") 5 driver.find_element_by_xpath('//*[@id="kw"]').send_keys("selenium") 6 t.sleep(3) 7 driver.quit()
注:在元素的id属性为动态的时候(id一直在变化),使用 full path,其他情况使用xpath.
9、单个元素定位(link_text和partial_link_text)
1 from selenium import webdriver 2 import time as t 3 driver=webdriver.Chrome() 4 driver.get("http://www.baidu.com") 5 driver.find_element_by_link_text("视频").click() #精确查找 6 driver.find_element_by_partial_link_text("频").click() #模糊查找 7 t.sleep(3) 8 driver.quit()
10、多个元素定位示例(id)
1 from selenium import webdriver 2 import time as t 3 driver=webdriver.Chrome() 4 driver.get("file:///D:/test/code/testDev/UI%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95/index(2).html") 5 listID=driver.find_elements_by_id("login") 6 #输入账户 7 listID[0].send_keys("admin") 8 t.sleep(2) 9 #输入密码 10 listID[1].send_keys("123") 11 t.sleep(2) 12 #点击登录按钮 13 listID[2].click() 14 t.sleep(2) 15 t.sleep(3) 16 driver.quit()
11、多个元素定位示例(tag_name)
1 from selenium import webdriver 2 import time as t 3 #实例化webdriver,并且指定要测试的浏览器 4 driver=webdriver.Chrome() 5 #打开浏览器导航到百度 6 driver.get('http://www.baidu.com') 7 inputs=driver.find_elements_by_tag_name("input") 8 inputs[7].send_keys("selenium") 9 t.sleep(3) 10 driver.quit()
12、可长期使用的方法示例(运行代码后无警告)
1 from selenium import webdriver 2 from selenium.webdriver.common.by import By 3 import time as t 4 driver=webdriver.Chrome() 5 driver.get("http://www.baidu.com") 6 driver.find_element(By.ID,"kw").send_keys("qq异常") 7 t.sleep(3) 8 driver.quit()
 
                    
                     
                    
                 
                    
                 
                
            
         
         
 浙公网安备 33010602011771号
浙公网安备 33010602011771号