Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript将值输入到文本框中,而不是Python中的sendKeys()_Javascript_Python_Selenium - Fatal编程技术网

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

Javascript将值输入到文本框中,而不是Python中的sendKeys(),javascript,python,selenium,Javascript,Python,Selenium,我无法使用send_Keys()方法在我正在使用的当前网站中输入值。 所以我尝试使用javascript来输入值 在我决定使用javascript之前,我尝试了click()和clear()以及send_keys(),但令我失望的是,它没有起作用 我使用javascript代码在下面输入值 driver.execute_script("document.getElementById('CustCd').setAttribute('value', 'J590')") 它成功了 但是目前我的代码在

我无法使用
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-
您需要将变量作为变量而不是文字插入

value = 'J590'
driver.execute_script(f"document.getElementById('CustCd').setAttribute('value', '{value}')")

您需要将变量作为变量而不是文字插入

value = 'J590'
driver.execute_script(f"document.getElementById('CustCd').setAttribute('value', '{value}')")

首先,设置输入的当前值的正确方法是将
值指定给
属性。输入当前值没有属性(输入的默认值是
属性)

其余部分是一个通用问题的特例:“如何将Python变量的值输出到JavaScript代码中?”

如果输出的字符串不包含引号或反斜杠,则可以使用格式字符串并以引号输出值。(JavaScript有两种引号,
;您只需转义您在值周围使用的引号即可。)但是,这些假设往往会失效;只要字符串是
嗨,我是Joe
,这种方法就会失效

在一般情况下,为了确保正确转义和正确写入所有值,可以使用JSON:

导入json
值='J590'
执行脚本(f“document.getElementById('CustCd')。value={json.dumps(value)};”)
这将产生:

document.getElementById('CustCd').value=“J590”;

这样,您就不必担心引用和转义,因为有效的JSON就是有效的JavaScript(多亏了最近的JavaScript规范修复;在此之前,人们几乎从未遇到过边缘案例不兼容)

它还适用于数字,或者您可能希望传递给hte JavaScript代码的更复杂的内容。例如:

导入json
课堂示例:
foo=“”
巴=0
定义初始化(self、foo、bar):
self.foo=foo
self.bar=bar
value=Example(“我是一个带引号的字符串。”,42)
打印(f“const obj={json.dumps(value.\uu dict\uu)};”)
num=42
打印(f“const num={json.dumps(num)};”)
这将产生:

constobj={“foo”:“我是一个带引号的字符串。”,“bar”:42};
常数num=42;
obj
最终成为一个对象,因为初始值设定项是一个有效的JavaScript对象文本,其中包含来自
Example
对象的数据。类似地,
num
也是一个有效的JavaScript数字


首先,设置输入的当前值的正确方法是将
值指定给
属性。输入的当前值没有属性(“code>值”
属性是输入的默认值,)

其余部分是一个通用问题的特例:“如何将Python变量的值输出到JavaScript代码中?”

如果输出的字符串不包含引号或反斜杠,则可以使用格式字符串并以引号输出值。(JavaScript有两种引号,
;您只需转义在值周围使用的引号即可。)这些假设往往会失效,尽管;只要字符串是
Hi,我是Joe
,该方法就会中断

在一般情况下,为了确保正确转义和正确写入所有值,可以使用JSON:

导入json
值='J590'
执行脚本(f“document.getElementById('CustCd')。value={json.dumps(value)};”)
这将产生:

document.getElementById('CustCd').value=“J590”;

这样,您就不必担心引用和转义,因为有效的JSON就是有效的JavaScript(多亏了最近的JavaScript规范修复;在此之前,人们几乎从未遇到过边缘案例不兼容)

对于数字,或者您可能希望传递给hte JavaScript代码的更复杂的事情,它也很有用。例如:

导入json
课堂示例:
foo=“”
巴=0
定义初始化(self、foo、bar):
self.foo=foo
self.bar=bar
value=Example(“我是一个带引号的字符串。”,42)
打印(f“const obj={json.dumps(value.\uu dict\uu)};”)
num=42
打印(f“const num={json.dumps(num)};”)
这将产生:

constobj={“foo”:“我是一个带引号的字符串。”,“bar”:42};
常数num=42;
obj
最终成为一个对象,因为初始值设定项是一个有效的JavaScript对象文本,包含来自
示例
对象的数据。类似地,
num
是一个有效的JavaScript数字

使用Javascript输入变量值可以使用以下解决方案:

ccr_No = XLUtlis.readData(path, 'ccr', r, 1)
# ccr_No = J590
driver.execute_script("document.getElementById('CCRNo').value='" + ccr_No + "';")
例如,要在Google主页的搜索框中输入变量值:

  • 代码块:

    driver.get("https://www.google.com/")
    value = 'J590'
    driver.execute_script("document.getElementsByName('q')[0].value='" + value + "';")
    
  • 浏览器快照:

您可以在中找到相关的讨论

使用Javascript输入变量的值,可以使用以下解决方案:

ccr_No = XLUtlis.readData(path, 'ccr', r, 1)
# ccr_No = J590
driver.execute_script("document.getElementById('CCRNo').value='" + ccr_No + "';")
例如,输入值