diff --git a/DrissionPage/driver_element.py b/DrissionPage/driver_element.py
index d4df95a..1940598 100644
--- a/DrissionPage/driver_element.py
+++ b/DrissionPage/driver_element.py
@@ -6,8 +6,7 @@
 """
 from os import sep
 from pathlib import Path
-from re import sub
-from time import time
+from time import time, perf_counter
 from typing import Union, List, Any, Tuple
 
 from selenium.common.exceptions import TimeoutException, JavascriptException, InvalidElementStateException
@@ -81,10 +80,10 @@ class DriverElement(DrissionElement):
     @property
     def text(self) -> str:
         """返回元素内所有文本"""
-        # return format_html(self.inner_ele.get_attribute('innerText'), False)
-        re_str = self.inner_ele.get_attribute('innerText')
-        re_str = sub(r'\n{2,}', '\n', re_str)
-        re_str = sub(r' {2,}', ' ', re_str)
+        re_str = self.inner_ele.text
+        # re_str = self.inner_ele.get_attribute('innerText')
+        # re_str = sub(r'\n{2,}', '\n', re_str)
+        # re_str = sub(r' {2,}', ' ', re_str)
 
         return format_html(re_str.strip('\n '), False)
 
@@ -282,7 +281,6 @@ class DriverElement(DrissionElement):
         """
         if not by_js:
             timeout = timeout if timeout is not None else self.page.timeout
-            from time import perf_counter
             t1 = perf_counter()
             while perf_counter() - t1 <= timeout:
                 try:
@@ -340,37 +338,35 @@ class DriverElement(DrissionElement):
         from selenium.webdriver import ActionChains
         ActionChains(self.page.driver).move_to_element_with_offset(self.inner_ele, x, y).context_click().perform()
 
-    def input(self, vals: Union[str, tuple], clear: bool = True) -> None:
-        """输入文本或组合键,可用于所有场合          \n
+    def input(self, vals: Union[str, tuple], clear: bool = True, insure_input: bool = True) -> None:
+        """输入文本或组合键,可用于所有场合                                              \n
         :param vals: 文本值或按键组合
         :param clear: 输入前是否清空文本框
+        :param insure_input: 确保输入正确,解决文本框有时输入失效的问题,不能用于输入组合键
         :return: None
         """
-        if clear:
-            self.clear()
-
-        self.inner_ele.send_keys(*vals)
-
-    def input_txt(self, txt: Union[str, tuple], clear: bool = True) -> None:
-        """专门用于输入文本框,解决文本框有时输入失效的问题       \n
-        :param txt: 文本值
-        :param clear: 输入前是否清空文本框
-        :return: None
-        """
-        enter = '\n' if txt.endswith('\n') else None
-        full_txt = txt if clear else f'{self.attr("value")}{txt}'
-        full_txt = full_txt.rstrip('\n')
-        from time import perf_counter
-
-        t1 = perf_counter()
-        while self.attr('value') != full_txt and perf_counter() - t1 > self.page.timeout:
+        if not insure_input:  # 普通输入
             if clear:
                 self.clear()
 
-            self.inner_ele.send_keys(txt)
+            self.inner_ele.send_keys(*vals)
 
-        if enter:
-            self.inner_ele.send_keys(enter)
+        else:  # 确保输入正确
+            if not isinstance(vals, str):
+                raise TypeError('insure_input参数生效时只能接收str数据。')
+            enter = '\n' if vals.endswith('\n') else None
+            full_txt = vals if clear else f'{self.attr("value")}{vals}'
+            full_txt = full_txt.rstrip('\n')
+
+            t1 = perf_counter()
+            while self.is_valid() and self.attr('value') != full_txt and perf_counter() - t1 <= self.page.timeout:
+                if clear:
+                    self.clear()
+
+                self.inner_ele.send_keys(vals)
+
+            if enter:
+                self.inner_ele.send_keys(enter)
 
     def run_script(self, script: str, *args) -> Any:
         """执行js代码,传入自己为第一个参数  \n