Я хочу войти на несколько веб-сайтов, поэтому я пытаюсь реализовать код функции. Процедурный код ниже работает.
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import time
options = Options()
chrome_path = "T:/User/WebScrapingExample/Chromedriver/chromedriver.exe"
driver = webdriver.Chrome(executable_path=chrome_path,chrome_options=options)
driver.set_window_size(1280, 720)
driver.get("https://testwebsite/#/")
time.sleep(5)
user = driver.find_element_by_css_selector("input[type=text]")
password = driver.find_element_by_css_selector("input[type=password]")
user.send_keys("xxx")
password.send_keys("xxx")
driver.find_element_by_css_selector("button[type=submit]").click()
Этот код ниже не работает и возвращает мне следующую ошибку:
Файл "C: \ Users \ user \ AppData \ Local \ Continuum \ anaconda4 \ lib \"site-packages \ selenium \ webdriver \ remote \ webelement.py ", строка 478, в send_keys {'text':" ".join (keys_to_typing (value)),
Файл" C: \ Users \ langma\ AppData \ Local \ Continuum \ anaconda4 \ lib \ site-packages \ selenium \ webdriver \ common \ utils.py ", строка 150, в keys_to_typing для i в диапазоне (len (val)):
TypeError:объект типа 'WebElement' не имеет len ()
def login(link, username, password, userinput, passwordinput, submitbtn):
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
options = Options()
chrome_path = "T:/user/WebScrapingExample/Chromedriver/chromedriver.exe"
driver = webdriver.Chrome(executable_path=chrome_path,chrome_options=options)
driver.set_window_size(1280, 720)
driver.get(link)
time.sleep(5)
user = driver.find_element_by_css_selector(userinput)
password = driver.find_element_by_css_selector("input[type=password]")
user.send_keys(username)
password.send_keys(password)
driver.find_element_by_css_selector(submitbtn).click()
login(link = "https://testwebsite.com/#/", username = "xxx", password = "xxx", userinput = "input[type=text]", passwordinput = "input[type=password]", submitbtn = "button[type=submit]")
Я полагаю, импорт внутри функции - это тоже плохая практика, верно? Может кто-нибудь помочь мне запустить это?