![](/img/trans.png)
[英]Using the same Firefox Window to run multiple tests in Selenium WebDriver (Java)
[英]Selenium Firefox Webdriver in Java (run parameters)
我在Java中使用Selenium 2開發了一個使用Firefox引擎的測試單元。
部署機器沒有顯示,所以我使用Xvfb來創建它。 不幸的是,迫使我使用DISPLAY=:0 java -jar xxx.jar
啟動java。 我搜索了selenium javadoc並搜索了一些來源,但找不到java用來啟動Firefox的方法,女巫是我的目標,使用相同的方法使用java啟動firefox DISPLAY=:0 firefox ...
簡短說明:我必須做DISPLAY=:0 java -jar xxx.jar
但是我想讓java做DISPLAY=:XX firefox ...
而不是firefox ...
所以我也可以使用多個顯示器。
有什么建議?
我們實際上正在使用Xvfb和Selenium生產十幾個不斷運行的Firefox實例。 我們使用xvfb-run java -jar xxx.jar
選擇一個空閑顯示來運行該程序的所有firefox實例。 如果您關注截圖,則只能使用一個顯示器,並且仍有十幾個Firefox同時為不同的網站截取屏幕截圖
我們將它包裝在shell腳本下,這是透明的。
如果您確實希望每個selenium服務器都具有其顯示,則可以在配置中指定的瀏覽器字符串中覆蓋它。 只需創建一個執行xvfb-run /usr/bin/firefox
的shell腳本,並將此腳本傳遞給您的配置。 這應該夠了吧
有一個很好的測試
我們制作了一個bash文件來設置顯示然后啟動firefox。 我們把它放在firefox
名下的路徑中,所以selenium發現它使用which
來定位firefox二進制文件。
編寫一個'代理'程序,用所需的參數執行shell; 然后在您的代理程序中指向“webdriver.firefox.bin”屬性。 我不認為這可以是一個java程序,因為它是通過java命令執行的。 它可能必須是本機代碼,可能是C和類似“system(”DISPLAY =:XX firefox ...“);”
您應該查看本手冊,我前一段時間使用過這樣做:
http://www.alittlemadness.com/2008/03/05/running-selenium-headless/
TLDR;
$ export DISPLAY=:0
$ firefox
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.