汕头自助建站系统企业内部的网站系统
1. 元素的定位
web⾃动化测试的操作核⼼是能够找到⻚⾯对应的元素,然后才能对元素进⾏具体的操作。
 常⻅的元素定位⽅式⾮常多,如id,classname,tagname,xpath,cssSelector
 常⽤的主要由cssSelector和xpath
1.1 cssSelector
选择器的功能:选中⻚⾯中指定的标签元素
 选择器的种类分为基础选择器和复合选择器,常⻅的元素定位⽅式可以通过id选择器和⼦类选择器来进⾏定位
定位百度⾸⻚的“百度热搜”元素,可以使⽤通过id选择器和⼦类选择器进⾏定位:
 #shotsearch-wrapper > div
 “搜索输⼊框元素”:#kw
 “百度⼀下按钮”:#su
1.2 xpath
XML路径语⾔,不仅可以在XML⽂件中查找信息,还可以在HTML中选取节点。
 xpath使⽤路径表达式来选择xml⽂档中的节点
 xpath语法中:
1.2.1 获取HTML⻚⾯所有的节点
//*
1.2.2 获取HTML⻚⾯指定的节点
//[指定节点]
 //ul :获取HTML⻚⾯所有的ul节点
 //input:获取HTML⻚⾯所有的input节点
1.2.3 获取⼀个节点中的直接⼦节点
/
 //span/input
1.2.4 获取⼀个节点的⽗节点
…
 //input/…
 获取input节点的⽗节点
1.2.5 实现节点属性的匹配
[@…]
 //*[@id=‘kw’]
 匹配HTML⻚⾯中id属性为kw的节点
1.2.6 使⽤指定索引的⽅式获取对应的节点内容
注意:xpath的索引是从1开始的。
 百度⾸⻚通过://div/ul/li[3]定位到第三个百度热搜标签更便捷的⽣成
 selector/xpath的⽅式:右键选择复制
 “Copy selector/xpath”
 案例:如果想要匹配到百度⾸⻚指定的新闻⽂本或者节点集:,直接使⽤wrapper > li 能够满⾜吗?
 问题:既然可以⼿动复制
 #hotsearch-content
 selector/xpath的⽅式 ,为什么还有了解语法?
 ⼿动复制的selector/xpath表达式并不⼀定满⾜上⾯的唯⼀性的要求,有时候也需要⼿动的进⾏修改表达式比
案例:百度⾸⻚(需要登陆百度账号)右侧的热搜,复制li标签下的a标签,复制好的的selector为:#title-content ,xpath为:
 //*[@id=“title-content”]
- 操作测试对象
获取到了⻚⾯的元素之后,接下来就是要对元素进⾏操作了。常⻅的操作有点击、提交、输⼊、清除、获取⽂本。
click() 
1.#找到百度⼀下按钮并点击
2.driver.find_element(By.CSS_SELECTOR, "#su").click()
 
2.2 模拟按键输⼊
 send_keys(“”)
1.driver.find_element(By.CSS_SELECTOR, "#kw").send_keys("迪丽热巴")
 
2.3 清除⽂本内容
 输⼊⽂本后⼜想换⼀个新的关键词,这⾥就需要⽤到
 clear()
driver.find_element(By.CSS_SELECTOR, "#kw").send_keys("迪丽热巴")
time.sleep(1)
driver.find_element(By.CSS_SELECTOR,"#kw").clear()
time.sleep(1)
driver.find_element(By.CSS_SELECTOR, "#kw").send_keys("古⼒娜扎")
 
2.4 获取⽂本信息
 如果判断获取到的元素对应的⽂本是否符合预期呢?获取元素对应的⽂本并打印⼀下~~
 获取⽂本信息:
 1.text
1.text = driver.find_element(By.XPATH,'//*[@id="hotsearch-content
wrapper"]/li[1]/a/span[2]').text2/
2.print(f"text:{text}")
 
问题:是否可以通过text 获取到“百度⼀下按钮”上的⽂字“百度⼀下”呢?尝试⼀下
 注意:⽂本和属性值不要混淆了。获取属性值需要使⽤⽅法
 2.5 获取当前⻚⾯标题
 title
1.title = driver.title
 
获取当前⻚⾯URL
 current_url
url = driver.current_url
