Python Selenium 如何一次填写多个文本框
Python Selenium how to fill in many text boxes at once
我正在使用 selenium 和 python 3.6 编写 python 自动填充脚本。我想尽快填写文本输入框。现在我使用:
driver.execute_script("document.getElementById(--the elements ID--
-).value='%s'" % ---what I want script to fill the box with---)
我为要自动填充的网站的每个输入文本框重复这行代码。这很快,但是它一次填充每个文本框。我想用类似于 chrome 扩展 "autofill" 的不同值一次填充所有输入框。感谢所有帮助。
我不确定我是否理解正确。
是否要用相同的文本填充具有相同 ID 的所有元素?
您可以尝试这样做:
elements = driver.find_elements_by_id('your id here')
for element in elements:
element.send_keys('---')
1) 在本地准备一个 javascript 文件和你的自动脚本,在其中定义一个函数并接受一个对象,其中包含你要设置的所有字段值,在函数体中找到元素并设置值.
function autofill(values) {
document.querySelector("#username").value = values.username;
document.querySelector("#city").value = values.city;
...
}
2) 使用driver.executeScript() 将脚本节点插入头节点,并调用该函数。
var script = 'var script = document.createElement("script");' +
'script.src=file:///<script file absolute path>; ' +
'document.head.appendChild(script);' +
'autofill(arguments[0])';
driver.executeScript(script, fieldsValue);
我正在使用 selenium 和 python 3.6 编写 python 自动填充脚本。我想尽快填写文本输入框。现在我使用:
driver.execute_script("document.getElementById(--the elements ID--
-).value='%s'" % ---what I want script to fill the box with---)
我为要自动填充的网站的每个输入文本框重复这行代码。这很快,但是它一次填充每个文本框。我想用类似于 chrome 扩展 "autofill" 的不同值一次填充所有输入框。感谢所有帮助。
我不确定我是否理解正确。
是否要用相同的文本填充具有相同 ID 的所有元素?
您可以尝试这样做:
elements = driver.find_elements_by_id('your id here')
for element in elements:
element.send_keys('---')
1) 在本地准备一个 javascript 文件和你的自动脚本,在其中定义一个函数并接受一个对象,其中包含你要设置的所有字段值,在函数体中找到元素并设置值.
function autofill(values) {
document.querySelector("#username").value = values.username;
document.querySelector("#city").value = values.city;
...
}
2) 使用driver.executeScript() 将脚本节点插入头节点,并调用该函数。
var script = 'var script = document.createElement("script");' +
'script.src=file:///<script file absolute path>; ' +
'document.head.appendChild(script);' +
'autofill(arguments[0])';
driver.executeScript(script, fieldsValue);