Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何解决在Instagram帖子上输入评论的问题_Python_Selenium_Xpath - Fatal编程技术网

Python 如何解决在Instagram帖子上输入评论的问题

Python 如何解决在Instagram帖子上输入评论的问题,python,selenium,xpath,Python,Selenium,Xpath,我只是一个编程新手。事实上,我试图在Instagram上自动发表评论。但是,如果我通过chrome/firefox运行下面的代码。它将包含差异错误 import time import random import re from selenium import webdriver from selenium.webdriver.common.keys import Keys from selenium.common.exceptions import NoSuchElementException

我只是一个编程新手。事实上,我试图在Instagram上自动发表评论。但是,如果我通过chrome/firefox运行下面的代码。它将包含差异错误

import time
import random
import re
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.common.exceptions import NoSuchElementException, StaleElementReferenceException
from selenium.webdriver.support import ui
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By

class Commenter:

    def __init__(self, username, password):
        self.username = username
        self.password = password
        self.driver = webdriver.Chrome()

    """closing browser"""
    def closeBrowser(self):
        self.driver.close()

    """login in to Instagram"""
    def login(self):
        driver = self.driver
        driver.get("https://www.instagram.com/")
        time.sleep(2)
        login_button = driver.find_element_by_xpath("//a[@href='/accounts/login/?source=auth_switcher']")
        login_button.click()
        time.sleep(2)
        user_name_elem = driver.find_element_by_xpath("//input[@name='username']")
        user_name_elem.clear()
        user_name_elem.send_keys(self.username)
        passworword_elem = driver.find_element_by_xpath("//input[@name='password']")
        passworword_elem.clear()
        passworword_elem.send_keys(self.password)
        passworword_elem.send_keys(Keys.RETURN)
        time.sleep(2)


    """write comment in text area using lambda function"""
    def write_comment(self, comment_text):
        try:
            comment_button = lambda: self.driver.find_element_by_link_text('Comment')
            comment_button().click()
        except NoSuchElementException:
            pass
##Add a comment…
        try:
            comment_box_elem = lambda: self.driver.find_element_by_xpath("//textarea[@aria-label='留言⋯⋯']")
            comment_box_elem().send_keys('')
            comment_box_elem().clear()
            for letter in comment_text:
                comment_box_elem().send_keys(letter)
                time.sleep((random.randint(1, 7) / 30))

            return comment_box_elem

        except StaleElementReferenceException and NoSuchElementException as e:
            print(e)
            return False

`com = Commenter(username='your login', password='your pw')
com.login()
time.sleep(3)
com.driver.get("https://www.instagram.com/p/ByhuUY3nmEJ/")
time.sleep(5)
com.write_comment("123123123123123dd")`
希望我能通过Firefox/chrome在帖子上发表评论

当我使用Firefox时,会出现“键盘Instagram无法访问元素”

当我使用Chrome时,它会发生“ selenium.common.exceptions.elementnotinteractiableexception:Message:element不可交互 (会话信息:chrome=75.0.3770.80) (驱动程序信息:chromedriver=74.0.3729.6(255758ECCF3D24491B8A1317AA76E1CE10D57E9参考/分支头/3729{29}),平台=Windows NT 6.1.7601 SP1 x8664)”


非常感谢您能为我提供解决方案。我已经搜索了相关的问题,但是我仍然没有找到解决这个问题的方法。谢谢你的帮助。

@DebanjanB,我认为这个问题不是重复的,如果可能的话,请删除重复的标签,因为我想发布一个答案。但要解决这个问题,您需要通过单击注释框使其可见(就像在现实生活中一样!)。在注释之前添加
time.sleep(5)
,然后添加
comment\u box\u elem()。在注释之后单击()
,我已经测试了上述方法是否有效。首先,您在同一时间讲了很多事情,键盘无法访问元素,ElementNotInteractitableException等。请将其限制为特定问题,并提供足够详细的信息,以确定适当的答案。避免同时问多个不同的问题。请参阅页面以获取澄清此问题的帮助。到现在为止,我已经为每个错误添加了一个重复的目标。如果你还不这样想,请告诉我。@DebanjanB,我认为这个问题不是重复的,如果可能的话,请删除重复的标签,因为我想发布一个答案。但要解决这个问题,您需要通过单击注释框使其可见(就像在现实生活中一样!)。在注释之前添加
time.sleep(5)
,然后添加
comment\u box\u elem()。在注释之后单击()
,我已经测试了上述方法是否有效。首先,您在同一时间讲了很多事情,键盘无法访问元素,ElementNotInteractitableException等。请将其限制为特定问题,并提供足够详细的信息,以确定适当的答案。避免同时问多个不同的问题。请参阅页面以获取澄清此问题的帮助。到现在为止,我已经为每个错误添加了一个重复的目标。如果你还有其他想法,请告诉我。