Python 硒元素不难处理

Python Selenium Element is not intractable

Selenium WebDriver throws Exception in thread “main” 
org.openqa.selenium.ElementNotInteractableException 1 answer
How to resolve ElementNotInteractableException: Element is not visible 
in Selenium webdriver? 3 answers

这两个我都试过了,一无所获。

这个元素是输入元素,我需要给它发送特定的变量。

这是元素:

<input name="ds_nm" id="ds_nm" type="text" size="11" maxlength="40" 
value="ENTER NAME" title="ENTER NAME" class="grayInput" 
onfocus="text_clear()" onblur="text_hint()" 
onkeypress="if(event.keyCode == 13){SearchSano();}">

这是我到目前为止写的:

import time
import requests
from selenium.webdriver.common.action_chains import ActionChains
driver = webdriver.Chrome('./chromedriver')
from selenium.webdriver.remote.webelement import WebElement
from selenium.webdriver.support.ui import Select
driver = webdriver.Chrome('./chromedriver')
url="ICAN'T SHARE PERSONAL INFO, SORRY"
ConsumerName="MR.Anderson"

driver.get(url)
time.sleep(5)
CN_Insert = driver.find_element_by_css_selector('form#ds_nm')
hov = ActionChains(driver).move_to_element(CN_Insert)
hov.perform()
CN_Insert.clear()
CN_Insert.send_keys(ConsumerName)

我假设我需要通过单击占位符文本来激活输入菜单。但我无法正确编码。

备注

应 Kajal Kundu 的要求重新发布。

我认为问题是 python 脚本在 webdriver 未加载页面时完成。WebDriverWait 可以解决您的问题。我会举例说明使用方法。

WebDriverWait(driver, 1000).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "textarea#text")))

以上代码将等待 1000 秒,直到 textarea#text 可见。