我的代码:
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")
我的错误:
回溯(最近一次调用last):文件“C:\Users\weqwwg\Desktop\python\Game.py”,第77行,在driver.manage().timeouts()中。隐式等待(10,时间单位:秒);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)
更新部分代码
driver.find_element_by_id("simplebox-placeholder").click()
commentr = WebDriverWait(driver,10).until(EC.element_to_be_clickable( (By.ID, 'contenteditable-textarea') ))
commentr.click().send_keys("HELO")
driver.find_element_by_id("submit-button").click()
这是错误
回溯(最近调用最后):文件“C:\用户\桌面\python\Game.py”,第 74 行,在注释器.click().send_keys(“HELO”) 属性错误:“无类型”对象没有属性“send_keys”
要解决您眼前的问题,请使用
driver.implicitly_wait(10)
手册是有的
然而,你可能完全走错了方向。相反,请尝试使用< code>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上的评论框发送密钥。我删除了一些代码,我目前正在运行此代码。
正如我所怀疑的,您根本不需要< code>implicitly_wait函数。
>
我已经查看了YouTube页面。您的第一步是正确的-您正在定位“添加公共评论…”框并单击它。
我跳过了隐式_wait调用-它不会影响那里的任何内容。
在下一步,您将尝试将击键发送到您找到并单击的同一个框中。这是错误的。虽然它们看起来完全相同,但您单击的是idsimplebox-占位符
的元素,但一旦单击该元素就会变得不可见,并且具有idcontentedable-text Area
的相同外观元素已准备好获取您的输入。
用一种简单的方法,您应该找到这个元素并向其中发送击键:
commentr = driver.find_element_by_id("contenteditable-textarea")
commentr.click()
commentr.send_keys("HELO")
但是,当单击<code>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")
driver.find_element_by_id("submit-button").click()
总体而言,您的代码可能如下所示:
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()