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

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

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

    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的使用。

    隐藏之后的效果如图:

  • 相关阅读:
    oracleI基础入门(6)sql语句Substring Crazy
    oracleI基础入门(7)table约束 Crazy
    oracleI基础入门(7)table视图 Crazy
    SQL附加分离数据库(命令)
    双截棍 C语言版 (超搞笑)
    AspNetPage分页(repeater),自己做的例子基本代码
    记录
    RegularExpressionValidator控件中正则表达式用法
    20 个经典的 Ajax + CSS 表格
    GridView各个事件中,怎样获取主键值
  • 原文地址:https://www.cnblogs.com/zhang-jun-jie/p/9313851.html
Copyright © 2011-2022 走看看