zoukankan      html  css  js  c++  java
  • 调用JavaScript

    当webdriver 遇到没法完成的操作时,笔者可以考虑借用JavaScript 来完成,比下下面的例子,通过JavaScript 来隐藏页面上的元素。除了完成webdriver 无法完成的操作,如果你熟悉JavaScript的话,那么使用webdriver 执行JavaScript 是一件非常高效的事情。


    webdriver 提供了execute_script() 接口用来调用js 代码。

    html代码:

    <html>


    <head>
    <meta http-equiv="content-type" content="text/html;charset=utf-8" />
    <title>js</title>
    <script type="text/javascript" async=""src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
    <link href="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.min.css"rel="stylesheet" />
    <script type="text/javascript">
    $(document).ready(function(){
    $('#tooltip').tooltip({"placement": "right"});
    });
    </script>
    </head>


    <body>
           <h3>js</h3>
           <div class="row-fluid">
               <div class="span6 well">
                  <a id="tooltip" href="#" data-toggle="tooltip" title=" selenium-webdriver(python)">hover to see tooltip</a>
                  <a class="btn">Button</a>
           </div>
           </div>
    </body>
    <script src="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
    </html>

    保存js.html 文件并通过浏览器打开,效果如下图:

    执行js 一般有两种场景:

    • 一种是在页面上直接执行JS
    • 另一种是在某个已经定位的元素上执行JS

    代码示例:

    #coding=utf-8
    from selenium import webdriver
    import time,os


    driver = webdriver.Firefox()
    file_path = 'file:///' + os.path.abspath('js.html')
    driver.get(file_path)


    #######通过JS 隐藏选中的元素##########第一种方法:
    #隐藏文字信息
    driver.execute_script('$("#tooltip").fadeOut();')
    time.sleep(5)

    #隐藏按钮:
    button = driver.find_element_by_class_name('btn')
    driver.execute_script('$(arguments[0]).fadeOut()',button)
    time.sleep(5)

    driver.quit()

    execute_script(script, *args)
    在当前窗口/框架同步执行javaScript
    script:JavaScript 的执行。
    *args:适用任何JavaScript 脚本。
    关于JavaScript 代码的解析不在本书的范围之内,请读者通过其它资料学习理解JavaScript 的使用。
    隐藏之后的效果如下图:



  • 相关阅读:
    第四次实践作业
    第三次实践作业
    第二次实践作业
    第一次实践作业
    第02组 Beta版本演示
    第02组 Beta冲刺(4/4)
    大数据应用技术课程实践--选题与实践方案
    15 手写数字识别-小数据集
    14 深度学习-卷积
    13 垃圾邮件分类2
  • 原文地址:https://www.cnblogs.com/jshtest/p/6245719.html
Copyright © 2011-2022 走看看