zoukankan      html  css  js  c++  java
  • selenium—用js实现各种场景

    driver = webdriver.Chrome()
    
    driver.get('https://www.12306.cn/index/')
    
    # ----------------------------通过js代码修改元素的属性--------------------
    from_ele = driver.find_element_by_id("fromStationText")
    to_ele = driver.find_element_by_id('toStationText')
    time.sleep(3)
    #  js代码
    js = """
    var fro_ele = arguments[0];
    var to_ele = arguments[1];
    fro_ele.value = '上海';
    to_ele.value = '太原';
    return '操作完了';
    """
    # 执行js代码
    res = driver.execute_script(js, from_ele, to_ele)
    print('js代码执行之后的返回值:', res)
    
    # -----------------------通过js来定位元素-------------------------------------
    
    js = """
    var forEle =  document.getElementById('fromStationText');
    return forEle;
    """
    res = driver.execute_script(js)
    time.sleep(3)
    res.send_keys('长沙')
    print(res)
    
    # -----------------------理解arguments---------------------------
    # arguments:execute_script方法中传进入的参数,除了js代码,都会保存在arguments中
    js = """
    console.log(arguments)
    """
    driver.execute_script(js, 9999, 111, 222, 333, 44, 555)

     

     

    窗口滑动指定距离

    """
    window.scrollTo:滑动到相对于坐标原点的位置

    window.scrollBy:相对于当前位置进行滑动

    document.body.scrollHeight:获取当前窗口的可滑动的最大高度

    """

    driver = webdriver.Chrome()
    driver.get('https://www.xfz.cn')
    date_ele = driver.find_element_by_xpath('//div[@class="more-news"]')
    
    js = """
    window.scrollBy(0,500);
    """
    js1 = """
    window.scrollBy(0,document.body.scrollHeight);
    """

    附:窗口滑动到元素可见

    date_ele = driver.find_element_by_xpath('//div[@class="more-news"]')
    
    # 滑动窗口到元素可见位置,返回当前元素在页面的坐标位置
    res = date_ele.location_once_scrolled_into_view

     

    通过js打开新窗口

    # -----------selenium通过js打开一个新窗口-----------------------
    js = "window.open('https://www.baidu.com')"
    driver.execute_script(js)

    控制网页内嵌div中滚动条的滚动

     js = 'document.getElementsByClassName("el-table__body-wrapper is-scrolling-left")[1].scrollLeft=10000'
     self.driver.execute_script(js)

    注意加上下标,第一个为【0】,以此类推

    参考:https://blog.csdn.net/legend818/article/details/105248990

    改变只读属性

    document.getElementById('xxx').readOnly=false

    driver = webdriver.Chrome()
    driver.get('https://www.12306.cn/index/')
    date_ele = driver.find_element_by_id("train_date")
    #  js代码
    js = """
    var date_ele = arguments[0];
    date_ele.readOnly=false;
    date_ele.value ='2020-06-09'; 
    """
    # 执行js代码
    driver.execute_script(js, date_ele)

    直接给日期赋值

    driver.execute_script("document.getElementById('planDate').value='20181010';")


    参考:https://cloud.tencent.com/developer/article/1335981


  • 相关阅读:
    vscode_sync
    外国it视频教学文件
    关于登录状态,后台应该另外做一个接口来决定是否登录
    判断浏览器信息
    file控件预览
    githutb账号密码
    .net core 实践笔记(三)--封装底层
    .net core 实践笔记(二)--EF连接Azure Sql
    .net core 实践笔记(一)--开篇
    SQL引用DAL
  • 原文地址:https://www.cnblogs.com/erchun/p/12875705.html
Copyright © 2011-2022 走看看