zoukankan      html  css  js  c++  java
  • selenium的其他方法

    1 selenium 处理cookie

    driver.get_cookies()获取的是完整的cookie信息!不光有name、value,还有domain等其他信息!

    # 把cookie转为字典
    cookies_dict = {cookie['name']: cookie['value'] for cookie in driver.get_cookies()}

    # 删除一条cookie
    driver.delete_cookie("CookieName")

    # 删除全部cookie
    driver.delete_all_cookies()

    2.执行js代码

    import time
    from selenium import webdriver
    
    driver = webdriver.Chrome(executable_path='/home/worker/Desktop/driver/chromedriver')
    driver.get("http://www.itcast.cn/")
    time.sleep(1)
    
    js = 'window.scrollTo(0,document.body.scrollHeight)' # js语句
    driver.execute_script(js) # 执行js的方法
    
    time.sleep(5)
    driver.quit()

    4 switch方法切换的操作,切换窗口的方法如下:

    # 1. 获取当前所有的窗口
    current_windows = driver.window_handles
    
    # 2. 根据窗口索引进行切换
    driver.switch_to.window(current_windows[1])
    代码:
    import time
    from selenium import webdriver
     
    driver = webdriver.Chrome(executable_path='/home/worker/Desktop/driver/chromedriver')
    driver.get("https://www.baidu.com/")
     
    time.sleep(1)
    driver.find_element_by_id('kw').send_keys('python')
    time.sleep(1)
    driver.find_element_by_id('su').click()
    time.sleep(1)
    # 通过执行js来新开一个标签页
    js = 'window.open("https://www.sogou.com");'
    driver.execute_script(js)
    time.sleep(1)
     
    # 1. 获取当前所有的窗口
    windows = driver.window_handles
     
    time.sleep(2)
    # 2. 根据窗口索引进行切换
    driver.switch_to.window(windows[0])
    time.sleep(2)
    driver.switch_to.window(windows[1])
     
    time.sleep(6)
    driver.quit()
    # iframe
    login_frame = driver.find_element_by_id('login_frame') # 定位frame元素
    driver.switch_to.frame(login_frame) # 转向到该frame中
    # 当你触发了某个事件之后,页面出现了弹窗提示,处理这个提示或者获取提示信息方法如下:
    driver.switch_to.alert() # 跟frame一样的处理方式!
    
    

    5. 页面前进和后退

    driver.forward()     # 前进
    driver.back()        # 后退

    小结

    1. 获取cookie: get_cookies()
    2. 删除cookie: delete_all_cookies()
    3. 切换窗口:switch_to.window()
    4. 切换iframe: switch_to.frame()

    6. selenium的优缺点

      • selenium能够执行页面上的js,对于js渲染的数据和模拟登陆处理起来非常容易
      • selenium由于在获取页面的过程中会发送很多请求,所以效率非常低,所以在很多时候需要酌情使用

     

  • 相关阅读:
    第三篇:python函数
    第二篇:数据类型
    第一篇:初识python
    PyTorch教程之Autograd
    PyTorch教程之Tensors
    如何解决Python.h:No such file or directory
    如何解决conda install:command not found问题
    Linux 安装Anaconda 4.4.0
    Linux安装pytorch的具体过程以及其中出现问题的解决办法
    Writing Science 7.10 (The Opening and The Funnel)
  • 原文地址:https://www.cnblogs.com/lab-zj/p/12166660.html
Copyright © 2011-2022 走看看