簡體   English   中英

無頭運行Python Selenium測試

[英]Run Python Selenium Tests Headless

使用Pyvirtualdisplay使Webdriver在特定的集線器上運行時,我遇到了一些麻煩。 以下通用代碼可以正常工作:

class TestHub4444TestClass01(unittest.TestCase):

    def setUp(self):
        self.display = Display(visible=0, size=(1920, 1080))
        self.display.start()
        self.driver = firefox.webdriver.WebDriver()

    def test_hub_4444_test_case_01(self):
        self.driver.get('http://google.com')
        time.sleep(5)


    def tearDown(self):
        self.driver.close()
        self.display.stop()

if __name__ == "__main__":
    unittest.main()

但是,當我嘗試將Webdriver分配給端口4445上的集線器時,以下內容將打開一個瀏覽器窗口。

class TestHub4445TestClass01(unittest.TestCase):

    def setUp(self):
        self.display = Display(visible=0, size=(1920, 1080))
        self.display.start()
        self.driver = WebDriver(command_executor='http://localhost:4445/wd/hub', 
                                desired_capabilities={"browserName": "firefox",
                                                      "platform": "LINUX"})

    def test_hub_4445_test_case_01(self):
        self.driver.get('http://google.com')
        time.sleep(5)


    def tearDown(self):
        self.driver.close()
        self.display.stop()

if __name__ == "__main__":
    unittest.main()

即使您不確定答案,任何建議也將不勝感激,我會給他們一個機會。

萬一其他人收到類似的東西

WebDriverException: Message: u'Unable to connect to host 127.0.0.1 on port 7055 after 45000 ms. Firefox console output:\nError: cannot open display: :99\nError:

這是我在Ubuntu中的命令。 我去了我的xvfb控制腳本。

sudo ./xvfb
export DISPLAY=:99
java -jar selenium-server-standalone-2.37.0.jar -role node -hub http://localhost:4445/grid/register -port 5560

我的xvfb腳本與硒服務器jar位於同一位置。 這是我的xvfb腳本。

PIDFILE=/var/run/xvfb.pid
case "$1" in
  start)
    echo -n "Starting virtual X frame buffer: Xvfb"
    exec start-stop-daemon --start --quiet --pidfile $PIDFILE --make-pidfile --background --exec $XVFB -- $XVFBARGS
    echo "."
    ;;
  stop)
    echo -n "Stopping virtual X frame buffer: Xvfb"
    exec start-stop-daemon --stop --quiet --pidfile $PIDFILE
    echo "."
    ;;
  restart)
    $0 stop
    $0 start
    ;;
  *)
        echo "Usage: /etc/init.d/xvfb {start|stop|restart}"
        exit 1
esac

exit 0

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM