美文网首页
python3+selenium自动化测试-JS处理内嵌div滚

python3+selenium自动化测试-JS处理内嵌div滚

作者: C1R2 | 来源:发表于2020-09-05 16:36 被阅读0次

    (15)JS处理富文本上iframe的问题以及
    1、过js的方法处理富文本上iframe的问题

    富文本的编辑,因为这里编辑框有个iframe,所以需要先切换。
    用开发者工具查看是否有iframe,普通用法需要定位iframe,切换到iframe,然后输入内容;;
    js用法就是直接输入,不需要切换iframe。
    

    代码参考:

    body = "这里是通过js发的正文内容"
    
    # js处理iframe问题(js代码太长了,我分成两行了)
    js = 'document.getElementById("Editor_Edit_EditorBody_ifr")' \
         '.contentWindow.document.body.innerHTML="%s"' % body
    driver.execute_script(js)
    # 保存草稿
    driver.find_element_by_id("Editor_Edit_lkbDraft").click()
    
    

    2、内嵌滚动条
    1-内嵌div带有滚动条,div的属性:<div id="crtest" name="cr" class="scroll">
    2-通过id来定位,通过控制 scrollTop的值来控制滚动条高度
    3-通过控制scrollLeft的值来控制滚动条宽度
    4-js用class属性定位,返回的是一个list对象,这里取第一个就可以了。
    代码参考:

    from selenium import webdriver
    import time
    driver = webdriver.Chrome()
    driver.get(r"file:\C:\Users\cr\divtest.html")
    # time.sleep(5)
    # 纵向底部
    # js1 = 'document.getElementById("crtest").scrollTop=10000'
    # driver.execute_script(js1)
    # time.sleep(5)
    # 纵向顶部
    # js2 = 'document.getElementById("crtest").scrollTop=0'
    # driver.execute_script(js2)
    
    time.sleep(3)
    # 横向右侧
    js3 = 'document.getElementById("crtest").scrollLeft=10000'
    driver.execute_script(js3)
    time.sleep(3)
    # 横向左侧
    js4 = 'document.getElementById("crtest").scrollLeft=0'
    driver.execute_script(js4)
    
    

    以下存个html文件到本地:
    <!DOCTYPE html>
    <meta charset="UTF-8">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <html>
    <head>
    <style type="text/css">

    div.scroll
    {
    background-color:#afafaf;
    width:500px;
    height:100px;
    overflow:auto;
    }

    </style>
    </head>

    <body>
    <p>学习js处理内嵌div滚动条!!!</p>
    <p>这是一个内嵌的div滚动条</p>
    <div id="crtest" name="cr" class="scroll">大众汽车对于某些事实毫不掩饰,例如他们购买加倍的保费导致了电动汽车的订单激增。仅ID.3的订购量就超过了37,000辆,而不是最初计划的30,000辆。E-Up产品暂时售罄,无法再在德国订购E-Golf。尽管如此,德累斯顿Strom-Golf的生产将持续到2020年圣诞节。
    然而,这仅与电动汽车的热潮有关。大众发言人在接受外媒的询问时解释说:“我们仍在处理一小部分电动版高尔夫车型的订单,”他补充说,一开始听起来很疯狂,大部分生产(每周最多80辆)针对于美国,因为鉴于美国的电动汽车市场竞争异常激烈。但是,从战略上讲,这是完全合理的,“美国市场没有ID.3车型”。而为了对在美国提供的电动版车型,E-高尔夫应该弥合的等待时间,直到开始ID.4的生产。
    它将于2021年初在茨维考(Zwickau)建造,然后从2021年2月开始在美国销售,并将与特斯拉Model Y一起参与细分市场的竞争。最迟从2022年开始,ID.4在美国查塔努加的大众汽车工厂生产。
    由于同时需要在中国供应的产量也在增加,所以这家总部位于沃尔夫斯堡的公司将在其系列中拥有ID.4的电动车型-但是它将有四种配置可供选择:作为欧盟版本,作为美国版本和作为中国版本。但在中国市场包括两种版本车型,因为在中国的两家合资企业(上汽大众和一汽大众)将有两个不同的中国ID.4车型的后缀为“ Cross”和“ X”,主要区别在于前后包围的设计会有所不同。crdalglaljgjlajlgeajeiouneggqoguqebggajlajgoeougeglhgalihguaolngkhgahlghgcrdalglaljgjlajlgeajeiouneggqoguqebggajlajgoeougeglhgalihguaolngkhgahlghg</div>

    </body>
    </html>

    参考链接
    https://www.cnblogs.com/yoyoketang/p/6160682.html

    相关文章

      网友评论

          本文标题:python3+selenium自动化测试-JS处理内嵌div滚

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