javascript - PhantomJS 文件上传不适用于 XPath 表达式

标签 javascript file-upload phantomjs casperjs

我似乎无法制作fileUpload工作中,我正在使用下面的脚本,但从屏幕截图中可以明显看出,该文件甚至没有以以下形式选择: Screenshot

  casper.thenOpen('https://encodable.com/uploaddemo/', function () {

    this.waitForSelector(x('//input[@type="file"]'), function () {
      casper.page.uploadFile(x('//input[@type="file"]'), '/Users/stratos/Desktop/IMG_1344.png');
    });
  });
  casper.then(function () {
    this.wait(5000, function () {
       this.capture('test/integration/screenshots/uploadTest.png');
    });
  });

测试运行良好,没有错误,所以我不知道发生了什么:(

我正在使用 PhantomJS 2.1.1 和 CasperJS 1.1.0-beta5

如果测试按下“上传”按钮,则会触发页面验证,因为没有选择文件。

最佳答案

page.uploadFile()是 PhantomJS 函数,不支持 CasperJS 使用 XPath 表达式。它只接受 CSS 选择器作为简单的字符串:

casper.page.uploadFile('input[type="file"]', '/Users/stratos/Desktop/IMG_1344.png');

关于javascript - PhantomJS 文件上传不适用于 XPath 表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36454466/

相关文章:

javascript - 如何判断弹窗内容是否加载

unity-game-engine - UnityUploadFailed : There was an error uploading the Android App Bundle. 稍后重试,如果错误仍然存​​在,请联系 Google Play 开发人员支持

java - 使用 Selenium 3 在 headless phantomjs 2.1.1 中找不到元素

javascript - react 原生 redux 状态更新但不在组件中渲染

javascript - 为每个单词重置计数

javascript - 如何将一个对象添加到另一个对象之前作为更大对象的一部分

java - 为什么 Java 从套接字中读取随机数量而不是整个消息?

jsf - JSF 2.0文件上传

javascript - 无法使用 Phantomjs 代码示例在 instagram.com 上截图,为什么总是黑屏?

java - WebDriver PhantomJS 无法找到元素,但可以在 Firefox 上正常工作