webdriver 提供了 execute_script() 接口用来调用 js 代码。
一、通过 JavaScript 来隐藏页面上的元素
1、新建html文件,复制粘贴以下代码
1 <html> 2 <head> 3 <meta http-equiv="content-type" content="text/html;charset=utf-8" /> 4 <title>js</title> 5 <script type="text/javascript" async="" 6 src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 7 <link href="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.min.css" 8 rel="stylesheet" /> 9 <script type="text/javascript"> 10 $(document).ready(function(){ 11 $('#tooltip').tooltip({"placement": "right"}); 12 }); 13 </script> 14 </head> 15 <body> 16 <h3>js</h3> 17 <div class="row-fluid"> 18 <div class="span6 well"> 19 <a id="tooltip" href="#" data-toggle="tooltip" title=" selenium-webdriver(python)">hover to see 20 tooltip</a> 21 <a class="btn">Button</a> 22 </div> 23 </div> 24 </body> 25 <script src="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script> 26 </html>
2、脚本实现隐藏页面元素
1 #coding=utf-8 2 3 ''' 4 execute_script(script, *args)在当前窗口/框架 同步执行 javaScript 5 script:JavaScript 的执行。 6 *args:适用任何 JavaScript 脚本。 7 ''' 8 from selenium import webdriver 9 import time,os 10 11 driver = webdriver.Firefox() 12 file_path = 'file:///' + os.path.abspath('js.html') 13 driver.get(file_path) 14 15 16 17 #######通过 JS 隐藏选中的元素##########第一种方法: 18 #隐藏文字信息 19 driver.execute_script('$("#tooltip").fadeOut();') 20 time.sleep(5) 21 22 23 #隐藏按钮: 24 button = driver.find_element_by_class_name('btn') 25 driver.execute_script('$(arguments[0]).fadeOut()',button) 26 time.sleep(5) 27 driver.quit()