selenium页面对象定位方法详解(一)

在自动化的测试中,对象元素的定位和操作是自动化的核心部分,俗话说的好,工欲善其事必先利其器,页面对象定位不到,其它都是白谈!
页面对象定位是自动化的基础,在定位到对象的基础上,才可以形成对对象的操作。

webdriver提供了元素定位的方法,常见的有如下的几种:
id、name、class name、tag name、link text、partial link text、xpath、css selector

那么对应的webdriver python API如下:
find_element_by_id()
find_element_by_name()
find_element_by_class_name()
find_element_by_tag_name()
find_element_by_link_text()
find_element_by_partial_link_text()
find_element_by_xpath()
find_element_by_css_selector()

接下来我们详细了解下每种API的使用:
1、find_element_by_id()
id就是类似人的身份证号一般,一般id的属性值在我们Web中基本都是唯一的,比如我要在*局查找一个人,你告诉警察叔叔,我想要通过身份证号的方式
查找某个人,警察叔叔就会输,请输出身份证号码,那么身份证号码其实对应的就是我们页面对象的id的属性值,如何查看页面对象的属性值呢?
比如说我要定位如下电商项目的搜索输入框:
selenium页面对象定位方法详解(一)
我们在页面鼠标点击到输入框-》点击检查-》会弹出如下界面:
selenium页面对象定位方法详解(一)
我们可以看出此输入框的id的是scbar_txt,那么此时我们代码应该怎么写呢?
import time
from selenium import webdriver

driver = webdriver.Chrome()
driver.get(“http://www.bcbxhome.com”)
time.sleep(5)
driver.find_element_by_id(“scbar_txt”).send_keys(“测试用例设计中的测试数据设计方案”)
此时我们可以看到地址被自动化打开,并且在输入框输入了测试用例设计中的测试数据设计方案
selenium页面对象定位方法详解(一)
2、find_element_by_name()
上边我们讲了通过id的形式定位到页面对象,如果这个控件也有name属性,我们也可以通过name的形式定位到它,其实id、name无非就是多种定位方式,
就像我们去上班一样,我们可以坐公交、坐地铁、开车,有多种方式达成目标。

我们还是来看下这个输入框的页面属性:
selenium页面对象定位方法详解(一)
那么最终我们应该怎么写代码呢?
import time
from selenium import webdriver

driver = webdriver.Chrome()
driver.get(“http://www.bcbxhome.com”)
time.sleep(5)
driver.find_element_by_name(“srchtxt”).send_keys(“测试用例设计中的测试数据设计方案”)
3、find_element_by_class_name()
如果我们要定位的页面有class属性的话(看清楚哦我说的是class属性,不是classname属性哦),我们就可以使用此api定位到控件
selenium页面对象定位方法详解(一)
代码实现如下:
import time
from selenium import webdriver

driver = webdriver.Chrome()
driver.get(“http://www.bcbxhome.com”)
time.sleep(5)
driver.find_element_by_class_name(" xg1").send_keys(“测试用例设计中的测试数据设计方案”)