Web应用测试长期练习—功能测试
全国大学生软件大赛一些想学习自动化测试的分析
打开浏览器输入 http://114.215.176.95:60503/goodmanage/index.jsp,输入系统管理员们账号zhangsan密码123456(密码后台采用MD5加密,用其他账户登录请查看其对应的密文),点击登录。
这部分基本上很简单,直接跳过
点击左侧“商品管理-商品添加”,进入商品信息添加模块,输入商品名称,价格,描述,数量信息进行商品信息添加,点击提交按钮。
从登录页面跳转过了后,点击左侧“商品管理-商品添加用xpath、link_text等等方法都无法定位,提示报错,这部分迎来的第一个坑frame的切换。
从网页的整体结构上看我们发现,页面代码很短,我们检查商品管理元素可以发现它是另外一部分代码,从这里我们可以知道它是被隐藏了,而也告诉我们使用frame 这一类情况为什么会有这类情况呢?所有内容都要用表格来分是很难而且很丑,所以引进了frame可以将左侧树、右侧内容,顶端导航轻松分开。这也导致刚开始的时候我们无论怎么使用xpath等等一下定位方法都无法进行点击
selenium中解决进入frame的方法
第一种通过ID、name等一些简单的方法
dr.switchTo().frame("id");
如果一个iFrame既没有id,也没有name,通用情况
id=driver.find_element_by_xpath()
跳出frame
driver.switch_to.default_content()
3.点击左侧“商品查询”按钮,进入商品信息查询页面,输入商品ID,点击查询按钮。
很简单跳过
4.完成之后即可退出系统
跳过
最后附上代码
from selenium import webdriverimporttimefrom selenium.webdriver.support.ui import Selectdriver= webdriver.Chrome()driver.get('http://114.215.176.95:60503/goodmanage/index.jsp')driver.implicitly_wait(30)driver.maximize_window()driver.find_element_by_name('userName').send_keys('zhangsan')driver.find_element_by_name('password').send_keys('123456')driver.find_element_by_id('btnLogin').click()driver.switch_to.frame('leftFrame')time.sleep(2)driver.find_element_by_xpath('//*[@id="menuTree"]/div/div[4]/div[1]/span[2]/a').click()driver.find_element_by_xpath('/html/body/table/tbody/tr[2]/td[2]/div/div[4]/div[2]/div/span[2]/a').click()driver.switch_to.default_content()driver.switch_to.frame('mainFrame')time.sleep(2)driver.find_element_by_id('productName').send_keys('娃哈哈')driver.find_element_by_id('productPrice').send_keys('2')driver.find_element_by_id('productNumber').send_keys('50')driver.find_element_by_id('description').send_keys('饮料')s1 =Select(driver.find_element_by_name('goodsType'))s1.select_by_index(1)driver.find_element_by_xpath('/html/body/div/table/tbody/tr[2]/td[2]/div/form/table/tbody/tr[5]/td/input[1]').click()time.sleep(2)driver.find_element_by_name('productID').send_keys('1')driver.find_element_by_name('productName').send_keys('iPhone5s')driver.find_element_by_xpath('/html/body/div/table/tbody/tr[2]/td[2]/div/table/tbody/tr[2]/td/input[3]').click()time.sleep(1)driver.quit()