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

发表于:2020-11-04 09:35

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:菜菜_包包    来源:博客园

  一、打开浏览器,打开网址
  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),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号