1. 程式人生 > >C#系統實戰(3):獲取提示資訊:“不能為空”

C#系統實戰(3):獲取提示資訊:“不能為空”

當輸入的教師資訊不完整時,某些必填項沒有填,那麼將會出現提示“不能為空”,下面我們用自動化實現獲取這個文字資訊。

用.text來獲取:text2=driver.find_element_by_id('ContentPlaceHolder1_RequiredFieldValidator2').text

注:下面用到的login模組在上一節中已說明,此處不再贅述。


#coding =utf-8
from selenium import webdriver
import time
import csv,login,unittest
from selenium.webdriver.common.alert import Alert  #匯入Alert模組,這個必須全寫上
class Warning(unittest.TestCase):
    def setUp(self):
        self.driver=webdriver.Firefox()
        self.base_url="http://localhost:5151/exam5/Login.aspx"
    def test_warning(self):
        driver=self.driver
        driver.get(self.base_url)
        login.login(self)
        driver.find_element_by_id('TreeView1t1').click()
        #讀取檔案
        source=open('teacherinfo.csv','r')
        data=csv.reader(source)
        #
        for key in data:
            #清空輸入框,每次把輸入框清空一下,更加嚴謹
            driver.find_element_by_id('ContentPlaceHolder1_txtTeaNum').clear()  #key[]幾代表第幾列
            driver.find_element_by_id('ContentPlaceHolder1_txtTeaName').clear()
            driver.find_element_by_id('ContentPlaceHolder1_txtTeaPWD').clear()
            print(key,end=',')
            #輸入資訊
            driver.find_element_by_id('ContentPlaceHolder1_txtTeaNum').send_keys(key[0])  #key[]幾代表第幾列
            driver.find_element_by_id('ContentPlaceHolder1_txtTeaName').send_keys(key[1])
            driver.find_element_by_id('ContentPlaceHolder1_txtTeaPWD').send_keys(key[2])
            driver.find_element_by_id('ContentPlaceHolder1_btnAdd').click()
             #取出提示框中的資訊
            try:
                a=Alert(driver)  #例項化Alert物件
                print('  Alert:%s'%a.text) #列印警告資訊5
                a.accept() #接受警告(相當於點選“確定”按鈕)
                driver.get("http://localhost:5151/exam5/admin/teaInfoAdd.aspx")
            #取出文字框後的提示資訊:“不能為空”
            except:
                text1=driver.find_element_by_id('ContentPlaceHolder1_RequiredFieldValidator1').text#用.text方法
                print('  text1:%s'%text1,end=',')
                text2=driver.find_element_by_id('ContentPlaceHolder1_RequiredFieldValidator2').text
                print('  text2:%s'%text2,end=',')
                text3=driver.find_element_by_id('ContentPlaceHolder1_RequiredFieldValidator3').text
                print('  text3:%s'%text3)
                
                
        source.close()
    def tearDown(self):  #關閉火狐
        self.driver.quit()
          
if __name__=="__main__":
    unittest.main()
        

                

相關推薦

C#系統實戰3獲取提示資訊“不能

