0

我有一个问题,我需要遍历使用不可点击的 DalekJS 的链接,它是复制/粘贴的。如何从浏览器的输入字段中检索值,然后在 test.open() 调用中使用它?

<table>
    <tbody>
        <tr>
            <td>Link 1</td>
            <td><input type="text" value="http://example.com/link-1" class="start-link"></td>
        </tr>
        <tr>
            <td>Link 2</td>
            <td><input type="text" value="http://example.com/link-2" class="start-link"></td>
        <tr>
</table>

在上面的示例中,我希望 DalekJStest.open('http://example.com/link-1');在我的测试过程中动态运行。

module.exports = {

    'A test case': function (test) {
        test.open('http://example.com/example-from-above.html')
        .open('http://example.com/link-1')  //This is the link I'm trying to retrieve dynamically.
        .screenshot('image.png')
        .done();
    }
}

我怎样才能做到这一点?

4

1 回答 1

0

DalekJS 不允许同步读取 HTML 元素的值并在测试脚本中使用它们。如果您需要与测试页面的内容进行交互,该execute方法可能会有所帮助。

您可以尝试通过“在浏览器中执行”的功能设置窗口位置:

module.exports = {

    'A test case': function (test) {
        test.open('http://example.com/example-from-above.html')
        // Open the URL from the first input element value
        .execute(function () {
            var input = document.querySelectorAll('.start-link')[0];
            location = input.value;
        })
        // Wait until the browser opens the page
        .waitFor(function () {
            return location.pathname.indexOf('link-1') > 0;
        })
        .screenshot('image.png')
        .done();
    }
}
于 2015-05-03T14:06:56.960 回答