天天看點

selenium IDE 新版的使用(代碼導出修改使用unite test)GoogleIDE的使用pycharm預制改selenium IDE生成的代碼,用unit test可執行火狐

selenium IDE的使用

  • Google
  • IDE的使用
  • pycharm預制
  • 改selenium IDE生成的代碼,用unit test可執行
  • 火狐

Google

先是要有插件,在谷歌應用商店進行搜尋 selenium 找到IDE的選項

selenium IDE 新版的使用(代碼導出修改使用unite test)GoogleIDE的使用pycharm預制改selenium IDE生成的代碼,用unit test可執行火狐

添加後點開(這裡的插件是個網頁模式,是以谷歌會有支援翻譯,推薦不要進行翻譯)界面應該是這樣⬇

IDE的使用

selenium IDE 新版的使用(代碼導出修改使用unite test)GoogleIDE的使用pycharm預制改selenium IDE生成的代碼,用unit test可執行火狐

其中可點選藍色分别是

建立一個新的測試

打開一個現有的項目

建立一個新項目

關閉seleniumIDE

根據流程,我們先熟悉從建立測試開始

點選後會有到讓你給你新的測試命名(不推薦中文和特殊符号)

selenium IDE 新版的使用(代碼導出修改使用unite test)GoogleIDE的使用pycharm預制改selenium IDE生成的代碼,用unit test可執行火狐

确認後該輪到url了(這裡直接引用百度)

selenium IDE 新版的使用(代碼導出修改使用unite test)GoogleIDE的使用pycharm預制改selenium IDE生成的代碼,用unit test可執行火狐

當我們點下去,IDE就開始了,會生成一個網頁來供我們操作,IDE會進行記錄如下↓

selenium IDE 新版的使用(代碼導出修改使用unite test)GoogleIDE的使用pycharm預制改selenium IDE生成的代碼,用unit test可執行火狐

出現箭頭指的那個selenium IDE is recording說明它開始了根據點選,我們ide的界面會多出操作

selenium IDE 新版的使用(代碼導出修改使用unite test)GoogleIDE的使用pycharm預制改selenium IDE生成的代碼,用unit test可執行火狐

可以看到,操作的增加,操作完畢後(可關閉浏覽器)點選那個停止錄像來完成本次錄制,然後ide會帶你給這個untitled起名字

selenium IDE 新版的使用(代碼導出修改使用unite test)GoogleIDE的使用pycharm預制改selenium IDE生成的代碼,用unit test可執行火狐

錄制可以調試也可以回放,這裡我們先試一下導出代碼

selenium IDE 新版的使用(代碼導出修改使用unite test)GoogleIDE的使用pycharm預制改selenium IDE生成的代碼,用unit test可執行火狐

黑圈的位置點一下,然後選擇Export(導出)會有語言選擇(這裡先隻有python的改動來直接實作ide導出腳本)

selenium IDE 新版的使用(代碼導出修改使用unite test)GoogleIDE的使用pycharm預制改selenium IDE生成的代碼,用unit test可執行火狐
selenium IDE 新版的使用(代碼導出修改使用unite test)GoogleIDE的使用pycharm預制改selenium IDE生成的代碼,用unit test可執行火狐

如上圖,這是ide的另存為,然後是名稱,是項目_測試.py 的命名規則(這裡路徑預設下載下傳,推薦直接儲存到你的python項目)

然後開始去pycharm改代碼

pycharm預制

selenium IDE 新版的使用(代碼導出修改使用unite test)GoogleIDE的使用pycharm預制改selenium IDE生成的代碼,用unit test可執行火狐

這裡是我的進入頁面,可以看到是沒有python的,這裡簡單配一下(直接導入到自己的項目的不用執行接下來的操作[前提是你有selenium,配一下也好])

如圖我們點選file,去選擇裡面的settings來到以下界面

selenium IDE 新版的使用(代碼導出修改使用unite test)GoogleIDE的使用pycharm預制改selenium IDE生成的代碼,用unit test可執行火狐

