我正在使用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"。所有帮助表示赞赏。
答案 0 :(得分:0)
我不确定我是否理解正确。
是否要使用相同的文本填充所有具有相同ID的元素?
您可以尝试这样做:
elements = driver.find_elements_by_id('your id here')
for element in elements:
element.send_keys('---')
答案 1 :(得分:0)
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);