美文网首页
【Python】04-selenium使用总结

【Python】04-selenium使用总结

作者: b861a75d2a7d | 来源:发表于2018-05-30 00:30 被阅读8次

    1. 简介

    • Selenium 是什么?一句话,自动化测试工具。它支持各种浏览器,包括 Chrome,Safari,Firefox 等主流界面式浏览器,如果你在这些浏览器里面安装一个 Selenium 的插件,那么便可以方便地实现Web界面的测试。换句话说叫 Selenium 支持这些浏览器驱动。

    2.安装

    pip3 install selenium
    

    3.下载驱动

    4.导入方法

    #导入方法
    from selenium import webdriver
    

    5.初始化浏览器

    # 1.初始化浏览器为chrome浏览器
    browser = webdriver.Chrome()
    
    # 2. 初始化浏览器为firefox浏览器
    browser = webdriver.Firefox()
    
    # 3. 初始化浏览器为无界面的chrome浏览器
    option = webdriver.ChromeOptions()
    option.add_argument("headless")
    driver = webdriver.Chrome(chrome_options=option)
    

    6.页面交互

    # 1.打开指定URL页面
    driver.get("https://www.baidu.com/")
    
    # 2.清空输入框
    input.clear( )
    
    # 3.在输入框中输入信息
    input.send_keys( "关键词" )
    
    # 4. 点击按钮
    submit.click( )
    
    # 5.获取页面源码
    driver.page_source
    
    # 6.弹窗处理
    alert = driver.switch_to_alert()
    
    # 7.关闭浏览器
    driver.quit( )
    
    # 8. cookie处理
    #添加cookie
    cookie = {‘name’ : ‘foo’, ‘value’ : ‘bar’}
    driver.add_cookie(cookie)
    #获取cookie
    driver.get_cookies()
    
    

    7.定位页面元素

    #方法一:定位单个指定元素
    
    #根据id标签定位
    • driver.find_element_by_id(" ")
    #根据name标签定位
    • driver.find_element_by_name(" ")
    #根据xpath定位
    • driver.find_element_by_xpath(" ")
    #根据文字信息定位
    • driver.find_element_by_link_text(" ")
    #根据链接文字信息定位
    • driver.find_element_by_partial_link_text(" ")
    根据tag名称定位
    • driver.find_element_by_tag_name(" ")
    #根据class标签定位
    • driver.find_element_by_class_name(" ")
    #根据css定位
    • driver.find_element_by_css_selector(" ")
    
    
    
    #方法二:定位多个元素(这些方法会返回一个列表):
    
    • driver.find_elements_by_name(" ")
    • driver.find_elements_by_xpath(" ")
    • driver.find_elements_by_link_text(" ")
    • driver.find_elements_by_partial_link_text(" ")
    • driver.find_elements_by_tag_name(" ")
    • driver.find_elements_by_class_name(" ")
    • driver.find_elements_by_css_selector(" ")
    
    
    #方法三:find_element/find_elements
    
    #导入方法:
    from selenium.webdriver.common.by import By
    
    • driver.find_element(By.CLASS_NAME, " ")
    • driver.find_element(By.CSS_SELECTOR, " ")
    • driver.find_element(By.ID, " ")
    • driver.find_element(By.LINK_TEXT, " ")
    • driver.find_element(By.NAME, " ")
    • driver.find_element(By.PARTIAL_LINK_TEXT, " ")
    • driver.find_element(By.TAG_NAME, " ")
    • driver.find_element(By.XPATH, " ")
    ==========================================================
    • driver.find_elements(By.CLASS_NAME, " ")
    • driver.find_elements(By.CSS_SELECTOR, " ")
    • driver.find_elements(By.ID, " ")
    • driver.find_elements(By.LINK_TEXT, " ")
    • driver.find_elements(By.NAME, " ")
    • driver.find_elements(By.PARTIAL_LINK_TEXT, " ")
    • driver.find_elements(By.TAG_NAME, " ")
    • driver.find_elements(By.XPATH, " ")
    
    

    8.设置等待时间,判断页面是否加载完成

    #导入方法:
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    
    #设置浏览器等待时间
    wait = WebDriverWait(driver, 10)
    
    
    #设置期待条件
    
    # 1.判断标题是否与期望的一致
    • title =wait.until(EC.title_is((By.ID,'#id')))
    
    # 2.判断标题是否包含什么
    • title =wait.until(EC.title_contains((By.ID,'#id')))
    
    # 3.指定元素加载完成
    • title =wait.until(EC.presence_of_element_located((By.ID,'#id')))
    
    # 4.判断元素是否加载完成
    • title =wait.until(EC.presence_of_all_elements_located((By.ID,'#id')))
    
    # 5.判断指定文本信息是否加载完成
    • title =wait.until(EC.text_to_be_present_in_element((By.ID,'#id')))
    
    # 6.判断指定元素的值是否加载完成
    • title =wait.until(EC.text_to_be_present_in_element_value((By.ID,'#id')))
    
    # 7.判断指定按钮可以点击
    • title =wait.until(EC.element_to_be_clickable((By.ID,'#id')))
    
    
    
    

    9.提交表单

    #导入方法:
    from selenium.webdriver.support.ui import Select
    
    #选中下拉框中元素
    select = Select(driver.find_element_by_name('name'))
    
    ##定位下拉框位置,3种选择方式
    
    #根据索引值来选中
    select.select_by_index(index)
    #根据文本信息来选中
    select.select_by_visible_text("text")
    #根据值来选中
    select.select_by_value(value)
    
    ##取消已经选择的元素
    select = Select(driver.find_element_by_id('id'))
    #全部取消
    select.deselect_all()
    
    #获取所有已经选中的元素
    select = Select(driver.find_element_by_xpath("xpath"))
    all_selected_options = select.all_selected_options
    #获取所有可选选项
    options = select.options
    
    ##提交表单
    #点击指定按钮,提交表单
    driverd .find_element_by_id("submit").click()
    #自动搜索距离表单最近的按钮,然后点击按钮,提交表单
    element.submit()
    
    

    参考资料:

    相关文章

      网友评论

          本文标题:【Python】04-selenium使用总结

          本文链接:https://www.haomeiwen.com/subject/rrbzjftx.html