當輸入的教師資訊不完整時,某些必填項沒有填,那麼將會出現提示“不能為空”,下面我們用自動化實現獲取這個文字資訊。用.text來獲取:text2=driver.find_element_by_id('ContentPlaceHolder1_RequiredFieldValida

吳裕雄 資料探勘與分析案例實戰3——python數值計算工具Numpy

# 匯入模組,並重命名為npimport numpy as np# 單個列表建立一維陣列arr1 = np.array([3,10,8,7,34,11,28,72])print('一維陣列:\n',arr1)# 一維陣列元素的獲取print(arr1[[2,3,5,7]]) # 巢狀元組建立二維陣列ar

《Linux學習並不難》文件系統管理3在Linux系統中創建文件系統

Linux xfs 文件系統 18.3 《Linux學習並不難》文件系統管理(3):在Linux系統中創建文件系統使用mkfs命令可以在分區上創建各種文件系統。mkfs命令本身並不執行建立文件系統的工作,而是去調用相關的程序來執行。這裏的文件系統是要指定的,比如xfs、ext4、ext3、vfa

知識點Mysql 索引優化實戰3

set ... 存在 over order by select 字節 sele .com 知識點:Mysql 索引原理完全手冊(1) 知識點:Mysql 索引原理完全手冊(2) 知識點:Mysql 索引優化實戰(3) 索引原理知識回顧 索引的性能分析和優化 通過 E

標號4python(就業階段)——Linux系統命令3——《vim編輯器》

三、編輯器vim >vim是一個功能強大、高度可定製的文字編輯器 <1>vim有三種基本工作模式: 1、命令模式 |命令|功能| |:----|:-----| |移動游標:|h: 左移 j: 下移 k: 上移 l: 右移| |M|游標移動到中間行 | |G

Deeplearning4j 實戰3簡介Nd4j中JavaCPP技術的應用

Deeplearning4j中張量的計算是由一個叫Nd4j的庫來完成的。它類似於python中的numpy,對高維向量的計算有比較好的支援。並且,為了提高運算的效能,很多計算任務是通過呼叫C++來完成的。具體來說,底層C++執行張量計算可以選擇的backend有:BLAS,OpenBLAS, Int

手把手教你做一個 C 語言編譯器3詞法分析器

本章我們要講解如何構建詞法分析器。 本系列: 什麼是詞法分析器 簡而言之,詞法分析器用於對原始碼字串做預處理,以減少語法分析器的複雜程度。 詞法分析器以原始碼字串為輸入,輸出為標記流(token stream),即一連串的標記,每個標記通常包括: (token,

C語言學習3陣列和指標

前言 上一篇部落格講了指標的用法,本章來講陣列。首先明確一點,陣列也是指標。 正文 1、陣列的幾種定義 int arr[5]; //不初始化 int arr[5] = {1,2,3,4,5}; //初始化 int arr[] = {1,2,3,

Python自然語言處理實戰3中文分詞技術

3.1、中文分詞簡介       在英文中,單詞本身就是“詞”的表達,一篇英文文章就是“單詞”加分隔符(空格)來表示的,而在漢語中,詞以字為基本單位的,但是一篇文章的語義表達卻仍然是以詞來劃分的。       自中文自動分詞被提出以來,歷經將近30年的探索,提出了很多方法,可

Electron實戰3選單視訊課程-李寧-專題視訊課程

Electron實戰(3):選單視訊課程—13人已學習 課程介紹        本課程是《Electron實戰》專題的第3個課程,本課程將幫助學員掌握Electron選單的使用方法。 本課程同時在Windows和Mac OS X平臺上操作和演示,同時也適合於Linux。不

Performanced C++ 經驗規則3你不知道的建構函式

前面兩篇,我們已經討論了C++建構函式中諸多細枝末節,但百密一疏,還有一些地方我們沒有考慮到。這一篇將對這些問題進行完結。 7、建構函式中的異常 當你在建構函式中寫程式碼的時候,你有沒有想過,如果建構函式中出現異常(別告訴我,你不拋異常。“必要”時系統會替你拋的),那會出現怎樣的情況?

c++ 函數3函數的返回值

pty code else 傳參 man span 錯誤 turn nbsp 函數的返回和函數的傳參恰恰相反,它是通過返回值來初始化外層的臨時變量。 不要返回函數內部對象的引用或指針 const string &manip(){ string ret;

Angular4 後臺管理系統搭建3 - wijmo5 flexgrid表格增刪改按鈕實現

-a bsp pack github 技術分享 lease 需要 lec 獲取 這章應該是wijmo5 flexgrid表格應用的最後一章,我們在三章內介紹了flexgrid表格組件的數據綁定,分頁器搭建,單元格模板控制和代碼重繪單元格控制。這章在介紹下對表格添加增刪改

ceph分布式存儲實戰3——ceph內部組件

就是 易懂 用戶數 數據丟失 php 陣列 用戶 移植 服務 一、RADOS(Reliable Autonomic Distributed Object Storage)1、rados的意思是 可靠、自動、分布式對象存儲(可靠的自主分布式對象存儲)2、rados的作用

通過C學Python3列表的常用方法

als 字符 return 變量 函數 rem span 通過 body 查看一個對象的id:id(待查對象)檢查一個數據的數據類型:type(數據或變量)查詢一個序列對象的元素個數:len(序列對象)查看一個類有哪些方法可用:dir(數據或變量或類)查看一個類或函數的使用

C指針3——指向指針的指針程序講解

結果 [1] \n size urn 第一個字符 cpp 指針數組 字符 4-1.c多維數組的定義 #include<stdio.h> int main(void) { int i,j; int data[2][3]={{1,2,3},{4,5,6}}

c理解提高3程式的記憶體四區模型和函式呼叫模型

程式的記憶體四區模型 記憶體四區的建立流程 流程說明 1、作業系統把物理硬碟程式碼load到記憶體 2、作業系統把c程式碼分成四個區 3、作業系統找到main函式入口執行   各區元素分析 函式呼叫模型 基本原理

深度學習之PyTorch實戰3——實戰手寫數字識別

  上一節,我們已經學會了基於PyTorch深度學習框架高效,快捷的搭建一個神經網路,並對模型進行訓練和對引數進行優化的方法,接下來讓我們牛刀小試,基於PyTorch框架使用神經網路來解決一個關於手寫數字識別的計算機視覺問題,評價我們搭建的模型的標準是它是否能準確的對手寫數字圖片進行識別。   

ServiceComb實戰 3comb實戰

ServiceComb實戰 (3)combDemo 步驟一、配置POM <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:x

Python學習3—— 基本資料型別一數字型別

基本資料型別一:數字型別 Python中最基本的資料型別之一就是int資料型別。 數字型別中有int、long 、float、complex。 python3.x之後已經不區分int和long,統一用int;python2.x還是區分的。 floa