ElementNotInteractableException: Message: element not interactable

各位Python和selenium专家。有个问题百思不得其解。请教,多谢!请详细告诉我错的原因。
请实际测试好了,把代码贴出来,谢谢,不要发理论,那个我看的很多了!不要说什么可能的原因,请测试好再说!网站https://www.finnciti.com/
我的初衷!能否不使用JavaScript代码,仅仅只使用python和selenium而解决呢,如果能解决,众谢!

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys  
driver = webdriver.Chrome()
driver.implicitly_wait(10)   #隐式等待
driver.get('https://www.finnciti.com/')    #请实际测试好了,把代码贴出来,谢谢,不要发理论,那个我看的很多了
search = driver.find_element(By.XPATH,"//*[@id='col_right']/form[1]/div[2]/input[2]")   # 定位输入框。
search.send_keys('5687854')
![img](https://img-mid.csdnimg.cn/release/static/image/mid/ask/119020022786138.png "#left")

试了多种方法最终结果一直报错如下。相同的代码但在其他找的测试网站上都是正常,唯独这个网站上面报错。

  raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.ElementNotInteractableException: Message: element not interactable
  (Session info: chrome=92.0.4515.107)
Stacktrace:
Backtrace:
    Ordinal0 [0x00562A33+2501171]
    Ordinal0 [0x004FD1C1+2085313]
    Ordinal0 [0x00401E70+1056368]
………………………………
………………………………

你这个问题在于两个文本框的切换,真正的输入框是第1个


from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys

option = webdriver.ChromeOptions()
option.add_experimental_option("detach", True)
driver = webdriver.Chrome(options=option)
driver.get('https://www.finnciti.com/')
d1 = driver.find_element(By.XPATH,"//*[@id='col_right']/form[1]/div[2]/input[2]")
d1.click()
d = driver.find_element(By.XPATH,"//*[@id='col_right']/form[1]/div[2]/input[1]")
d.send_keys("8999999")

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

driver = webdriver.Chrome()
driver.get('https://www.finnciti.com/')

# 使用显式等待,等待输入框可见和可用
wait = WebDriverWait(driver, 10)
search = wait.until(EC.element_to_be_clickable((By.XPATH,"//*[@id='col_right']/form[1]/div[2]/input[2]")))

# 使用JavaScript来输入元素
driver.execute_script("arguments[0].value = '5687854';", search)




回答部分参考、引用ChatGpt以便为您提供更准确的答案:

针对您在2012系统上无法打开端口80和443的问题,以下是一些可能的解决方案和建议:

  1. 检查防火墙设置:确保您的防火墙(如Windows防火墙)允许通过端口80和443的流量。您可以检查入站规则,确保相应的规则已启用并允许80和443端口的流量通过。
  2. 确认端口占用情况:使用命令行工具(如netstat)检查系统上是否有其他应用程序正在占用端口80和443。运行命令时,请确保以管理员身份运行命令提示符。
    netstat -ano | findstr :80
     netstat -ano | findstr :443
     
    如果命令没有返回结果,则表示端口80和443没有被占用。如果有进程占用了这些端口,您可以尝试终止相关的进程或更改相应的端口。
  3. 检查网络设备配置:如果您的服务器位于防火墙、路由器或代理服务器后面,请确保这些设备正确配置并允许流量通过端口80和443。
  4. 确认网络连接:确保您的服务器具有正常的网络连接。检查网络电缆、交换机端口和网络配置,确保服务器可以正常访问互联网。
  5. 检查Web服务器设置:如果您正在运行Web服务器(如Apache或Nginx),请确保其配置正确并监听端口80和443。检查配置文件中的监听端口设置以及SSL证书的有效性。

请注意,具体的解决方法可能因系统配置和网络环境而有所不同。如果以上方法仍无法解决问题,建议您向网络管理员、系统管理员或专业技术支持人员寻求进一步帮助,以便针对您的具体情况提供准确的支持。