[英]Cannot input text with Selenium
我想在帶有Selenium的框中輸入密碼,但它返回selenium.common.exceptions.WebDriverException: Message: element not interactable
我的python腳本:
from selenium import webdriver
browser = webdriver.Chrome(r'c:\chromedriver.exe')
url = 'https://creis.fang.com/'
browser.get(url)
browser.find_element_by_id('cnotp').send_keys('123456')
如果我運行腳本,則會出現上述錯誤。 但是,如果我在控制台中逐行鍵入。 那就沒有錯誤。
我該怎么辦?
謝謝。
也許您應該嘗試“循序漸進”。 首先選擇元素,清除其值,然后執行send_key的操作...
element = browser.find_element_by_id('cnotp')
element.clear()
element.send_keys('123456')
希望能幫助到你 !
網址更改時,總是要哭泣。
from selenium import webdriver
driver = webdriver.Chrome() # Change
driver.get('https://creis.fang.com/')
element = WebDriverWait(driver, 60).until(
EC.presence_of_element_located((By.ID, "cnotp"))
)
element.clear()
element.send_keys("123456")
如果不起作用,請使用js_executor
element = WebDriverWait(driver, 60).until(
EC.presence_of_element_located((By.ID, "cnotp"))
)
driver.execute_script("document.getElementById('cnotp').click()")
driver.execute_script("arguments[0].setAttribute('value', '123456')", element);
要使用Selenium在密碼字段中發送字符序列 ,您必須為element_to_be_clickable()
誘導WebDriverWait ,並且可以使用以下任一解決方案:
使用CSS_SELECTOR
:
driver.get("https://creis.fang.com/") WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "input.loginipt.fl#cnotp"))).click() WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "input.loginipt.fl#cnpassword"))).send_keys("Chan")
使用XPATH
:
driver.get("https://creis.fang.com/") WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//input[@class='loginipt fl' and @id='cnotp']"))).click() WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//input[@class='loginipt fl' and @id='cnpassword']"))).send_keys("Chan")
注意 :您必須添加以下導入:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC
瀏覽器快照:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.