我正在使用Selenium RC自動化一些瀏覽器操作,但我希望瀏覽器不可見。這可能嗎?怎麼樣?那麼Selenium Grid呢?我還可以隱藏Selenium RC窗口嗎?Selenium RC中可以隱藏瀏覽器嗎?
回答
有幾個選項:
從而使瀏覽器中打開一個完全不同的機器(或虛擬機),然後就可以通過VNC或遠程桌面連接連接到你可以使用硒網格如果你想看瀏覽器。此外,還有另一種選擇:如果您在該遠程服務器上運行Jenkins前臺進程,它可以在桌面上執行您的測試項目。
你可以在XVFB的Linux上運行Selenium'headless'。我從來沒有嘗試過這樣做,並懷疑這是非常值得的。 http://www.alittlemadness.com/2008/03/05/running-selenium-headless/
您可以將Selenium RC包裝在Windows服務中。 http://support.microsoft.com/kb/137890。除了後來版本的Windows的權限限制可能會阻止Selenium像Windows 2000那樣允許我們訪問桌面。
另一種選擇是使用WebDriver HTMLUnitDriver,它不會啓動「真實」瀏覽器。 http://code.google.com/p/webdriver/。此外還有一個PhantomJS選項以及一個可以使用的「無頭Chrome」。
當然,也可以選擇使用像SauceLabs這樣的服務,在這裏你可以讓你的測試在雲中運行。測試完成後,您可以觀看正在運行的視頻。
這裏是關於創建bat文件來安裝服務的說明: http://brantleytec.blogspot.com/2012/11/selenium-hub-and-node-as-windows-service.html – 2013-04-14 08:11:56
Selenium RC的+1作爲Windows服務。
爲了讓測試完全隱藏起來,我認爲如果你在windows上,你沒有太多的解決方案。
我該怎麼做才能使您的局域網中的計算機始終處於聯機狀態並運行硒RC服務器。因此,您使用該計算機的IP而不是本地主機來運行測試。例如:
browser = selenium("10.15.12.34",4444,"*firefox","http://saucelabs.com")
(考慮到這是運行服務器的計算機的IP地址)。
有了這個設置,你可以在你的計算機上運行你的測試,瀏覽器和RC服務器窗口在另一臺計算機上,一旦完成就返回給你。
如果您在Windows上,則有一個選項是在不同的用戶帳戶下運行測試。這意味着瀏覽器和java服務器對您自己的帳戶不可見。
在Linux上,您可以在無頭(虛擬)顯示器中運行WebDriver以隱藏瀏覽器。這可以通過Xvfb(X虛擬幀緩衝區)完成。
您可以直接使用xvfbwrapper
Python代碼控制的Xvfb: https://github.com/cgoldberg/xvfbwrapper
Python代碼:
from selenium import webdriver
from xvfbwrapper import Xvfb
display = Xvfb()
display.start()
# now Firefox will run in a virtual display.
# you will not see the browser.
driver = webdriver.Firefox()
driver.get('http://www.google.com')
print(driver.title)
driver.quit()
display.stop()
在Debian/Ubuntu的安裝依存關係:
$ sudo apt-get install xvfb
$ pip install xvfbwrapper
這就是我如何在Linux桌面(Ubuntu)上使用maven運行我的測試。我厭倦了無法使用Firefox的webdriver始終關注焦點。
我安裝xvfb的
xvfb的運行-a MVN乾淨的安裝
完蛋了
這通常是確保xvfb正在運行並由Selenium/WebDriver使用的最簡單方法。 – 2014-12-17 10:12:55
在Linux上,你可以在虛擬顯示器上運行測試的瀏覽器。您需要使用xvfb
軟件包來創建虛擬X服務器。在基於Debian的發行版,只需運行
sudo apt-get install xvfb
有一個很好的工具ephemeral-x.sh
將可以方便地設置任何命令虛擬顯示上運行。 Download it並使其可執行:
wget https://raw.github.com/jordansissel/xdotool/master/t/ephemeral-x.sh
chmod +x ephemeral-x.sh
然後,你可以簡單地使用它來啓動Selenium服務器:由硒創建
./ephemeral-x.sh java -jar selenium-standalone.jar
所有瀏覽器窗口現在將使用虛擬顯示器,將是不可見的你。
'wget https:// raw.github.com/jordansissel/xdotool/master/t/ephemeral-x.sh' – pic 2013-05-23 08:45:21
URL更正,謝謝。 – pixelistik 2013-05-23 20:03:32
此腳本有引用問題。如果我說./ephemeral-x.sh foo'*'它說「Running:foo」後跟我的目錄內容。 – 2016-08-29 21:27:44
有一個PhantomJS相關項目,名爲GhostDriver,這意味着使用webdriver wire JSON協議在Selenium Grid中運行PhantomJS實例。這可能是你正在尋找的東西,雖然這個問題現在已經4歲了。
我很容易設法隱藏瀏覽器窗口。
只是install PhantomJS。然後,改變這一行:
driver = webdriver.Firefox()
到:
driver = webdriver.PhantomJS()
你的代碼的其餘部分將不需要改變,沒有瀏覽器將打開。出於調試目的,請在代碼的不同步驟使用driver.save_screenshot('screen.png')
。
值得一提的是,您必須放置PhantomJs.exe的路徑才能使其工作。例如'driver = webdriver.PhantomJS(r「C:\\ phantomjs \ phantomjs.exe」)' – 2014-06-14 15:58:26
是的,但只在Windows上。 – 2014-06-14 16:10:07
只要可以從環境的$ PATH環境變量中找到,就不需要指定二進制文件的位置。 – 2017-11-10 03:59:51
在MacOSX上,我一直無法隱藏瀏覽器窗口,但至少我想出瞭如何將它移動到不同的顯示器上,因此它不會中斷我的工作流程。而Firefox正在運行的測試,只是在碼頭上,選擇選項控制單擊其圖標,並分配到顯示2.
curl -k https://gist.githubusercontent.com/terrancesnyder/995250/raw/cdd1f52353bb614a5a016c2e8e77a2afb718f3c3/ephemeral-x.sh -o ~/ephemeral-x.sh
chmod +x ~/ephemeral-x.sh
~/ephemeral-x.sh TestsStarterCommand
順便說一句,這是任何開發人員都運行E2E邏輯上將產生的瀏覽器需要一個功能。在開發環境中,處理不斷彈出的窗口以及可能意外地使測試失敗的窗口很煩人。
在許多情況下,PhantomJS不會完全滿足您的需求,我想詳細說明Dave Hunt的答案中提到的無頭鍍鉻選項。
chrome 57剛推出此功能。您可以通過ChromeDriver傳遞--headless標誌來使用它,更多信息請參見this question
- 1. Selenium - 如何隱藏瀏覽器
- 2. Selenium RC瀏覽器發射器列表
- 3. 使用Selenium RC捕獲瀏覽器
- 4. Selenium-RC瀏覽器啓動錯誤
- 5. Selenium RC - Firefox瀏覽器不會啓動
- 6. Selenium RC如何與瀏覽器通訊
- 7. Selenium RC - 禁用瀏覽器cookie
- 8. 是否可以隱藏python瀏覽器窗口(包括Windows,Linux)?
- 9. 可以從瀏覽器中拖動的隱藏文字?
- 10. 是否可以在neo4j瀏覽器中隱藏節點
- 11. 隱藏在瀏覽器
- 12. 我可以隱藏瀏覽器視圖源代碼中的html源代碼嗎?
- 13. 使用FirefoxDriver隱藏瀏覽器
- 14. 我可以使用selenium webdriver讀取瀏覽器網址嗎?
- 15. Selenium可以與現有瀏覽器會話進行交互嗎?
- 16. Python硒如何隱藏瀏覽器?
- 17. 在多個瀏覽器中同時運行Selenium RC腳本
- 18. Selenium RC:在多個瀏覽器中自動運行測試
- 19. 從瀏覽器中隱藏API密鑰
- 20. 隱藏Cydia Repo從瀏覽器中瀏覽?
- 21. 在瀏覽器中查看隱藏文件夾「瀏覽」
- 22. 瀏覽器鍵盤滾動可以隱式綁定到div嗎?
- 23. 沒有瀏覽器可以做webrtc嗎?
- 24. Selenium RC/Nunit/Firefox - 瀏覽器崩潰點擊
- 25. Selenium RC利用Python生成多個瀏覽器
- 26. 使用Selenium RC自動化跨瀏覽器測試
- 27. 如何讓Selenium RC不移動瀏覽器窗口?
- 28. Selenium RC HTMLSuite錯誤與IE瀏覽器https應用程序
- 29. Selenium RC無法使用最新的谷歌瀏覽器
- 30. 我們可以使用Selenium 3在遠程機器上驅動瀏覽器嗎?
中的討論可能不是可以接受的,但是像不能將瀏覽器從屏幕上移開(使用常規的Windows UI自動化? )像把窗口放在(-10000,-10000)? – BrainSlugs83 2014-03-23 04:24:06
由於這個問題現在已經很老了,讓我重定向到一個正確的最新答案[在本頁底部](http://stackoverflow.com/a/23898054/1515819)。 – 2014-10-07 16:04:41