一天一个关于测试知识点,5分钟内讲解你最关心的软件测试问题,今天就接着来谈谈关于软件测试中的“API:操作API(一)”。
(1)控制浏览器操作。
案例4-49:控制浏览器操作。
driver.get("http://www.3testing.com/")#进入某个网页
driver.set_window_size(480,800) #设置浏览器大小
self.driver.maximize_window()#设置浏览器最大化
driver.back()#模拟浏览器后退操作
drivrt.forward()#模拟浏览器前进操作
driver.refresh()#模拟浏览器刷新操作
driver.close()#关闭浏览器
driver.get_screenshot_as_file("path\\file.png")#获取当前屏幕的截图
(2)基本的API。
driver.element.clear()#清空
driver.element.send_keys(value) #输入
driver.element.click()#点击
driver.element.submit()#提交表单,注意element必须为一个表单元素
driver.element.get_attribute("value")#获取元素属性
案例4-50:百度查询。
class checkbaidu(unittest.TestCase):
class checkbaidu(unittest.TestCase):
def setUp(self):
d = drivers()
self.driver=d.driver
self.driver.implicitly_wait(5)
self.driver.get("https://www.baidu.com")
def test_CheckBaidu(self):
inputstring='大数据'
self.driver.find_element_by_id("kw").clear()
self.driver.find_element_by_id("kw").send_keys(inputstring)
self.driver.find_element_by_id("su").click()
time.sleep(3)
self.assertEqual(self.driver.title,inputstring+"_百度搜索",msg="标题错误")
def tearDown(self):
self.fd.quit(self.driver)
案例4-51:获取元素属性。
对于HTML代码。
<input type="text" name="id" class="wd" maxlength="100">
有以下测试脚本
name=driver.find_element_by_id("id").get_attribute("name")
class=driver.find_element_by_id("id").get_attribute("class")
maxlength driver.find_element_by_id("id").get_attribute("maxlength")
print("name="name)
print("class="class)
print("maxlength="maxlength)
分别获得。
name=id
class=wd
maxlength=100
除了可以通过get_attribute获取元素属性,还可以通过以下几个形式获取。
l driver.find_element_by_id("id"). tag_name:获取tag_name。
l driver.find_element_by_id("id"). Size:获取元素大小(返回字典类型,类似“{'height': XX, 'width': XX}”)。
l driver.find_element_by_id("id"). Text:获取元素中的文字。
def test_CheckInfo (self):
self.driver.get("https://www.baidu.com")
time.sleep(2)
element = self.driver.find_element_by_link_text("新闻")
self.assertEqual(element.tag_name,"a")
self.assertEqual(element.size,{'height': 24, 'width': 26})
self.assertEqual(element.text,"新闻")
另外也可以获取整个网页的属性。
l driver.title:获取页面的title值。
l driver.page_source:获取页面的HTML源码。
l driver.current_url:获取当前页面的url。
(3)输入特殊字符。
通过引入
from selenium.webdriver.common.keys import Keys
包,可以操作键盘特殊字符比如:Control、Alt、空格、F1-F12…
案例4-52:输入回车键
from selenium.webdriver.common.keys import Keys
…
class checkKey(unittest.TestCase):
def setUp(self):
…
def test_CheckKey (self):
inputstring='大数据'
self.driver.find_element_by_id("kw").clear()
self.driver.find_element_by_id("kw").send_keys(inputstring)
self.driver.find_element_by_id("kw").send_keys(Keys.RETURN)
time.sleep(3)
self.assertEqual(self.driver.title,inputstring+"_百度搜索",msg="标题错误")
这些特殊字符参见表4-47。
(4)鼠标事件。
引入鼠标操作,首先需要在开始加入如下一行代码。
from selenium.webddiver import ActionChains
鼠标事件的API如表4-47所示。
案例4-53:百度高级查询。
def test_CheckMouse(self):
self.driver.find_element_by_id('kw').send_keys('软件测试')
self.driver.find_element_by_id('su').click()
element = self.driver.find_element_by_name('tj_settingicon')
ActionChains(self.driver).move_to_element(element).perform()
self.driver.find_element_by_link_text('高级搜索').click()
#测试“网页的任何地方”被选中
element = self.driver.find_element_by_id("q5_0")
self.assertTrue(element.is_selected(),"网页的任何地方未被选中!")