Python Selenium Element很难处理

时间:2019-02-23 00:30:21

标签: javascript python selenium element

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的要求重新发布。

1 个答案:

答案 0 :(得分:1)

我认为问题是当webdriver未加载页面时python脚本完成。WebDriverWait可以解决您的问题。我将举一个使用方法的例子。

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

上面的代码将等待1000秒,直到显示textarea#text