demo
# coding utf-8
from selenium import webdriver
from selenium.webdriver.support import expected_conditions as EC
import time
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.common.by import By
import random
from PIL import Image # 图片处理
startTime = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
print("Start : %s" % (startTime))
def strToList(strx):
'''
字符串转数组
'''
if type(strx).__name__ == 'str':
# print(""type(strx))
data = map(str, strx)
return data
elif type(strx).__name__ == 'int':
# print(type(strx))
data = map(int, [strx])
return data
driver = webdriver.Chrome()
#url = "https://i.360.cn/login/"
url = "http://www.huaxialijian.com/html/"
driver.get(url)
print("首页延迟1秒")
time.sleep(1)
print("通过xpath点击登陆按钮")
driver.find_element_by_xpath("/html/body/ul/li[6]/a").click()
time.sleep(1)
print("通过EC模块验证登陆界面CLASS否载入")
#传入元素是否可见visibility_of_element_located#
# 找一个值,找到返回,找不到报错
locator = (By.CLASS_NAME, "container")
ch = WebDriverWait(driver, 1).until(EC.visibility_of_element_located(locator))
print("发现class:%s" % (ch))
# 输入用户名
str1 = "admin"
#str1 = 123456789
username = strToList(str1)
by_id_uname = driver.find_element_by_id("name")
for each in username:
time.sleep(0.2)
by_id_uname.send_keys(each)
# 输出用户名信息
uname = by_id_uname.get_attribute("value")
print("用户名类型:%s" % (type(str1)))
print("输入用户名:%s" % (uname))
print("用户名长度:%s" % len(uname))
# 输入密码
str2 = "admin"
#password = list(map(str, str2))
password = strToList(str2)
by_id_pwd = driver.find_element_by_id("pwd")
for each1 in password:
time.sleep(0.2)
by_id_pwd.send_keys(each1)
pswd = by_id_pwd.get_attribute("value")
# 输出密码信息
print("密码类型:%s" % (type(str2)))
print("输入密码:%s" % (pswd))
print("密码长度:%s" % len(pswd))
# 点击登陆
time.sleep(2)
by_class_name_btn = driver.find_element_by_class_name("button").click()
# 关闭实例
time.sleep(5)
endTime = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
print("End : %s" % (endTime))
driver.close()
前面导入的库,可以删减很多,懒得弄了