第一次自动化测试,对中国天气网进行一系列的自动化测试
http://www.weather.com.cn/
总结:
1.在第三方登录的时候时候,需要先定位iframe,否则不能直接进行操作,第三方登录用账号密码登录会拦截,所以只能选择点击头像登录了,挺憨憨的。
2.用JavaScript对标签属性进行删除也是一点,但还是容易解决的,用execute_script()函数还是比较方便的。
import time
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
driver = webdriver.Chrome(r"E:\python37\chromedriver.exe")
driver.get("http://www.weather.com.cn/")
time.sleep(5)
driver.maximize_window() #窗口最大化
driver.find_element_by_class_name("login-icon").click() #找到登录按钮并登录
time.sleep(2)
driver.find_element_by_class_name("third-party-qq").click() #通过QQ第三方登录
time.sleep(2)
windows = driver.window_handles #查询窗口数
driver.switch_to.window(windows[1]) #选中第二个新窗口
time.sleep(2)
driver.switch_to.frame("ptlogin_iframe") #选择第三方登录窗口地frame frame要先查找才能定位
time.sleep(3)
driver.find_element_by_class_name("img_out_focus").click() #通过QQ登录情况先点击头像登录
time.sleep(30) #等待时间加长,因为第三方登录该网站后响应时间过长,若等待时间短暂地话,会找不到页面
windows = driver.window_handles
driver.switch_to.window(windows[1])
driver.refresh() #页面刷新
url = driver.current_url #查找当前页面地网址
print(url)
move_action = driver.find_element_by_class_name("top_list_title") #定位到头像悬浮
ActionChains(driver).move_to_element(move_action).perform()
time.sleep(5)
driver.find_element_by_link_text("个人中心").click() #通过文本查找个人中心进行点击
time.sleep(3)
driver.find_element_by_link_text("头像设置").click() #点击头像设置
time.sleep(3)
input_file = driver.find_element_by_id("upload-file") #上传照片
time.sleep(2)
input_file.send_keys(r"C:\Users\12051\Pictures\Saved Pictures\timg.jpg") #通过图片在网址本地上的地址查找
time.sleep(1)
driver.find_element_by_id("btnCrop").click() #点击保存按钮
time.sleep(3)
driver.find_element_by_link_text("个人资料").click() #点击个人资料
time.sleep(3)
driver.find_element_by_class_name("birChoose-city").click() #选择城市
time.sleep(3)
alter_action = driver.switch_to.alert #对警告弹窗进行处理进行处理
time.sleep(1)
alter_action.accept() #弹窗确定
change_link = driver.find_element_by_xpath("/html/body/div[1]/div/div[1]/a[6]") #找到元素
driver.execute_script('arguments[0].removeAttribute(\"target\")',change_link) #删除标签的target属性,防止在新窗口打开该链接页面
change_link.click()
time.sleep(3)
driver.close()
比较low,刚学