C# 使用WatiN将头像上传到YouTube

C# 使用WatiN将头像上传到YouTube,c#,youtube,watin,C#,Youtube,Watin,我正在尝试将上传图片的过程自动化,以便将其设置为YouTube中的头像。到目前为止,我已经让程序登录YouTube,进入频道页面,然后单击“编辑频道”按钮 但是,我无法让文件上传过程正常工作。我最初使用的代码是: public FileUpload AvatarFileUpload { get { return Document.FileUpload(Find.ByName("image") && Find.ById("image-upload-f

我正在尝试将上传图片的过程自动化,以便将其设置为YouTube中的头像。到目前为止,我已经让程序登录YouTube,进入频道页面,然后单击“编辑频道”按钮

但是,我无法让文件上传过程正常工作。我最初使用的代码是:

public FileUpload AvatarFileUpload
{
    get
    {
        return Document.FileUpload(Find.ByName("image") && Find.ById("image-upload-file-input"));
    }
}

AvatarFileUpload.Set(AvatarLocation);
这将打开“文件上载”对话框,并输入需要上载但实际上没有上载照片的图像的路径

我已经成功地使用此代码将文件上载到其他网站,因此WatiN的FileUpload对象没有问题

这与YouTube有一个假按钮有关,该按钮隐藏了实际的文件表单对象,然后使用jQuery或其他工具来完成该过程

在做了一些挖掘之后,我可以看出文件上传对象是以它自己的形式存在的,并且该形式的操作是页面中隐藏的iframe

因此,我尝试使用此代码上载文件,提交表单,然后提交主表单,但这也不起作用

public FileUpload AvatarFileUpload
{
    get
    {
        return Document.FileUpload(Find.ByName("image") && Find.ById("image-upload-file-input"));
    }
}

public Form ImageUploadForm
{
    get
    {
        return Document.Form(Find.ById("image-upload-form"));
    }
}

public Form ChannelsPageEditorForm
{
    get
    {
        return Document.Form(Find.ById("channels-page-editor-form"));
    }
}

AvatarFileUpload.Set(AvatarLocation);
System.Threading.Thread.Sleep(5000);
ImageUploadForm.Submit();
System.Threading.Thread.Sleep(5000);
ChannelsPageEditorForm.Submit();
我不知道如何更新实际的头像。有没有人对如何实现这一目标有任何建议

谢谢

另外,我尝试使用WatiN recorder查看他们的建议,但他们的解决方案也不起作用:

public Div BrandingEditorDiv
{
    get
    {
        return Document.Div(Find.ById("branding-editor-content"));
    }
}

public FileUpload AvatarFileUpload
{
    get
    {
        return Document.FileUpload(Find.ByName("image") && Find.ById("image-upload-file-input"));
    }
}

BrandingEditorDiv.Click();
AvatarFileUpload.Set(AvatarLocation);