selenium IDE的使用
- IDE的使用
- pycharm預制
- 改selenium IDE生成的代碼,用unit test可執行
- 火狐
先是要有插件,在谷歌應用商店進行搜尋 selenium 找到IDE的選項
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAzNfRHLGZkRGZkRfJ3bs92YsYTMfVmepNHL4dmaNBTV65keRpHW4Z0MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zROBlL2IzM1EzNxkDMwEjMxkTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
添加後點開(這裡的插件是個網頁模式,是以谷歌會有支援翻譯,推薦不要進行翻譯)界面應該是這樣⬇
IDE的使用
其中可點選藍色分别是
建立一個新的測試
打開一個現有的項目
建立一個新項目
關閉seleniumIDE
根據流程,我們先熟悉從建立測試開始
點選後會有到讓你給你新的測試命名(不推薦中文和特殊符号)
确認後該輪到url了(這裡直接引用百度)
當我們點下去,IDE就開始了,會生成一個網頁來供我們操作,IDE會進行記錄如下↓
出現箭頭指的那個selenium IDE is recording說明它開始了根據點選,我們ide的界面會多出操作
可以看到,操作的增加,操作完畢後(可關閉浏覽器)點選那個停止錄像來完成本次錄制,然後ide會帶你給這個untitled起名字
錄制可以調試也可以回放,這裡我們先試一下導出代碼
黑圈的位置點一下,然後選擇Export(導出)會有語言選擇(這裡先隻有python的改動來直接實作ide導出腳本)
如上圖,這是ide的另存為,然後是名稱,是項目_測試.py 的命名規則(這裡路徑預設下載下傳,推薦直接儲存到你的python項目)
然後開始去pycharm改代碼
pycharm預制
這裡是我的進入頁面,可以看到是沒有python的,這裡簡單配一下(直接導入到自己的項目的不用執行接下來的操作[前提是你有selenium,配一下也好])
如圖我們點選file,去選擇裡面的settings來到以下界面
按照圖中打開project下拉框,選擇interpreter,将no interpreter改為你電腦能識别到的python檔案,也就是先show all來檢視
選取後點選ok,如果你沒有如下圖的selenium,進行下載下傳
沒有的話可以通過右側的加号來檢索安裝
隻需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添加,點開界面完全一緻