因此,我已经去了一些在线论坛,但似乎没有任何效果。我正在尝试填写网站上的信用卡字段,但是当我使用时:
send_keys()
它扰乱数字。有什么方法可以像自动完成一样填充文本框吗?只需一次发送整个字符串:
iframe = driver.find_element_by_xpath("//iframe[@name='__privateStripeFrame4']")
driver.switch_to.frame(iframe)
credit_card_text.click()
credit_card_text.send_keys(credit_card)
driver.switch_to.default_content()
答案 0 :(得分:0)
您应该使用WebDriverWait
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
driver = webdriver.Firefox()
driver.get("http://example.com")
iframe = driver.find_element_by_xpath("//iframe[@name='__privateStripeFrame4']")
driver.switch_to.frame(iframe)
credit_card = 12345678754325
credit_card_text = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, '//*[@id="root"]/form/span[2]/label/input')))
credit_card_text.click()
credit_card_text.send_keys(credit_card)
如果它不起作用,您可以尝试使用execute_script
:
iframe = driver.find_element_by_xpath("//iframe[@name='__privateStripeFrame4']")
driver.switch_to.frame(iframe)
credit_card = 12345678754325
credit_card_text = driver.find_element_by_xpath(' //*[@id="root"]/form/span[2]/label/input')
driver.execute_script("arguments[0].setAttribute('value', '" + credit_card+"')", credit_card_text)
driver.switch_to.default_content()
希望这会有所帮助!