C#web浏览器自动化

C#web浏览器自动化,c#,automation,C#,Automation,我是网络浏览器自动化的新手,我选择谷歌网页作为学习的样本 我试图模拟一个文件上传到谷歌硬盘,但我遇到了几个问题 您可以尝试使用某种web UI测试框架,如Selenium。它可以帮助您记录测试用例,甚至可以生成C代码粘贴到您的测试项目中。这可能是故意难以自动化的-我知道GMail(以及Yahoo和其他web邮件提供商)故意使通过其web界面自动发送电子邮件变得复杂 因此,将文档上传到Google Drive可能与此类似;很可能是为了防止滥用,谷歌设置了路障,使得自动上传变得困难。你可以使用Se

我是网络浏览器自动化的新手,我选择谷歌网页作为学习的样本

我试图模拟一个文件上传到谷歌硬盘,但我遇到了几个问题


您可以尝试使用某种web UI测试框架,如Selenium。它可以帮助您记录测试用例,甚至可以生成C代码粘贴到您的测试项目中。

这可能是故意难以自动化的-我知道GMail(以及Yahoo和其他web邮件提供商)故意使通过其web界面自动发送电子邮件变得复杂


因此,将文档上传到Google Drive可能与此类似;很可能是为了防止滥用,谷歌设置了路障,使得自动上传变得困难。

你可以使用Selenium和Sikuli的混合物。 Selenium确实是浏览器自动化的好工具。但是,如果您必须使用Selenium无法自动执行的UI元素,我建议您使用Sikuli for C#。我发现了一个例子,它可能是这样的:

    Launch.Start();  
    IwebDriver driver = new ChromeDriver("D:/>SeleniumDrivers/ChromeDriver32");  
    driver.Manage().Window.Maximize();  
    driver.Navigate.GoToURL("http://www.csharpcorner.com/");  
    Screen scr = new Screen();  
    scr.Click(Image1, true);  
    scr.wait(10);  
    scr.Type(Image2, "string to Enter", KeyModifier.None);  
    scr.wait(10);  
    scr.Type(Image3, "string to enter", keyModifier.None);  
    scr.wait(10);  
    scr.Type(Image4, "string to enter", KeyModifier.None);  
    scr.wait(10);  
    scr.Type(Image5, "string to enter", KeyModifier.None);  
    scr.wait(10);  
    driver.quit();  

您可以轻松地与UI元素交互,并使用Sikuli模拟键盘输入。

我尝试过这个。然而,它也不起作用。它无法在Google Drive的“上载”按钮上记录单击事件。是。您必须有目的地等待页面完全加载。
    Launch.Start();  
    IwebDriver driver = new ChromeDriver("D:/>SeleniumDrivers/ChromeDriver32");  
    driver.Manage().Window.Maximize();  
    driver.Navigate.GoToURL("http://www.csharpcorner.com/");  
    Screen scr = new Screen();  
    scr.Click(Image1, true);  
    scr.wait(10);  
    scr.Type(Image2, "string to Enter", KeyModifier.None);  
    scr.wait(10);  
    scr.Type(Image3, "string to enter", keyModifier.None);  
    scr.wait(10);  
    scr.Type(Image4, "string to enter", KeyModifier.None);  
    scr.wait(10);  
    scr.Type(Image5, "string to enter", KeyModifier.None);  
    scr.wait(10);  
    driver.quit();