按照圖中打開project下拉框,選擇interpreter,将no interpreter改為你電腦能識别到的python檔案,也就是先show all來檢視

selenium IDE 新版的使用(代碼導出修改使用unite test)GoogleIDE的使用pycharm預制改selenium IDE生成的代碼,用unit test可執行火狐

選取後點選ok,如果你沒有如下圖的selenium,進行下載下傳

selenium IDE 新版的使用(代碼導出修改使用unite test)GoogleIDE的使用pycharm預制改selenium IDE生成的代碼,用unit test可執行火狐

沒有的話可以通過右側的加号來檢索安裝

selenium IDE 新版的使用(代碼導出修改使用unite test)GoogleIDE的使用pycharm預制改selenium IDE生成的代碼,用unit test可執行火狐

隻需install點一下(幾乎都可以)然後開始改代碼(改代碼運作是因為沒琢磨透)

改selenium IDE生成的代碼,用unit test可執行

如上,我們準備好了python、pycharm、selenium的導包

首先,我們要知道unit test裡面的重要方法有setUp、tearDown函數,它們是隻有self屬性的,其次架構使用需要在主函數有unittest.main()且主類繼承unittest.TestCase你的測試方法名要以test開頭(這裡我是在ide命名的時候直接将一條測試叫做test01,是以沒問題)

然後,上改寫過的代碼

import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import unittest

#上面是導包,除了unittest是需要加進去的,其他不用動,多餘的導包可以直接删除,有報錯的導報也是直接删除

class TestTest01(unittest.TestCase):#這裡增加了繼承unittest.TestCase方法
  def setUp(self):#這裡名字由setup_method改過來且删除參數method
    self.driver = webdriver.Chrome()
    self.vars = {}
  
  def tearDown(self):#這裡名字由teardown_method改過來且删除參數method
    self.driver.quit()
  
  def wait_for_window(self, timeout = 2):#這個函數不用管
    time.sleep(round(timeout / 1000))
    wh_now = self.driver.window_handles
    wh_then = self.vars["window_handles"]
    if len(wh_now) > len(wh_then):
      return set(wh_now).difference(set(wh_then)).pop()
  
  def test_test01(self):#你的測試方法
    self.driver.implicitly_wait(10)#增加個給視窗界面的等待
    self.driver.get("https://www.baidu.com/")
    self.driver.set_window_size(784, 728)
    self.driver.find_element(By.ID, "kw").click()
    self.driver.find_element(By.ID, "kw").send_keys("csdn")
    self.driver.find_element(By.ID, "kw").send_keys(Keys.ENTER)
    self.vars["window_handles"] = self.driver.window_handles
    self.driver.find_element(By.LINK_TEXT, "CSDN-專業IT技術社群").click()
    self.vars["win7012"] = self.wait_for_window(2000)
    self.vars["root"] = self.driver.current_window_handle
    self.driver.switch_to.window(self.vars["win7012"])
    #self.driver.switch_to.alert.dismiss()這裡沒搞懂,待解決
    self.driver.close()
    self.driver.switch_to.window(self.vars["root"])
    self.driver.close()

if __name__ == '__main__':#增加的主函數
    unittest.main()#重要的東西,保證你的運作
           

以上代碼可運作

火狐

和谷歌幾乎一緻(ide是一樣的)設定裡面找添加附件,然後搜尋到selenium ide添加,點開界面完全一緻

selenium IDE 新版的使用(代碼導出修改使用unite test)GoogleIDE的使用pycharm預制改selenium IDE生成的代碼,用unit test可執行火狐
selenium IDE 新版的使用(代碼導出修改使用unite test)GoogleIDE的使用pycharm預制改selenium IDE生成的代碼,用unit test可執行火狐
selenium IDE 新版的使用(代碼導出修改使用unite test)GoogleIDE的使用pycharm預制改selenium IDE生成的代碼,用unit test可執行火狐