【问题标题】:Is it possible to make PhantomJS visible in Watir-WebDriver?是否可以让 PhantomJS 在 Watir-WebDriver 中可见?
【发布时间】:2014-06-10 15:27:31
【问题描述】:

我知道可以将 phantomJS 与 Watir-Webdriver 一起使用,但是在我决定使用(默认)无头模式之前,是否有一些“模式”我可以通过它来实际查看它在做什么?

【问题讨论】:

  • phantomjs除了headless没有其他模式。您可能需要使用其他浏览器:chrome、firefox、slimerjs。

标签: ruby phantomjs watir-webdriver


【解决方案1】:

不确定模式,但你可以试试这个:

require 'watir-webdriver'
b = Watir::Browser.new :phantomjs
b.screenshot.save 'step1.png'
b.goto "www.google.com"
b.screenshot.save 'step2.png'
b.url #"http://www.google.com/"
b.screenshot.save 'step3.png'
b.title #"Google"
b.screenshot.save 'step4.png'

您将获得如下所示的输出:

【讨论】:

    【解决方案2】:

    扩展其他响应,您可以在单击或向元素发送键之前自动进行屏幕截图。

    class Screenshotter < Selenium::WebDriver::Support::AbstractEventListener
      def before_click(_, driver)
        driver.save_screenshot("screenshot-#{Time.now.to_i}.png")
      end
    
      def before_change_value_of(_, driver)
        driver.save_screenshot("screenshot-#{Time.now.to_i}.png")
      end
    end
    
    browser = Watir::Browser.new(:phantomjs, listener: Screenshotter.new)
    

    接下来,您可以将所有屏幕截图加入到 GIF 中,该 GIF 就像您的测试现场视频一样工作。

    【讨论】:

      【解决方案3】:

      就像 artjom B 写的一样,在 PhantomJS 中除了 headless 之外没有其他模式的可能性。

      所以要么更改浏览器 - 我通过更改 CMD 框中的环境变量使我的所有测试都能够在每个浏览器中运行。

      或者使用以下方法截取大量屏幕截图: @b.screenshot.save 'filename' - 即使您继续使用 PhantomJS,您也可以按照流程进行操作

      【讨论】:

        【解决方案4】:

        您可以使用onResourceRequestedonResourceReceived api 记录所有请求和响应。我这样做是为了我在casperjs 中写的一个刮板,它在下面使用了 phantomjs。 Watir-Webdriver 应该提供一些挂钩到 phantomjs 的 webPage 对象。

        page.onResourceRequested = function(requestData, networkRequest) {
          console.log('Request (#' + requestData.id + '): ' + JSON.stringify(requestData));
        };
        
        page.onResourceReceived = function(response) {
          console.log('Response (#' + response.id + ', stage "' + response.stage + '"): ' + JSON.stringify(response));
        };
        

        【讨论】:

        • 不幸的是没有这样的钩子。
        猜你喜欢
        • 2012-06-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-11-23
        • 2014-01-01
        相关资源
        最近更新 更多