首页 > 代码库 > 8. 执行js

8. 执行js

webdriver提供了execute_script()接口来帮助我们完成这一工作。在实际的测试脚本中,以下两种场景是经常遇到的

  • 在页面直接执行一段js
  • 在某个已经定位的元素的上执行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="watir-webdriver better than selenium-webdriver">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.python

# -*- coding: utf-8 -*- from selenium import webdriverfrom time import sleepimport osif ‘HTTP_PROXY‘in os.environ: del os.environ[‘HTTP_PROXY‘]dr = webdriver.Chrome()file_path = ‘file:///‘ + os.path.abspath(‘js.html‘)dr.get(file_path)# 在页面上直接执行jsdr.execute_script(‘$("#tooltip").fadeOut();‘)sleep(1)# 在已经定位的元素上执行jsbutton = dr.find_element_by_class_name(‘btn‘)dr.execute_script(‘$(arguments[0]).fadeOut()‘, button)sleep(1)dr.quit()