目录

软件测试开发软件测试常用函数1.0C

【软件测试开发】:软件测试常用函数1.0(C++)

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”]

  1. 操作测试对象

    获取到了⻚⾯的元素之后,接下来就是要对元素进⾏操作了。常⻅的操作有点击、提交、输⼊、清除、获取⽂本。

    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