python+selenium自动化之selenium操作浏览器

发表于:2020-11-04 09:35  作者:菜菜_包包   来源:博客园

字体: | 上一篇 | 下一篇 |我要投稿 | 推荐标签: 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() 
  三、操作浏览器
  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()

      本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理

评 论

论坛新帖

顶部 底部


建议使用IE 6.0以上浏览器,800×600以上分辨率,法律顾问:上海信义律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2021, 沪ICP备05003035号
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪公网安备 31010102002173号

51Testing官方微信

51Testing官方微博

扫一扫 测试知识全知道