js代碼為什么要在python里運(yùn)行?可以直接在瀏覽器的開發(fā)者工具里運(yùn)行啊
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、微信小程序開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了遷安免費(fèi)建站歡迎大家使用!
當(dāng)然如果你強(qiáng)行要運(yùn)行的話,一定是有第三方庫(kù)什么能運(yùn)行的吧
調(diào)用js方法
execute_script(script, *args)
在當(dāng)前窗口/框架 同步執(zhí)行javaScript
腳本:JavaScript的執(zhí)行。
*參數(shù):適用任何JavaScript腳本。
使用:
driver.execute_script(‘document.title’)
使快播登陸用戶名輸入框標(biāo)紅顯示:
#coding=utf-8
from selenium import webdriver
import time
driver = webdriver.Firefox()
driver.get("")
#給用戶名的輸入框標(biāo)紅
js="var q=document.getElementById(\"user_name\");q.style.border=\"1px solid red\";"
#調(diào)用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的樣式,邊框?yàn)?個(gè)像素紅色
selenium + phantomjs 模擬點(diǎn)擊按鈕,或者另寫代碼實(shí)現(xiàn)js函數(shù)openVideo();
順著第一步再去解析新頁(yè)面,看看能否找到視頻的原始地址;
假設(shè)視頻的原始地址第二步找到了,在通過視頻的原始地址下載視頻就OK啦。
可用base64 模塊
import base64
a = "Hello world!"
b = base64.encodestring(a) #加密
c = base64.decodestring(b) #解密
print(a)
print(b)
print a == c
python取得javascript里面的值
復(fù)制代碼代碼如下:
import PyV8
with PyV8.JSContext() as env1:
env1.eval("""
var_i = 1;
var_f = 1.0;
var_s = "test";
var_b = true;
""")
vars = env1.locals
var_i = vars.var_i
print var_i
javascript取得python里面的值
復(fù)制代碼代碼如下:
import PyV8
with PyV8.JSContext() as env1:
env1.securityToken = "foo"
env1.locals.prop = 3
print int(env1.eval("prop"))
python和javascript里面的函數(shù)交互
python調(diào)用javascript里面的函數(shù)python調(diào)用func就可以使用js里面的function函數(shù)了
復(fù)制代碼代碼如下:
import PyV8
with PyV8.JSContext() as ctxt:
func = ctxt.eval("""
(function ()
{
function a()
{
return "abc";
}
return a();
})
""")
print func()
這樣也可以
復(fù)制代碼代碼如下:
import PyV8
with PyV8.JSContext() as ctxt:
func = ctxt.eval("""
function a()
{
return "abc";
}
function c()
{
return "abc";
}
""")
a = ctxt.locals.a
print a()
想調(diào)用后臺(tái)按鈕的事件,不用AJAX,可以使用一種變通的方法。 比如你一個(gè)前臺(tái)HTML控件 ID=ctl吧,在這里控件的onclick事件中綁定下面的函數(shù).同時(shí)假定已存在一個(gè)ID=btnTest的服務(wù)器控件(該控件有后臺(tái)Click事件) input id='ctl' type='button' onclick='callOtherBtnEvent();' / function callOtherBtnEvent(){ document.getElementById('%btnTest.ClientID%').click(); } 后臺(tái)public void btnTest_Click(object sender,EventArgs e) { Response.Write("scriptalert('調(diào)用了后臺(tái)事件')/script"); }