定製本身的firefox插件並在selenium中使用

首先搭建火狐插件開發環境:javascript

而後編寫一個簡單的firefox插件java

  • 先建立一個火狐插件工做空間,好比:d:\ff-addon-ws
  • 而後cd到"火狐sdk/bin"目錄下,再打開一個新的cmd窗口,而後把activate這個文件拖到cmd窗口中運行
  • 而後cd到火狐插件工做空間,
  • 建立一個插件項目並初始化
  • 項目建立完成後編寫插件具體實現,這裏直接拷貝一段簡單的代碼.具體作法是進入剛剛建立的插件項目目錄下的lib子文件夾,裏面有一個main.js,而後把下面這段代碼直接拷進去
    var buttons = require('sdk/ui/button/action');
    var tabs = require("sdk/tabs");
    
    var button = buttons.ActionButton({
      id: "mozilla-link",
      label: "Visit Mozilla",
      icon: {
        "16": "./icon-16.png",
        "32": "./icon-32.png",
        "64": "./icon-64.png"
      },
      onClick: handleClick
    });
    
    function handleClick(state) {
      tabs.open("https://www.mozilla.org/");
    }
    
  • 因爲這段代碼使用了3張圖片,因此在本文附加中下載下來而後放到插件目錄下的data子文件夾中
  • 完成上面幾個步驟以後就能夠測試這個插件了,輸入cfx run,如圖:
  • 點擊右邊火狐小圖標後會打開一個新的標籤頁轉到火狐主頁,到這裏一個最簡單的定製插件就完成啦!接下來就是打包成xpi,這樣就能夠安裝到火狐瀏覽中

插件編寫參考自:https://developer.mozilla.org/en-US/Add-ons/SDK/Tutorials/Getting_startedpython

最後一步就是在selenium中使用了,沒用過selenium的朋友能夠不看下面的web

		System.setProperty("webdriver.firefox.bin",
				"D:/Program Files (x86)/Mozilla Firefox/firefox.exe");
		TemporaryFilesystem.setTemporaryDirectory(new File(
				"D:/workspace/firefox/seleniumTemp/"));
		FirefoxProfile firefoxProfile = new FirefoxProfile(new File(
				"D:/workspace/firefox/profiles/test/"));
		File cookieWriter = new File("rwfile.xpi");
		try {
			firefoxProfile.addExtension(cookieWriter);
			//設置插件相關參數  參數格式爲   extensions.插件名.參數名
			// 設置插件版本
			firefoxProfile.setPreference("extensions.rwfile.currentVersion",
					"1.0");
			//默認狀況下經過selenium加載的插件是被火狐禁用的,設置下面幾個參數就能夠啓用了
			firefoxProfile.setPreference(
					"extensions.rwfile.console.enableSites", true);
			firefoxProfile.setPreference("extensions.rwfile.net.enableSites",
					true);
			firefoxProfile.setPreference(
					"extensions.rwfile.script.enableSites", true);
			firefoxProfile.setPreference(
					"extensions.rwfile.allPagesActivation", "on");
		} catch (IOException e) {
			e.printStackTrace();
		}
		WebDriver driver = new FirefoxDriver(firefoxProfile);
		driver.get("http://www.xhalj.com/");
	
相關文章
相關標籤/搜索