Чтобы продемонстрировать передачу пользовательского ввода в поле ввода, когда имя пользователя не длиннее 20 символов, вот небольшая программа, которая выполняет следующие действия:
- Открывает URL https://www.google.com/
- Принимает пользовательский ввод, т.е.
name
- Подтверждает, если длина
name
меньше 5 символов. - , если true,
break
l oop и передать name
в главную страницу Google * окно поиска. - , если false,
continue
, чтобы снова запросить ввод пользователя.
Кодовый блок:
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import TimeoutException, WebDriverException
options = webdriver.ChromeOptions()
options.add_argument("start-maximized")
options.add_experimental_option("excludeSwitches", ["enable-automation"])
options.add_experimental_option('useAutomationExtension', False)
browser = webdriver.Chrome(options=options, executable_path=r'C:\WebDrivers\chromedriver.exe')
browser.get('https://www.google.com/')
while True:
name = str(input("Name please (max 5 charachters):"))
if len(name) > 5:
print("More than 5 charachters, please try again...")
continue
else:
break
WebDriverWait(browser, 20).until(EC.element_to_be_clickable((By.NAME, "q"))).send_keys(name)
Консольный вывод:
Name please (max 5 charachters):asdfgh
More than 5 charachters, please try again...
Name please (max 5 charachters):asdfghjkl
More than 5 charachters, please try again...
Name please (max 5 charachters):dev
Этот сценарий использования
Вы можете следовать аналогичным логикам c для пользовательского ввода длиной 20 символов и блока эффективного кода будет:
from selenium import webdriver
options = webdriver.ChromeOptions()
options.add_argument("start-maximized")
options.add_experimental_option("excludeSwitches", ["enable-automation"])
options.add_experimental_option('useAutomationExtension', False)
browser = webdriver.Chrome(options=options, executable_path=r'C:\WebDrivers\chromedriver.exe')
browser.get('https://www.google.com/')
while True:
name = str(input("Name please (max 20 charachters):"))
if len(name) > 20:
print("More than 20 charachters, please try again...")
continue
else:
break
browser.find_element_by_id('q').send_keys(name) #find input field with html id q and input the name