吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1769|回复: 8
收起左侧

[求助] 怎样把python变量传递到javascript语句中起作用呢?

[复制链接]
kxf0211 发表于 2021-5-20 17:28
最近在用Python写一个Selenium的项目

主程序是python语言
python变量:
title = "ABCDEFG"


但是因为中间需要用到改变html里面元素的text属性,所以使用了js语句帮忙
element = wd.find_element_by_xpath('//*[@id="tinymce"]/p[1]/span')

wd.execute_script('arguments[0].innerText = (title)', element)
显然excute_script这样直接引用python变量是错误的。
python的变量 title在js语句里没法用。


请教各位大神如何解决?

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

fanvalen 发表于 2021-5-20 18:14
python 里模拟js 只需要将变量作为参数传过去

我相信肯定有地方调用js方法才运行js代码
我爱你H大 发表于 2021-5-20 18:27
abigmiu 发表于 2021-5-20 19:18
无敌小王 发表于 2021-5-20 21:25
js = 'arguments[0].innerText = ('+title+')'
wd.execute_script(js, element)
冥界3大法王 发表于 2021-5-20 22:46
还是delphi好啊,左手拈着python,右手拈着js
组件传参就是方便啊。
ReLoading 发表于 2021-5-21 00:35
字符串拼接传参,例如:
#4.通过javascript设置浏览器窗口的滚动条位置
x=100
y=450
js="window.scrollTo({},{});".format(x,y)
driver.execute_script(js)
 楼主| kxf0211 发表于 2021-5-21 19:11
谢谢!非常感谢各位大神鼎力相助
 楼主| kxf0211 发表于 2021-6-4 10:55
已解决:

参照了楼上几位提点的方法,之前试了几种都没成功(理论上行得通呀...)
后来发现是格式的问题 (wd.execute_script(arguments[0].innerText = 'ABCDEFG', element))#(之前没注意漏了引号)
已经完美解决问题:

title = "ABCDEFG"
js = f"arguments[0].innerText = '{title}'"  (关键在这一步,还是python的语法,变量赋值,形成字符串的功能,过程中print一下看下结果就行)
element = wd.find_element_by_xpath('//*[@id="tinymce"]/p[1]/span')
wd.execute_script(js, element)
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 02:44

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表