当输入框的值为前端通过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) #模拟删除操作

 

posted @ 2021-12-26 17:41  水玄雨林  阅读(255)  评论(0编辑  收藏  举报