川石教育
全国咨询热线:136-9172-9932
  1. 首页 > 资讯与干货 > IT资讯

API:操作API(一)

作者:川石学院 日期:2022-04-21 15:18:28 点击数:

一天一个关于测试知识点,5分钟内讲解你最关心的软件测试问题,今天就接着来谈谈关于软件测试中的“API:操作API(一)”。

UiAutomator API详解:UiSelector类介绍(一)(图1)

  (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。

API:操作API(一)(图2)

  (4)鼠标事件。

  引入鼠标操作,首先需要在开始加入如下一行代码。

  from selenium.webddiver import ActionChains

  鼠标事件的API如表4-47所示。

API:操作API(一)(图3)

  案例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(),"网页的任何地方未被选中!")


相关文章
  • 亚马逊运营成功转行软件测试,薪资13K表示很满意!2022-04-21 15:18:28
  • 西安川石的兰朋友喊你来当他的学弟学妹啦!2022-04-21 15:18:28
  • 国外的月亮也不一定比国内测试猿的年薪美~2022-04-21 15:18:28
  • 建筑工程专业朱同学成功转行为软件测试人!2022-04-21 15:18:28
  • 财务管理专业转行软件测试月薪甩会计几条街!2022-04-21 15:18:28
  • 只有技术沉淀才能成功上岸,深圳就业薪资13K!2022-04-21 15:18:28
  • 薪资11K!实现自我价值,从掌握一门IT技术开始...2022-04-21 15:18:28
  • 文科生转行软件测试照样拿下高薪15K!2022-04-21 15:18:28
  • 恭喜罗同学喜提19.5K,成功入行软件测试!2022-04-21 15:18:28
  • 毕业1年,迷茫的他最终选择转行软件测试2022-04-21 15:18:28