【问题标题】:Determining session ID from WebDriverJS从 WebDriverJS 确定会话 ID
【发布时间】:2012-06-27 03:30:38
【问题描述】:

我正在尝试在浏览器上运行 WebDriverJS,但文档对于如何使其控制主机浏览器有些模糊。在这里,它说:

启动浏览器以针对另一个浏览器运行 WebDriver 测试有点多余 (与简单地使用节点相比)。相反,在浏览器中使用 WebDriverJS 旨在 使实际运行脚本的浏览器自动化。只要知道服务器的 > URL 和浏览器的会话 ID,就可以完成此操作。虽然这些值可能是 直接传递给构建器,它们也可以使用 wdurl 和 wdsid 定义 “环境变量”,从加载页面的URL查询数据中解析出来的:

    <!-- Assuming HTML URL is /test.html?wdurl=http://localhost:4444/wd/hub&wdsid=foo1234 -->
    <!DOCTYPE html>
    <script src="webdriver.js"></script>
    <input id="input" type="text"/>
    <script>
      // Attaches to the server and session controlling this browser.
      var driver = new webdriver.Builder().build();

      var input = driver.findElement(webdriver.By.tagName('input'));
      input.sendKeys('foo bar baz').then(function() {
        assertEquals('foo bar baz',
            document.getElementById('input').value);
      });
    </script>

我想从 Node.js 打开我的测试页面,然后运行客户端脚本中包含的命令。但是,我不知道在构建会话时如何提取会话 ID(wdsid 查询参数)。有人知道吗?

【问题讨论】:

    标签: javascript node.js selenium webdriver


    【解决方案1】:

    经过大量的实验和阅读WebDriverJS源代码,终于弄明白了。

    var webdriver = require('./assets/webdriver');
    
    var driver = new webdriver.Builder().
        usingServer('http://localhost:4444/wd/hub').
        withCapabilities({
            'browserName': 'chrome',
            'version': '',
            'platform': 'ANY',
            'javascriptEnabled': true
        }).
        build();
    
    var testUrl = 'http://localhost:3000/test',
        hubUrl = 'http://localhost:4444/wd/hub',
        sessionId;
    
    driver.session_.then(function(sessionData) {
        sessionId = sessionData.id;
        driver.get(testUrl + '?wdurl=' + hubUrl + '&wdsid=' + sessionId);
    });
    

    driver.session_ 返回一个 Promise 对象,该对象将在实例化时包含会话数据和其他信息。使用 .then(callback(sessionData)) 将允许您随意操作数据。

    【讨论】:

    • 如果这在某一时刻确实有效,那么现在它不会出现。我看到它已被移至 sessionData.id_
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-24
    • 2016-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多