日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python之selenium调用js(execute_script)

發布時間:2024/10/12 python 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python之selenium调用js(execute_script) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉載: http://www.cnblogs.com/fnng/p/3230768.html

本節重點:

調用js方法

  • execute_script(script,?*args)

在當前窗口/框架?同步執行javaScript

腳本:JavaScript的執行。

*參數:適用任何JavaScript腳本。

使用:

driver.execute_script(‘document.title’)

?

?

使快播登陸用戶名輸入框標紅顯示

?

#coding=utf-8

from selenium import webdriver

import time

?

driver = webdriver.Firefox()

driver.get("http://passport.kuaibo.com/login/?referrer=http%3A%2F%2Fvod.kuaibo.com%2F%3Ft%3Dhome")

?

#給用戶名的輸入框標紅

js="var q=document.getElementById(\"user_name\");q.style.border=\"1px solid red\";"

#調用js

driver.execute_script(js)

time.sleep(3)

?

driver.find_element_by_id("user_name").send_keys("username")

driver.find_element_by_id("user_pwd").send_keys("password")

driver.find_element_by_id("dl_an_submit").click()

time.sleep(3)

?

driver.quit()

?

js解釋:

q=document.getElementById(\"user_name\")

元素q的id?為user_name

q.style.border=\"1px?solid?red\

元素q的樣式,邊框為1個像素紅色

隱藏元素

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>

(保持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()

?

?

js解釋:

arguments對象,它是調用對象的一個特殊屬性,用來引用Arguments對象。Arugments對象就像數組。

fadeOut()?方法使用淡出效果來隱藏被選元素,假如該元素是隱藏的。

?

PS:可以看到js?可以做selenium?做不到的事情,但是在什么樣的自動化的時候才能(或必須)要js幫忙,我還沒遇到過。不過js可以selenium完成更強大的功能,這是不容置疑的。

另外,之前沒有學過JS?,所以js代碼很陌生。如果有時間的話也建議各位同學補充這方面的知識。UI自動化離不開前端技術。

?

轉載于:https://www.cnblogs.com/BigFishFly/p/6580709.html

總結

以上是生活随笔為你收集整理的python之selenium调用js(execute_script)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。