【问题标题】:Unable to upload the image in protractor无法在量角器中上传图像
【发布时间】:2017-04-17 03:56:30
【问题描述】:

面临以下错误:

失败:使用定位器找不到元素:By(css selector, input[type="images"])

量角器代码:

it("image upload",function(){
    browser.ignoreSynchronization = true;
    browser.sleep(4000);
    element( by.css('[ng-click="imagePost()"]') ).click();
    browser.sleep(3000);
    var ele = element(by.model("files")).click();
    browser.wait(EC.visibilityOf(ele),8000,'Ele is not presented');

    var fileToUpload = "C:\Users\Shiva\Desktop\mdkg.jpg;"
    console.log(fileToUpload);
    var absolutePath = path.resolve(fileToUpload);
    console.log(absolutePath);
    $('input[type="images"]').sendKeys(absolutePath);
    element(by.buttonText('Post Image')).click();
    browser.sleep(5000);
});

上传图片的HTML代码:

    <div ngf-drop ng-model="files" ngf-pattern="image/*" data-ngf-multiple="true" ng-repeat="image in images1" ngf-size>
        <img  src="{{image}}" width = "100%" height = "100%" class="m-l img-responsive img-rounded m-b" alt="post images">
        </img-crop>
        <span ng-show="loading" class="text-center col-xs-12" ></span>
    </div>
</div>
<div class="modal-actions ">
    <button type="submit " class="btn-link modal-action ">
        <strong><span class="icon icon-user "></span>postImg</strong>
    </button>
    <button type="button" id="fileinput"   ng-model="files" ngf-select accept="image/* " data-ngf-multiple="true" class="btn-link modal-action">Upload Image

我在这里上传图片,当我点击上传图片时,它会导航到本地系统,它应该上传图片。上传后应该发布。

【问题讨论】:

  • 你的&lt;input type="images" /&gt;在哪里?
  • 谢谢@vjarysta。输入标签不在我的代码中,但是当我将输入标签放入量角器时它正在运行,并且它显示弹出作为不允许的文件(在我的应用程序中,当用户尝试上传图片以外的其他弹出窗口时)。
  • 谁能回答这个还在苦苦挣扎的问题

标签: angularjs file-upload protractor ng-file-upload


【解决方案1】:

这是我使用页面对象的答案:

this.uploadImage = function(){

var path = require('path');
        var remote = require('../../../../node_modules/protractor/node_modules/selenium-webdriver/remote');
        browser.setFileDetector(new remote.FileDetector());


        var fileToUpload = '../../mdkg.jpg';
        var absolutePath = path.resolve(__dirname, fileToUpload);

        var fileElem = element(by.css('input[type="file"]'));

            // Unhide file input
        browser.executeScript("arguments[0].style.visibility = 'visible'; arguments[0].style.height = '1px'; arguments[0].style.width = '1px';  arguments[0].style.opacity = 1", fileElem.getWebElement());

        fileElem.sendKeys(absolutePath);

            // take a breath 
        browser.sleep(4000);
        element(by.buttonText('Post Image')).click();
        browser.sleep(4000);
    };

post_text.uploadImage();

【讨论】:

    猜你喜欢
    • 2023-04-01
    • 1970-01-01
    • 2019-06-17
    • 2013-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-13
    相关资源
    最近更新 更多