Javascript 将值输入文本框而不是 Python 中的 sendKeys()

我不能使用send_Keys()方法在我正在处理的当前网站中输入值。所以我试图使用 javascript 来输入值。


在我决定使用 javascript 之前,我尝试过,click()但令我失望的是,它没有用。clear()send_keys()


我使用 javascript 代码在下面输入值


driver.execute_script("document.getElementById('CustCd').setAttribute('value', 'J590')")

它奏效了。


但是目前我的代码在一个循环中并且值发生了变化,我该如何替换J590为获取值的变量?


这是我尝试过的代码


ccr_No = XLUtlis.readData(path, 'ccr', r, 1)

driver.execute_script("document.getElementById('CCRNo').value=ccr_No")

我知道它错了,任何帮助将不胜感激。我的 Javascript 很弱。


如果有人能够解决我的send_keys()错误,请注意一些旁白。该函数只接受我发送的第一个字符。例如,send_keys("J590")给予J,send_keys("J590-TE21")给予J-


至尊宝的传说
浏览 306回答 3
3回答

湖上湖

首先,设置输入当前值的正确方法是赋值给value属性。输入当前值没有属性(该value属性是输入的默认值,更多信息在此处)。剩下的是一个通用问题的特例:“如何将 Python 变量的值输出到 JavaScript 代码中?”如果您输出的字符串不包含引号或反斜杠,您可能会使用格式字符串并在Guy 显示的引号中输出值。(JavaScript 有两种引号,'和"; 你只需要转义你在值周围使用的那种。)但是,这些假设往往会失败;只要字符串是Hi, I'm Joe该方法中断。在一般情况下,为了确保正确转义并正确写入所有值,您可以使用 JSON:import jsonvalue = 'J590'driver.execute_script(f"document.getElementById('CustCd').value = {json.dumps(value)};")输出:document.getElementById('CustCd').value = "J590";现场示例这样,您不必担心引用和转义,因为有效的 JSON 是有效的 JavaScript,所以一切都为您处理(感谢最近的 JavaScript 规范修复;在此之前,存在人们几乎从未遇到过的边缘情况不兼容)。它对于数字或您可能希望传递给 hte JavaScript 代码的更复杂的东西也很有用。例如:import jsonclass Example:    foo = ""    bar = 0    def __init__(self, foo, bar):        self.foo = foo        self.bar = barvalue = Example("I'm a string with \"quotes\" in it.", 42)print(f"const obj = {json.dumps(value.__dict__)};")num = 42print(f"const num = {json.dumps(num)};")输出:const obj = {"foo": "I'm a string with \"quotes\" in it.", "bar": 42};const num = 42;obj最终成为一个对象,因为初始化程序是一个有效的 JavaScript 对象字面量,其中包含来自该Example对象的数据。同样,num是一个有效的 JavaScript 编号。

繁星点点滴滴

您需要将变量插入为变量,而不是文字value = 'J590'driver.execute_script(f"document.getElementById('CustCd').setAttribute('value', '{value}')")

月关宝盒

使用Javascript输入变量的值,您可以使用以下解决方案:ccr_No = XLUtlis.readData(path, 'ccr', r, 1)# ccr_No = J590driver.execute_script("document.getElementById('CCRNo').value='" + ccr_No + "';")例如,在Google Home Page的搜索框中输入变量的值:代码块:driver.get("https://www.google.com/")value = 'J590'driver.execute_script("document.getElementsByName('q')[0].value='" + value + "';")浏览器快照:
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python