• python自动化Selenium的使用


    python自动化Selenium的使用

    Selenium是一个自动化测试框架,用于模拟和控制浏览器操作,支持多种编程语言。它可以模拟人类用户在浏览器上的操作(如点击、滚动、输入等),并检查网页内容和元素的属性。Selenium可用于对网站进行功能测试、性能测试、兼容性测试等。Selenium包含三个主要组件:

    1. Selenium IDE: Selenium IDE是一个基于浏览器的插件,用于录制和回放用户操作,可以生成自动化脚本,适用于初学者。

    2. Selenium WebDriver: Selenium WebDriver是一个可以直接控制浏览器的工具,提供了多种编程语言的接口,可以在不同的浏览器上进行测试。

    3. Selenium Grid: Selenium Grid是一个分布式测试工具,可以将测试用例分发到不同的计算机上进行测试,提高测试效率。

    Selenium的主要优点包括:跨平台、多浏览器支持、灵活性高、可扩展性好、开放源代码等。

    selenium的安装和使用

    1. 下载google驱动包

      从淘宝镜像下载合适的驱动包,解压驱动包到合适的位置。找不到驱动可以从官方获取驱动

    2. 使用pip安装selenium

      pip install selenium

    3. 示例baidu_selenium.py

    import time
    from selenium import webdriver
    
    # 创建浏览器对象
    browser = webdriver.Chrome('chromedriver.exe')
    # 访问百度网站,如京东默认会校验是否真实浏览器访问
    url = 'https://www.baidu.com/'
    browser.get(url)
    time.sleep(2)
    
    # 获取文本框对象,在文本框中输入刘晓雪
    input = browser.find_element_by_id('kw')
    input.send_keys('刘晓雪')
    time.sleep(2)
    # 获取百度一下的按钮后点击
    button = browser.find_element_by_id('su')
    button.click()
    time.sleep(2)
    # 滑到底部
    js_bottom = 'document.documentElement.scrollTop=100000'
    browser.execute_script(js_bottom)
    time.sleep(2)
    # 获取下一页按钮
    next = browser.find_element_by_xpath('//a[@class="n"]')
    next.click()
    time.sleep(2)
    # 回到上一页
    browser.back()
    time.sleep(2)
    # 回去
    browser.forward()
    time.sleep(3)
    # 退出
    browser.quit()
    # content = browser.page_source
    # input = browser.find_element_by_id('id')
    # input.get_attribute('class') 获取属性
    # browser.find_element_by_class_name('className')
    # browser.find_element_by_name('input')
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    1. 示例no_page_selenium.py
    # PhantomJS已不推荐使用
    # browser = webdriver.PhantomJS('path')
    # url = 'https://www.baidu.com'
    # browser.get(url)
    # browser.save_screenshot('baidu.png')
    # time.sleep(2)
    # browser.quit()
    
    # 无界面的浏览器,不进行css和gui的渲染、运行效率高,Phantomjs和Chrome handless
    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options
    
    # 配置选项
    def share_browser():
        chrome_options = Options()
        chrome_options.add_argument('--headless')
        chrome_options.add_argument('--disable-gpu')
        # chrome浏览器的路径
        path = r'C:\Program Files\Google\Chrome\Application\chrome.exe'
        chrome_options.binary_location = path
        browser = webdriver.Chrome(chrome_options=chrome_options)
        return browser
    
    browser = share_browser()
    # 设置浏览器最大化显示
    browser.maximize_window()
    url = 'https://www.baidu.com'
    browser.get(url)
    browser.save_screenshot('baidu.png')
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
  • 相关阅读:
    如何运营独立站?
    游戏设计模式专栏(七):在Cocos游戏开发中运用桥接模式
    English语法_介词 - for
    Day06-filebeat,logstash多实例,pipline,ElasticStack项目架构梳理及实战案例
    手机蓝牙调试助手,设置红绿灯时间,本次设置红灯28s,绿灯24s,其中红绿灯时间可以任意设置,最大值四位数之内,是智慧城市交通灯联网Ai调控前期探索。
    Matlab .m脚本文件
    Spring MVC相关
    穿仓与均摊
    CSS 轮廓(outline)
    Openssl数据安全传输平台011:秘钥协商客户端
  • 原文地址:https://blog.csdn.net/dolly_baby/article/details/132652525