多测师是一家拥有先进的教学理念,强大的师资团队,业内好评甚多的接口自动化测试培训机构!

17727591462

联系电话

您现在所在位置:接口自动化测试培训 > 新闻资讯

接口自动化测试之selenium操作浏览器

更新时间:2021-09-15 02:10:10 作者:admin 浏览:253

接口自动化测试之selenium操作浏览器

  一、打开浏览器,打开网址

  1、导入selenium 的webdriver 模块

  2、打开浏览器,创建浏览器对象

  3、打开百度

  1 from selenium import webdriver # 导入webdriver

  2 # 创建浏览器对象driver

  3 driver = webdriver.Chrome() # 谷歌浏览器

  4 # driver = webdriver.Firefox() # 火狐浏览器

  5 # driver = webdriver.Ie() # IE浏览器

  6 # driver = webdriver.Edge() # Edge浏览器

  7 # 输入网址

  8 driver.get(url="http://www.baidu.com")

  二、隐式等待、显示等待、强制等待

  1、隐式等待implicitly_wait :就是在创建driver时,为浏览器对象创建一个等待时间,这个方法是得不到某个元素就等待一段时间,直到拿到某个元素位置。

  从 implicitly_wait中可以看出,需要传一个等待时间参数time_to_wait,单位是秒,比如 implicitly_wait(10),代表隐式等待10秒。

  注意:在使用隐式等待的时候,实际上浏览器会在你自己设定的时间内部断的刷新页面去寻找我们需要的元素。

  from selenium import webdriver # 导入webdriver

  # 创建浏览器对象driver

  driver = webdriver.Chrome() # 谷歌浏览器

  # driver = webdriver.Firefox() # 火狐浏览器

  # driver = webdriver.Ie() # IE浏览器

  # driver = webdriver.Edge() # Edge浏览器

  # 输入网址

  driver.get(url="http://www.baidu.com")

  # 隐式等待10秒

  driver.implicitly_wait(10)

  2、显示等待WebDriverWait:显示等待的代码定义了等待条件,只有该条件触发,一般用于查找页面元素,在规定时间内找到了元素,则进行下一步操作,如果没有找到,则抛出异常。

  上面是源码,下面是例子

  from selenium import webdriver # 导入webdriver

  from selenium.webdriver.support.ui import WebDriverWait

  # 创建浏览器对象driver

  driver = webdriver.Chrome() # 谷歌浏览器

  # driver = webdriver.Firefox() # 火狐浏览器

  # driver = webdriver.Ie() # IE浏览器

  # driver = webdriver.Edge() # Edge浏览器

  # 输入网址

  driver.get(url="http://www.baidu.com")

  # 隐式等待10秒

  driver.implicitly_wait(10)

  # 显式等待10秒,在这10秒中找元素就执行下一步,没有找到就抛出异常。比如在第3秒找到了,马上执行下一步

  element = WebDriverWait(driver, 10).until(lambda x: x.find_element_by_id("kw")) # kw是百度网页的一个元素

  # 强制等待10,找到和没找到都会等待10秒

  import time

  time.sleep(10)

  一般都是结合另一个模块来做页面模块expected_conditions判断元素可见:

  from selenium import webdriver

  from selenium.webdriver.common.by import By

  from selenium.webdriver.support.ui import WebDriverWait

  from selenium.webdriver.support import expected_conditions as EC

  driver = webdriver.Chrome()

  driver.get(url="http://www.baidu.com")

  try:

  WebDriverWait(driver, 10).until(

  EC.visibility_of_element_located((By.ID,'su')) # 元素是否可见

  )

  except:

  print("未找到元素")

  driver.quit()

  3、强制等待,time.sleep()

接口自动化测试之selenium操作浏览器

  三、操作浏览器

  1、窗口大小剪裁 set_window_size()

  1 import time

  2 from selenium import webdriver # 导入webdriver

  3 # 创建浏览器对象driver

  4 driver = webdriver.Chrome() # 谷歌浏览器

  5 driver.get(url="http://www.baidu.com") # 输入网址

  6 driver.set_window_size(880, 960) # 设置窗口大小

  7 time.sleep(3) # 强制等待

  8 driver.quit() # 关闭浏览器

  2、窗口最大化 maximize_window()

  1 import time

  2 from selenium import webdriver # 导入webdriver

  3 # 创建浏览器对象driver

  4 driver = webdriver.Chrome() # 谷歌浏览器

  5 driver.get(url="http://www.baidu.com") # 输入网址

  6 driver.maximize_window() # 窗口最大化

  7 time.sleep(3) # 强制等待

  8 driver.quit() # 关闭浏览器

  3、页面刷新 refresh()

  import time

  from selenium import webdriver # 导入webdriver

  driver = webdriver.Chrome() # 谷歌浏览器

  driver.get(url="http://www.baidu.com")

  driver.refresh() # 刷新页面

  time.sleep(3)

  driver.quit()

  4、前进和后退

  前进:forward()

  后退:back()

  import time

  from selenium import webdriver # 导入webdriver

  # 创建浏览器对象driver

  driver = webdriver.Chrome() # 谷歌浏览器

  driver.get(url="http://www.baidu.com")

  driver.get(url="https://www.cnblogs.com/")

  driver.back() # 后退上一页

  driver.forward() # 前进下一页

  time.sleep(3)

  driver.quit()

  5、截屏,常用的 get_screenshot_as_file(),另外两个 get_screenshot_as_png()、 get_screenshot_as_base64()

  import time

  from selenium import webdriver # 导入webdriver

  # 创建浏览器对象driver

  driver = webdriver.Chrome() # 谷歌浏览器

  driver.get(url="http://www.baidu.com")

  driver.get_screenshot_as_file("test.png")

  time.sleep(3)

  driver.quit()

  以上是关于接口自动化测试之selenium操作浏览器的介绍,由多测师亲自撰写。  https://www.aichudan.com/

联系电话

17727591462

返回顶部