当输入框的值为前端通过js获取接口返回值动态给值,无法获在html标签中获取值,clear方法无法对输入框进行清空,提示Element is not currently interactable and may not be manipulated解决办法
最近做自动化的时候遇到页面输入框值为通过js获取接口返回值动态给值,无法获在html标签中获取值,也没办法使用clear方法情况
如图:
可以看到在HTML中是没有testing这个值的,这种情况如果想要输入前清空输入框中的值,使用selenium的clear方法,
会提示元素交互错误 invalid element state: Element is not currently interactable and may not be manipulated
暂时未找到解决无法通过selenium获取页面值的办法,但可以使用selenium进行剪切操作,之后使用python中可以获取到剪切板值的库,来实现获取input中值的操作
from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys#导入Keys库 import pyperclip #导入pyperclip库 input = driver.find_element(By.XPATH, '元素') #获取页面元素 input.send_Keys(Keys.CONTROL+"a") #模拟键盘全选 input.send_Keys(Keys.CONTROL+"c") #模拟键盘复制 vls = pyperclip.paste() #获取剪切板信息 print(vls)
清空输入框可以使用selenium的模拟键盘操作,将输入框中的值全选后删除
from selenium.Webdriver.common.keys import Keys #导入Keys库 input = driver.find_element(By.XPATH, '元素')#获取页面元素 input.send_keys(Keys.CONTROL + "a") #模拟Ctrl+A全选输入框中的值 input.send_keys(Keys.BACKSPACE) #模拟删除操作