使用WatiN将头像上传到YouTube

时间:2011-12-30 20:58:41

标签: c# youtube watin

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

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

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

AvatarFileUpload.Set(AvatarLocation);

这打开了文件上传对话框,并输入了需要上传的imaget的路径,但实际上并没有上传照片。

我已成功使用此代码将文件上传到其他网站,因此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();

我无法弄清楚如何让实际的头像更新。有没有人对如何使这项工作有任何意见/建议?

谢谢!

P.S。我尝试使用WatiN记录器来查看他们推荐的内容,但他们的解决方案也不起作用:

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);

0 个答案:

没有答案