You can try to set values using javascript:
orderBillingName = driver.find_element_by_id("order_billing_name")
driver.execute_script("arguments[0].value=arguments[1];", orderBillingName, "mytext")
You can set all directly with javascript:
driver.execute_script("document.querySelector('#order_billing_name').value='mytext';"\
"document.querySelector('.order_number_class').value='12323';"\
"document.querySelector('input#anotherinputid').value='anything';")
Example for a lot fields:
fields = {
"input#order_billing_name": "some text",
".order_number_class" : "some text",
"css selector" : "some text",
"css selector" : "some text",
"css selector" : "some text"
}
js = ""
for selector, value in fields.items():
js = js + "document.querySelector('" + selector + "').value='"+ value +"';"
driver.execute_script(js)
fill them faster? What is your exact usecase?find_element_by_xpathorsend_keys. Different problems. Also since your xpath includes ID, there's really no need for other atributes, so your xpath could be"//input[@id='order_billing_name']". But then if it's always ID, you could usefind_element_by_idinstead, which is faster. Although still, figure out first what takes time: finding or typing