Javascript 属性错误的问题:';WebDriver';对象没有属性';管理';

Javascript 属性错误的问题:';WebDriver';对象没有属性';管理';,javascript,python,selenium,selenium-webdriver,Javascript,Python,Selenium,Selenium Webdriver,我的代码: commentr = driver.find_element_by_id("simplebox-placeholder") commentr.click() driver.execute_script("document.getElementById('simplebox- placeholder').value = 'your comment text here';") driver.manage().timeouts().implicitlyWait(10, TimeUnit

我的代码:

commentr = driver.find_element_by_id("simplebox-placeholder")
commentr.click()

driver.execute_script("document.getElementById('simplebox- 
placeholder').value = 'your comment text here';")
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
commentr.send_keys("HELO")
我的错误:

回溯(最近一次调用上次):文件 “C:\Users\weqwwg\Desktop\python\Game.py”,第77行,在 driver.manage().timeouts().implicitlyWait(10,TimeUnit.SECONDS); AttributeError:“WebDriver”对象没有属性“manage”

我正试图发送一个键到youtube上的评论框。我删除了一些代码,我目前正在运行此代码

commentr = driver.find_element_by_id("simplebox-placeholder")
commentr.click()
driver.implicitly_wait(10)
commentr.send_keys("HELO")
这就是我得到的错误:

Traceback (most recent call last):
  File "C:\Users\Brandsdo\Desktop\python\Game.py", line 76, in <module>
    commentr.send_keys("HELO")
  File "C:\Users\Braasdasndo\AppData\Local\Programs\Python\Python37-32\lib\site-packages\selenium\webdriver\remote\webelement.py", line 479, in send_keys
    'value': keys_to_typing(value)})
  File "C:\Users\Brsadasdando\AppData\Local\Programs\Python\Python37-32\lib\site-packages\selenium\webdriver\remote\webelement.py", line 633, in _execute
    return self._parent.execute(command, params)
  File "C:\Users\Braasdasndo\AppData\Local\Programs\Python\Python37-32\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
    self.error_handler.check_response(response)
  File "C:\Users\Braasdando\AppData\Local\Programs\Python\Python37-32\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.ElementNotInteractableException: Message: element not interactable
  (Session info: chrome=73.0.3683.103)
  (Driver info: chromedriver=73.0.3683.68 (47787ec04b6e38e22703e856e101e840b65afe72),platform=Windows NT 10.0.17763 x86_64)
这是错误

回溯(最近一次呼叫最后一次): 文件“C:\Users\Desktop\python\Game.py”,第74行,在 commentr.click().发送密钥(“HELO”) AttributeError:“非类型”对象没有“发送密钥”属性

这是对一个原始问题的回答: 要解决眼前的问题,请使用

driver.implicitly_wait(10)
手册是

然而,你可能完全走错了方向。 相反,请尝试使用
WebDriverWait
模块

from selenium.webdriver.support.ui import WebDriverWait
例如:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

#...

footer = WebDriverWait(driver, 10).until(EC.visibility_of_element_located(
   (By.CSS_SELECTOR, ".b-footer__divider"))
)
更新问题的更新部分: 我正试图发送一个键到youtube上的评论框。我删除了一些代码,我目前正在运行此代码

commentr = driver.find_element_by_id("simplebox-placeholder")
commentr.click()
driver.implicitly_wait(10)
commentr.send_keys("HELO")
正如我所怀疑的,您根本不需要
隐式地\u wait
函数

  • 我已经浏览了YouTube页面。您的第一步是正确的-您正在找到“添加公共评论…”框并单击它

  • 我跳过了隐式的等待调用-它不会影响任何东西

  • 在下一步中,您将尝试将击键发送到找到并单击的同一个框中。这是错误的。虽然它们看起来完全相同,但您单击了id为
    simplebox占位符的元素,但一旦单击该元素,该元素将不可见,并且id为
    contenteditable textarea的外观相同的元素已准备好获取您的输入

在一种简单的方法中,您应该找到此元素并向其中发送击键:

commentr = driver.find_element_by_id("contenteditable-textarea")
commentr.click()
commentr.send_keys("HELO")
但当您被单击到
simplebox占位符
时,页面可能需要一些时间来执行必要的操作,并使
内容可编辑文本区域
可见并可单击。如果某个元素尚未准备就绪,以下方法将允许您避免异常:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

commentr = WebDriverWait(driver,10).until(EC.element_to_be_clickable( (By.ID, 'contenteditable-textarea') ))
commentr.click()
commentr.send_keys("HELO")
  • 最后,找到“评论”按钮并单击它以提交您的评论。在这里,您可以使用简化方法,因为“注释”按钮已经就绪:

总体而言,您的代码可能如下所示:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

driver.find_element_by_id("simplebox-placeholder").click()

commentr = WebDriverWait(driver,10).until(EC.element_to_be_clickable( (By.ID, 'contenteditable-textarea') ))

commentr.click()
commentr.send_keys("HELO")
driver.find_element_by_id("submit-button").click()

如果设置此超时,您的想法是什么?你能直接解释一下这个问题吗。我觉得你用错了方法。要解决眼前的问题,请使用
驱动程序。隐式等待(10)
。问题是您的
驱动程序.manage…
行是Java,但您是用python编写的。您需要使用Sergey指出的python等价物。我仍然有错误Sergey。我会更新帖子,告诉你发生了什么。我不明白。@justlookingforlove,你应该在更新帖子时给我发个评论。现在很清楚你想要完成什么,什么是问题。让我更新一下我的回答,你能解释一下吗。我真的很想知道我的错误,它成功了。才华横溢的谢尔盖。非常感谢你花时间和精力帮助我!!
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

driver.find_element_by_id("simplebox-placeholder").click()

commentr = WebDriverWait(driver,10).until(EC.element_to_be_clickable( (By.ID, 'contenteditable-textarea') ))

commentr.click()
commentr.send_keys("HELO")
driver.find_element_by_id("submit-button").click()