• selenium


    seleinum中的方法汇总:

    •  提供键盘支持
    from selenium.webdriver.common.keys import Keys
    
    input.send_keys( Keys.RETURN )
    
    # Keys.RETURN,
     Keys.F1,
     Keys.ALT,
     Keys.ARROW_DOWN 下方向键
    • 填写表格
    from selenium.webdriver.support.ui import Select
    # 导入类
    select = Select(driver.find_element_by_name('name'))
    # 将select元素实例化成对象,并选择我们要选择的option
    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()
    
    #获得所有选项
    options = select.options
    • 拖放
    element = driver.find_element_by_name("source")
    target = driver.find_element_by_name("target")
    
    from selenium.webdriver import ActionChains
    action_chains = ActionChains(driver)
    action_chains.drag_and_drop(element, target).perform()
    • 在不同窗口和框架之间移动
    # switch_to_window() 里面填入窗口名字
    driver.switch_to_window("windowName")
    # 可以打开他的javascript或者连接代码获取窗口名字
    <a href="somewhere.html" target="windowName">Click here to open a new window</a>
    # 窗口句柄: 可以遍历或者拿到某一个窗口
    for handle in driver.window_handlers:
        driver.switch_to_window(handle)
    
    
    # 可以切换到frame中
    driver.switch_to_frame('framename')
    • 弹出对话框:
    alert = driver.switch_to_alert()
    • 访问浏览器历史记录
    driver.get("http://www.example.com")
    # 前进或后退
    driver.forward()
    driver.back()
    • 操作cookie
    # 获取cookie
    cookies = driver.get_cookies()
    # 设置cookie
    driver.add_cookie( {'name':'foo'} )
    • 等待页面加载完成
    # webdriverwait 结合 ExpectedCondition 实现显示等待
    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.Firefox()
    driver.get("http://somedomain/url_that_delays_loading")
    try:
        element = WebDriverWait(driver, 10).until(
            EC.presence_of_element_located((By.ID, "myDynamicElement"))
        )
    finally:
        driver.quit()
    • 常用actionchains
      • click(on_element=None)  : on_element : the element to be click, if not, click on current mouse position
      • click_and_hold( on_element=None ) : 点击并按住
      • context_click( on_click=None )
      • move_to_element(to_element)
      • move_by_offset(xoffsetyoffset)
      • move_to_element_with_offset(to_elementxoffsetyoffset)
      • perform() : perform all stored actions
      • send_keys() : send keys to current focused element
      • send_keys_to_element(ele,  keys)   
  • 相关阅读:
    简单工厂、工厂方法和抽象工厂的学习笔记
    单一职责原则,开-闭原则,依赖倒置原则
    我对面向对象设计的理解——Java接口和Java抽象类
    高可用与负载均衡的区别
    应用交付、负载均衡(Load balancing)、高可用、F5
    四种常见的 POST 提交数据方式
    Git fetch和git pull的区别
    苹果Mac OS X显示隐藏文件的方法
    Appium教程---Client/Server Architecture
    UNIX网络编程——使用线程的TCP回射服务器程序
  • 原文地址:https://www.cnblogs.com/zhangjian0092/p/selenium.html
Copyright © 2020-2023  润新知