Protractor 当文件搜索弹出时,量角器上载被卡住

Protractor 当文件搜索弹出时,量角器上载被卡住,protractor,image-uploading,Protractor,Image Uploading,我正试图找出以下代码的错误: it('should upload a photo', function(){ var photo = './photos/et-test.jpeg', exactPhoto = path.resolve(__dirname, photo); var form = element(by.id('fileupload')); var upload = element(by.css('input[

我正试图找出以下代码的错误:

it('should upload a photo', function(){

        var photo = './photos/et-test.jpeg',
            exactPhoto = path.resolve(__dirname, photo);
        var form = element(by.id('fileupload'));
        var upload = element(by.css('input[type = "file"]'));
        var addFiles = element(by.cssContainingText('.btn.btn-success.fileinput-button.mb-10','Add files...'));
        var uploadBtn = element(by.css('.btn.btn-primary.start.mt-20'));

        element(by.cssContainingText('.inline_link','Upload more album photos now')).click();
        element(by.id('secondary_upload_link')).click();


        browser.wait(EC.visibilityOf(addFiles), 5000);
        addFiles.click();

        upload.sendKeys(exactPhoto);

        browser.wait(EC.visibilityOf(uploadBtn), 5000);
        uploadBtn.click();

        expect(element(by.css('.table')).getText()).toBe('Upload Finised');

    });
我一直被文件搜索弹出窗口卡住,并收到以下错误:

信息: 失败:等待在5006ms后超时


根据我的代码流程,是否缺少或应该执行任何操作?

如果我正确理解了您的问题,则在上载文件时,您会看到一个弹出窗口。您能在您的配置中尝试以下功能吗(假设您使用的是Chrome)


如果我正确理解了您的问题,则在上载文件时您会看到一个弹出窗口。您能在您的配置中尝试以下功能吗(假设您使用的是Chrome)

  • 是的,您不需要单击它,只需为这个
    输入
    元素单击
    sendKeys()
  • 有时它需要使此
    输入可见。就这样试试(在我的例子中,它适用于等待/异步量角器):
  • private addAttachment=element(by.css('input[type=“file”]))

    wait browser.executeScript(“参数[0]。style.visibility='visible';参数[0]。style.height='1px';参数[0]。style.width='1px';参数[0]。style.opacity=1;参数[0]。style.display='inline';参数[0]。style.overflow='visible',this.addAttachment)

    等待browser.executeScript(“参数[0].focus();”,等待this.addAttachment.getWebElement())

    等待此.addAttachment.sendKeys(路径)

  • 是的,您不需要单击它,只需为这个
    输入
    元素单击
    sendKeys()
  • 有时它需要使此
    输入可见。就这样试试(在我的例子中,它适用于等待/异步量角器):
  • private addAttachment=element(by.css('input[type=“file”]))

    wait browser.executeScript(“参数[0]。style.visibility='visible';参数[0]。style.height='1px';参数[0]。style.width='1px';参数[0]。style.opacity=1;参数[0]。style.display='inline';参数[0]。style.overflow='visible',this.addAttachment)

    等待browser.executeScript(“参数[0].focus();”,等待this.addAttachment.getWebElement())

    等待此.addAttachment.sendKeys(路径)
    尝试以下操作:

    var photo = './photos/et-test.jpg',
    exactPhoto = path.resolve(__dirname, photo);
    var form = element(by.id('fileupload')); ///Users/leochardc/ET/photos/et-test.jpg
    var upload = element(by.css('.fileupload_section input[type = "file"]'));
    var addFiles = element(by.cssContainingText('.btn.btn-success.fileinput-button.mb-10','Add files...'));
    var uploadBtn = element(by.css('.btn.btn-primary.start.mt-20'));
    var uploadFinished = element(by.css('.fileupload_section .text-center p'));
    
    browser.get(url);
    element(by.cssContainingText('.inline_link','Upload more album photos now')).click();
    element(by.id('secondary_upload_link')).click();
    
    
    browser.wait(EC.visibilityOf(addFiles), 5000);
    // addFiles.click();
    
    upload.sendKeys(exactPhoto);
    
    var previewPic = element(by.css('.fileupload_section.fileupload_files'));
    
    browser.wait(EC.visibilityOf(previewPic), 5000);
    
    browser.wait(EC.visibilityOf(uploadBtn), 5000);
    uploadBtn.click();
    
    browser.wait(EC.visibilityOf(uploadFinished), 30000);
    
    expect(uploadFinished.getText()).toBe('Upload Finished');
    
    试试这个:

    var photo = './photos/et-test.jpg',
    exactPhoto = path.resolve(__dirname, photo);
    var form = element(by.id('fileupload')); ///Users/leochardc/ET/photos/et-test.jpg
    var upload = element(by.css('.fileupload_section input[type = "file"]'));
    var addFiles = element(by.cssContainingText('.btn.btn-success.fileinput-button.mb-10','Add files...'));
    var uploadBtn = element(by.css('.btn.btn-primary.start.mt-20'));
    var uploadFinished = element(by.css('.fileupload_section .text-center p'));
    
    browser.get(url);
    element(by.cssContainingText('.inline_link','Upload more album photos now')).click();
    element(by.id('secondary_upload_link')).click();
    
    
    browser.wait(EC.visibilityOf(addFiles), 5000);
    // addFiles.click();
    
    upload.sendKeys(exactPhoto);
    
    var previewPic = element(by.css('.fileupload_section.fileupload_files'));
    
    browser.wait(EC.visibilityOf(previewPic), 5000);
    
    browser.wait(EC.visibilityOf(uploadBtn), 5000);
    uploadBtn.click();
    
    browser.wait(EC.visibilityOf(uploadFinished), 30000);
    
    expect(uploadFinished.getText()).toBe('Upload Finished');
    

    啊,不。你看,这一行打开了一个文件上传窗口:
    addFiles.click()显示时,等待超时将结束执行,不再继续:
    upload.sendKeys(exactPhoto)是否需要单击?应该可以在不打开文件窗口的情况下上传文件,只需使用您已经使用的发送键方法。啊,不。您看到,这一行打开了一个文件上传窗口:
    addFiles.click()显示时,等待超时将结束执行,不再继续:
    upload.sendKeys(exactPhoto)是否需要单击?应该可以在不打开文件窗口的情况下上传文件,只需使用您已经使用的发送密钥方法。