自動化測試-19.selenium定位之通過JS修改html寫入日期數據以及從文本讀取數據實戰


 1 # -*- coding: utf-8 -*-
 2 
 3 from selenium import webdriver  4 from selenium.webdriver.support.select import Select  5 from selenium.webdriver.common.action_chains import ActionChains  6 import time, SendKeys,os  7 import codecs    #用於文件讀寫,可以指定編碼格式
 8 
 9 # 進入ecshop登錄界面
10 d = webdriver.Firefox() 11 d.implicitly_wait(10)   # 全局等待時間(10秒)
12 d.maximize_window()     # 最大化窗口
13 #goods_sn = 'ECS0001102' #貨號
14 '''從數據文件中讀取測試數據''' 15 fp=codecs.open(os.getcwd()+'\\testData.txt','r',encoding='utf-8') #打開測試數據文檔 16 listData = [] #讀取測試數據放到list中 17 for item in fp.readlines(): 18 listData.append(item.rstrip()) #將取出的數據中換行符去掉 19 goods_name,goods_sn,cat_id,brand_id,suppliers_id=listData[0],listData[1],listData[2],listData[3],listData[4] #取到的值賦值給變量 20 fp.close() #關閉測試數據文檔 22 d.get(r'http://192.168.7.85:9000/ecshop3/admin') 23 time.sleep(3) 24 # 登錄ecshop 25 d.find_element_by_name('username').clear() 26 d.find_element_by_name('username').send_keys('admin') 27 d.find_element_by_name('password').clear() 28 d.find_element_by_name('password').send_keys('admin123456') 29 d.find_element_by_class_name('btn-a').click() 30 time.sleep(3) 31 # 切換到menu-frame 32 d.switch_to.frame(d.find_element_by_id('menu-frame')) 33 d.find_element_by_link_text('商品列表').click() 34 time.sleep(3) 35 36 d.switch_to.default_content() 37 d.switch_to.frame(d.find_element_by_id('main-frame')) 38 # d.find_element_by_link_text('添加新商品').click() 39 d.find_element_by_css_selector('.action-span.btn-add-goods>a').click() 40 time.sleep(3) 41 42 # 輸入商品信息 43 d.find_element_by_name('goods_name').clear() 44 d.find_element_by_name('goods_name').send_keys(goods_name) 45 d.find_element_by_name('goods_sn').clear() 46 d.find_element_by_name('goods_sn').send_keys(goods_sn) 47 Select(d.find_element_by_name('cat_id')).select_by_value(cat_id) 48 Select(d.find_element_by_name('brand_id')).select_by_visible_text(brand_id) 49 Select(d.find_element_by_name('suppliers_id')).select_by_visible_text(suppliers_id) 50 d.find_element_by_name('shop_price').clear() 51 d.find_element_by_name('shop_price').send_keys('5000') 52 d.find_element_by_name('volume_number[]').clear() 53 d.find_element_by_name('volume_number[]').send_keys('2') 54 d.find_element_by_name('volume_price[]').clear() 55 d.find_element_by_name('volume_price[]').send_keys('500') 56 d.find_element_by_name('virtual_sales').clear() 57 d.find_element_by_name('virtual_sales').send_keys('200') 58 d.find_element_by_id('is_promote').click() 59 60 # 運行JS腳本,刪除readonly(只讀)元素 61 js_start = 'document.getElementById("promote_start_date").removeAttribute("readonly")' 62 d.execute_script(js_start) 63 # 添加日期 64 d.find_element_by_id('promote_start_date').clear() 65 d.find_element_by_id('promote_start_date').send_keys('2018-06-01') 66 67 # js字符串 68 js_end = 'document.getElementById("promote_end_date").removeAttribute("readonly")' 69 # 執行js代碼 70 d.execute_script(js_end) 71 72 d.find_element_by_id('promote_end_date').clear() 73 d.find_element_by_id('promote_end_date').send_keys('2018-07-10') 74 # 上傳商品圖片 75 d.find_element_by_name('goods_img').click() #點擊瀏覽按鈕,打開選擇文件窗口 76 time.sleep(2) 77 SendKeys.SendKeys('C:\\Users\\Administrator\\Desktop\\123.png') 78 SendKeys.SendKeys('{ENTER}') 79 time.sleep(2) 80 81 d.find_element_by_css_selector('[class=\'button\'][value=\' 確定 \']').click() 82 time.sleep(5) 83 # 添加成功,回到商品列表界面 84 d.find_element_by_link_text('商品列表').click() 85 time.sleep(3) 86 # 獲取到自身后用..切換到父輩再到子輩 87 d.find_element_by_xpath('//span[contains(.,"'+goods_sn+'")]/../../td[12]/a[4]').click() 88 time.sleep(2) 89 # 切換到alert 90 js = d.switch_to.alert 91 # 確定 92 js.accept()

文本讀寫可參考此文


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM