1、通過使用 RFT-64(針對Windows 7 64位的系統)壓縮文件進行一鍵安裝;
1) 首先解壓RFT-64文件,找到setup.bat文件,以管理員身份運行進行一鍵安裝,根據提示完成安裝操作。
2) 安裝完成後,打開cmd窗口,輸入python查看環境變量是否配置成功,注:提示‘Python’不是內部或外部命令,說明Python的環境變量沒有配置成功,找到Python的安裝目錄,將安裝路徑配置到環境變量中
3) 打開cmd窗口,輸入pip list查看安裝過的插件,注:提示‘pip’不是內部或外部命令,說明環境變量沒有配置成功,將....\Python27\Scripts安裝路徑配置到環境變量中
4) 一切安裝完成後,寫一個簡單的事例,驗證一下驅動,查看是否能夠正常打開瀏覽器,以及對瀏覽器的頁面操作是否正常:
IE瀏覽器驅動:IEDriverServer.exe
Google瀏覽器驅動:chromedriver.exe
Fire Fox瀏覽器 geckodriver.exe 需要安裝對應的版本,否則無法正常啓動瀏覽器
注:(根據對應的版本選擇對應的驅動程序,這裏選用的是32位的)
但是我在使用Selenium WebDriver時,遇到了很多坑。這些問題,有的是因爲Selenium WebDriver與瀏覽器不同版本之間兼容性的問題,有的是Selenium WebDriver本身的bug,當然也不乏自己對Selenium WebDriver某些功能理解不透徹。我花時間總結了一下,分享給大家,希望大家以後遇到問題可以避過這些坑,少走彎路。
2、 插入中文數據提示
FAIL UnicodeEncodeError: 'latin-1' codec can't encode characters in position 92-107: ordinal not in range(25
DataBaseLibrary插入中文亂碼的解決:修改D:\Python27\Lib\site-packages\DatabaseLibrary\connection_manager.py裏的connect_to_database函數,self._dbconnection = db_api_2.connect (db=dbName, user=dbUsername, passwd=dbPassword, host=dbHost, port=dbPort, charset="utf8"),增加charset設定
3、調用MySQL出現問題
ImportError: DLL load failed: \xd5\xd2\xb2\xbb\xb5\xbd\xd6\xb8\xb6\xa8\xb5\xc4\xc4\xa3\xbf\xe9\xa1\xa3
安裝MySQL-pythonMySQL_python-1.2.5-cp27-none-win_amd64.whl,打開cmd窗口,執行pip install MySQL_python-1.2.5-cp27-none-win_amd64.whl
4、調用cx_Oracle,報錯
ImportError: DLL load failed: \xd5\xd2\xb2\xbb\xb5\xbd\xd6\xb8\xb6\xa8\xb5\xc4\xc4\xa3\xbf\xe9\xa1\xa3
解決:RobotFramework在安裝cx_Oracle後,如果直接連接Oracle數據庫時,會出現“Dll load failed”錯誤。因爲Python在使用cx_Oracle類庫訪問oracle需要oci接口。當cx_Oracle找不到需要的oci的dll的時候就會報這個錯誤。
解決方法可以從oracle的客戶端找3個dll文件拷貝到cx_Oracle的安裝目錄D:\Python25\Lib\site-packages
oraociei11.dll
oraocci11.dll
oci.dll
資源訪問路徑: http://download.csdn.NET/download/benq0124/7094561
還是報錯
ImportError: DLL load failed: %1 \xb2\xbb\xca\xc7\xd3\xd0\xd0\xa7\xb5\xc4 Win32 \xd3\xa6\xd3\xc3\xb3\xcc\xd0\xf2\xa1\xa3
原因:oci.dll的版本一定要和cx_Oracle模塊的版本一致,不一定要和實際的Oracle的數據版本一致。
例如:cx_Oracle版本是:10g的,那麼oci.dll 也必須是10g的,至於實際連接的數據庫版本,只要版本比10g低就可以了,例如9i。
解決:網上找oci.dll 64位相對應版本的,拷貝到cx_Oracle的安裝目錄D:\Python27\Lib\site-packages
InterfaceError: Unable to acquire Oracle environment handle
我用的客戶端是instantclient,因爲cx_Oracle連接數據庫的時候要用到客戶端中的lib,而python是64位的,cx_Oracle自然是64位的,所以客戶端也應該用64位的。換成64位的instantclient,哈哈,搞掂!
64位的instantclient不好的地方就是無法用plsql developer了,當然可以在另一臺機器上配置32位的instantclient,然後遠程訪問。
依然報錯
InterfaceError: Unable to acquire Oracle environment handle 或者
ImportError: DLL load failed: %1 \xb2\xbb\xca\xc7\xd3\xd0\xd0\xa7\xb5\xc4 Win32 \xd3\xa6\xd3\xc3\xb3\xcc\xd0\xf2\xa1\xa3
就是要把instantclient它的安裝路徑配置到環境變量中,配置好以後重新啓動一下ride
5、用rf運行IEdriver的速度好慢,比如在輸入框輸入用戶名,一秒輸入一個字符。你們的是不是這樣子的?。如果是chromedriver就很快
解決辦法:把IEDriver從64位換成32位
6、Firefox啓動不起來,或者是啓動了,頁面是空白的,URL地址欄是空的
解決辦法:可能是Firefox版本過高,碰到此問題請降低Firefox版本,最好是45.0版本以下
7、怎麼制定robotframework的日誌路徑?
解決辦法:在run的arguments輸入這個“-l D:\RobotFramework\Robot_Report\log -r D:\RobotFramework\Robot_Report\report -o D:\RobotFramework\Robot_Report\output ”
8、robotframework的case跑完後,“Report”和“Log”按鈕是灰色的,點擊不了
解決辦法:啓動任務管理器(ctrl+alt+del),IE的進程,找IEDriverServer.exe結束掉,如果是chrome,就找到chromeDriverServer.exe。如下截圖是IE瀏覽器的。
9、數據備份
1) 通過excel對數據庫進行數據備份
通過執行以下語句插入excel數據備份表(針對MySQL)
LOAD DATA LOCAL INFILE "C:/Users/PC/Desktop/t_baike_word_value.csv" 所要插入數據的絕對路徑
INTO TABLE `t_baike_word_value` 所要插入數據的表
CHARACTER SET utf8 設置編碼格式
FIELDS TERMINATED BY "\t"
TERMINATED BY ","
OPTIONALLY ENCLOSED BY '"'
ESCAPED BY '\\'
LINES TERMINATED BY "\r\n"
2) 直接對數據庫進行操作
MySQL user_center user_center user_center
Oracle p95100 l234123 orcl
10、元素定位
1)元素定位的方法:findElement() 與 findElements()
a、findElement() 該方法返回基於指定查詢條件的webElement對象,或拋出不符合條件的異常 eg:driver.findElement(By.id("userID"));
11、jenkins集成執行
1)首先需要申請一臺遠程測試機;
2)然後在jenkins新建一個節點
3)然後在該節點下面新建測試工程
4)配置項目
命令執行:pybot -i P1 -l log.html -r report.html -o output.xml C:\jenkins\workspace\autoTest_portal\autoTest\GuaHao_Web
如果想學習更多相關Robotframework的知識的朋友可以加QQ羣進行溝通交流:selenium2+RFS自動化 232607095