我在python中制作了一个Instagram机器人,并且由于某些原因它过去一直工作到今天 . 当我将用户名和密码传递给send_keys()函数时,它告诉我键盘无法访问该元素 . 这是完整的错误消息:
回溯(最近一次调用最后一次):文件“main.py”,第28行,在login_insta(driver,usr,pwd)文件“/home/unknown/Documents/code/python/instats/login_profile.py”,第14行,在login_insta中usr_box.send_keys(用户名)文件“/home/unknown/.local/lib/python3.5/site-packages/selenium/webdriver/remote/webelement.py”,第352行,在send_keys'value'中:keys_to_typing (值)})文件“/home/unknown/.local/lib/python3.5/site-packages/selenium/webdriver/remote/webelement.py”,第501行,在_execute中返回self._parent.execute(命令, params)文件“/home/unknown/.local/lib/python3.5/site-packages/selenium/webdriver/remote/webdriver.py”,第311行,执行self.error_handler.check_response(response)文件“/ home /unknown/.local/lib/python3.5/site-packages/selenium/webdriver/remote/errorhandler.py“,第237行,在check_response中引发exception_class(message,screen,stacktrace)selenium.common.exceptions.ElementNotInteractableException:Message :键盘无法访问元素
这是不起作用的功能:
def login_insta(driver, username, password):
login = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, "/html/body/span/section/main/article/div[2]/div[2]/p/a")))
login.click()
usr_box = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, "/html/body/span/section/main/article/div[2]/div[1]/div/form/div[1]/div/div[1]/label")))
pwd_box = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, "/html/body/span/section/main/article/div[2]/div[1]/div/form/div[2]/div/div[1]/label")))
usr_box.send_keys(username)
pwd_box.send_keys(password)
login_button = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, "/html/body/span/section/main/article/div[2]/div[1]/div/form/span/button")))
login_button.click()
有人可以帮我吗?
1 回答
当页面代码发生微小变化时,像这样的长XPath很容易破坏 .
请尝试使用这些XPath: