我想使用带有Selenium的Python提交评论。 Instagram网站中的评论框如下所示:
<textarea aria-label="Añade un comentario..." placeholder="Añade un comentario..." class="Ypffh" autocomplete="off" autocorrect="off" style="height: 18px;"></textarea>
我的Python代码:
coment_box = driver.find_elements_by_css_selector("form textarea")
coment_box.send_keys("Nice picture")
我尝试使用find_by_xpath("here_xpath")
,但它返回一个错误消息:AttributeError:'list'对象没有属性'send_keys'。
答案 0 :(得分:4)
我点击了两次。有效。我的意思是,您必须输入以下代码:(写两次单击行)
commentArea = driver.find_element_by_class_name('Ypffh')
commentArea.click()
sleep(5)
commentArea = driver.find_element_by_class_name('Ypffh')
commentArea.click()
commentArea.send_keys("YOUR COMMENT HERE...")
答案 1 :(得分:1)
尝试使用以下代码:
from selenium.webdriver.support import ui
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
comment_box = ui.WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "textarea.Ypffh")))
driver.execute_script("arguments[0].scrollIntoView(true);", comment_box)
comment_box.send_keys("Hello!")
希望对您有帮助!
答案 2 :(得分:1)
我自己遇到了这个问题,尽管这篇文章很老,但我找到了解决方案,所以如果有人被困在这里,这对我有用:
commentArea = driver.find_element_by_class_name('Ypffh')
commentArea.click()
commentArea = driver.find_element_by_class_name('Ypffh')
commentArea.send_keys("YOUR COMMENT HERE...")
我相信这与instagram在单击后如何更新textArea有关,但是此解决方案在搜索和大量试验和错误之后对我有用:)