所以,这个答案实际上是不同的。如果您正在使用的textbox 是为一家公司工作的,那么input textbox 可能有maxcharacter 限制。因此,在将 string 插入文本框之前,您可能需要检查 length。
对于这个例子,我使用了W3Schoolsinput textbox 并将我的环境变量插入到文本框中。在这个例子中,我导入了
import os as OperatingSystem
并且能够使用此命令获取我计算机的环境变量:
# Get our operating system's environment information
environment_info = str(OperatingSystem.environ)
从那里,我能够创建一个for-loop,它检查我们文本框的input text,并将输入文本的长度与我们的 environment_info 的长度进行比较。
主程序 - 供参考
from selenium import webdriver
from selenium.webdriver.chrome.webdriver import WebDriver as ChromeDriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait as DriverWait
from selenium.webdriver.support import expected_conditions as DriverConditions
from selenium.common.exceptions import WebDriverException
import os as OperatingSystem
import time
def get_chrome_driver():
"""This sets up our Chrome Driver and returns it as an object"""
path_to_chrome = "F:\Selenium_Drivers\Windows_Chrome85_Driver\chromedriver.exe"
chrome_options = webdriver.ChromeOptions()
# Browser is displayed in a custom window size
chrome_options.add_argument("window-size=1500,1000")
return webdriver.Chrome(executable_path = path_to_chrome,
options = chrome_options)
def wait_displayed(driver : ChromeDriver, xpath: str, int = 5):
try:
DriverWait(driver, int).until(
DriverConditions.presence_of_element_located(locator = (By.XPATH, xpath))
)
except:
raise WebDriverException(f'Timeout: Failed to find {xpath}')
# Get our operating system's environment information
environment_info = str(OperatingSystem.environ)
# Gets our Chrome driver and opens our site
chrome_driver = get_chrome_driver()
chrome_driver.get("https://www.w3schools.com/tags/tryit.asp?filename=tryhtml_input_test")
wait_displayed(chrome_driver, "//iframe[@id='iframeResult']")
wait_displayed(chrome_driver, "//div[contains(@class, 'CodeMirror-wrap')]")
# Go into our iFrame
iFrame_Element = chrome_driver.find_element(By.XPATH, "//iframe[@id='iframeResult']")
chrome_driver.switch_to.frame(iFrame_Element)
wait_displayed(chrome_driver, "//form[contains(@action, 'action_page')]")
wait_displayed(chrome_driver, "//input[@id='fname']")
wait_displayed(chrome_driver, "//input[@id='lname']")
# Enter our information into our input textbox
chrome_driver.find_element(By.XPATH, "//input[@id='fname']").clear()
chrome_driver.find_element(By.XPATH, "//input[@id='fname']").send_keys(environment_info)
# Check that our textbox has been populated fully
for counter in range(5):
if chrome_driver.find_element(By.XPATH, "//input[@id='fname']").get_attribute('value').__len__() != environment_info.__len__():
if counter == 4:
raise Exception("Failed to input data into our textbox")
else:
time.sleep(3)
print(f'Counter is: {counter}')
else:
print('Input Textbox populated successfully')
break
chrome_driver.quit()
chrome_driver.service.stop()