javascript - Python Selenium 元素并不难处理

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

最佳答案

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

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

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

关于javascript - Python Selenium 元素并不难处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54836988/

相关文章:

ubuntu - 是否可以在没有 GUI 的情况下运行 selenium (Firefox) 网络驱动程序?

javascript - 基于 cucumber 标签切换 multiCapabilites 配置

python - 最后使用 Selenium 时,自动化 Chromium Webdriver 变得非常慢

javascript - 为什么 Node.js 使用 try/catch 时会收到针对我的代码的附加错误消息?

javascript - 为什么在 HTML Javascript 中使用 &lt;!-- 和//-->?

python - 将 pandas 中的数据框从迭代列表转换为适当的列和行

python - 为不同平台分发带有 C 模块的 Python 应用程序

javascript - 如何根据先前的下拉列表选择值填充下拉列表

javascript - 带有单选按钮和一个输入字段的表单。根据选择的单选按钮计算值

python - Django - <FieldFile : None> While Updating a row in Employee table