C# 通过编码的UI测试生成器自动运行网站时失败取消应用程序异常

C# 通过编码的UI测试生成器自动运行网站时失败取消应用程序异常,c#,selenium-webdriver,c#-4.0,coded-ui-tests,C#,Selenium Webdriver,C# 4.0,Coded Ui Tests,我想通过编码的UI测试生成器自动化一个网站,例如,打开Chrome,然后打开Facebook,输入用户和密码,然后登录 我创建了以下步骤: public void openchrome() { // Launch '%ProgramFiles(x86)%\Google\Chrome\Application\chrome.exe' ApplicationUnderTest chromeApplication = ApplicationUnderTest.L

我想通过编码的UI测试生成器自动化一个网站,例如,打开Chrome,然后打开Facebook,输入用户和密码,然后登录

我创建了以下步骤:

public void openchrome()
    {

        // Launch '%ProgramFiles(x86)%\Google\Chrome\Application\chrome.exe'
        ApplicationUnderTest chromeApplication = ApplicationUnderTest.Launch(this.openchromeParams.ExePath, this.openchromeParams.AlternateExePath);
    }

    /// <summary>
    /// openfb - Use 'openfbParams' to pass parameters into this method.
    /// </summary>
    public void openfb()
    {
        #region Variable Declarations
        WinClient uINewTabClient = this.UINewTabGoogleChromeWindow.UINewTabButton.UINewTabClient;
        WinEdit uIAddressandsearchbarEdit = this.UINewTabGoogleChromeWindow.UIItemGroup.UIAddressandsearchbarEdit;
        WinWindow uIFacebookLogInorSignUWindow = this.UIFacebookLogInorSignUWindow;
        #endregion

        // Click 'New Tab' client
        Mouse.Click(uINewTabClient, new Point(44, 6));

        // Type 'https://www.facebook.com' in 'Address and search bar' text box
        uIAddressandsearchbarEdit.Text = this.openfbParams.UIAddressandsearchbarEditText;

        // Click 'Facebook - Log In or Sign Up - Google Chrome' window
        Mouse.Click(uIFacebookLogInorSignUWindow, new Point(535, 85));
    }

    /// <summary>
    /// username - Use 'usernameParams' to pass parameters into this method.
    /// </summary>
    public void username()
    {
        #region Variable Declarations
        WinWindow uIFacebookLogInorSignUWindow = this.UIFacebookLogInorSignUWindow;
        WinMenu uIAutofillMenu = this.UIItemWindow.UIItemClient.UIAutofillMenu;
        WinControl uIFacebookLogInorSignUDocument = this.UINewTabGoogleChromeWindow.UIFacebookLogInorSignUDocument;
        #endregion

        // Click 'Facebook - Log In or Sign Up - Google Chrome' window
        Mouse.Click(uIFacebookLogInorSignUWindow, new Point(1275, 167));

        // Type '{NumPad1}' in 'Autofill' popup menu
        Keyboard.SendKeys(uIAutofillMenu, this.usernameParams.UIAutofillMenuSendKeys, ModifierKeys.None);

        // Type '{NumPad4}{NumPad3}{NumPad5}{NumPad4}{NumPad5}{NumPad9}b' in 'Facebook - Log In or Sign Up - Google Chrome' document
        Keyboard.SendKeys(uIFacebookLogInorSignUDocument, this.usernameParams.UIFacebookLogInorSignUDocumentSendKeys, ModifierKeys.None);
    }

    /// <summary>
    /// password - Use 'passwordParams' to pass parameters into this method.
    /// </summary>
    public void password()
    {
        #region Variable Declarations
        WinWindow uIFacebookLogInorSignUWindow = this.UIFacebookLogInorSignUWindow;
        WinMenu uIAutofillMenu = this.UIItemWindow.UIItemClient.UIAutofillMenu;
        #endregion

        // Click 'Facebook - Log In or Sign Up - Google Chrome' window
        Mouse.Click(uIFacebookLogInorSignUWindow, new Point(1476, 177));

        // Type '{NumPad1}{NumPad2}{NumPad3}' in 'Autofill' popup menu
        Keyboard.SendKeys(uIAutofillMenu, this.passwordParams.UIAutofillMenuSendKeys, ModifierKeys.None);
    }

    /// <summary>
    /// login
    /// </summary>
    public void login()
    {
        #region Variable Declarations
        WinWindow uIFacebookLogInorSignUWindow = this.UIFacebookLogInorSignUWindow;
        #endregion

        // Click 'Facebook - Log In or Sign Up - Google Chrome' window
        Mouse.Click(uIFacebookLogInorSignUWindow, new Point(1647, 177));
    }  
public void openchrome()
{
//启动“%ProgramFiles(x86)%\Google\Chrome\Application\Chrome.exe”
ApplicationUnderTest chromeApplication=ApplicationUnderTest.Launch(this.openchromeParams.ExePath,this.openchromeParams.AlternateExePath);
}
/// 
///openfb-使用“openfbParams”将参数传递到此方法中。
/// 
公开作废openfb()
{
#区域变量声明
WinClient uINewTabClient=this.UINewTabGoogleChromeWindow.UINewTabButton.uINewTabClient;
WinEdit uIAddressandsearchbarEdit=this.UINewTabGoogleChromeWindow.UIItemGroup.uIAddressandsearchbarEdit;
WinWindow uIFacebookLogInorSignUWindow=this.uIFacebookLogInorSignUWindow;
#端区
//单击“新建选项卡”客户端
鼠标点击(uINewTabClient,新点(44,6));
//类型'https://www.facebook.com'在'地址和搜索栏'文本框中
uIAddressandsearchbarEdit.Text=this.openfParams.UIAddressandsearchbarEditText;
//单击“Facebook-登录或注册-谷歌浏览器”窗口
鼠标点击(uIFacebookLogInorSignUWindow,新点(535,85));
}
/// 
///用户名-使用“usernameParams”将参数传递到此方法中。
/// 
公共无效用户名()
{
#区域变量声明
WinWindow uIFacebookLogInorSignUWindow=this.uIFacebookLogInorSignUWindow;
WinMenu uIAutofillMenu=this.UIItemWindow.UIItemClient.uIAutofillMenu;
WinControl uIFacebookLogInorSignUDocument=this.UINewTabGoogleChromeWindow.uIFacebookLogInorSignUDocument;
#端区
//单击“Facebook-登录或注册-谷歌浏览器”窗口
鼠标点击(uIFacebookLogInorSignUWindow,新点(1275167));
//在“自动填充”弹出菜单中键入“{NumPad1}”
键盘.SendKeys(uIAutofillMenu,this.usernameParams.UIAutofillMenuSendKeys,ModifierKeys.None);
//在“Facebook-登录或注册-谷歌浏览器”文档中键入“{NumPad4}{NumPad3}{NumPad5}{NumPad4}{NumPad5}{NumPad9}b”
键盘.SendKeys(UIFaceBookLoginSignudDocument,this.usernameParams.UIFaceBookLoginSignudDocumentSendKeys,ModifierKeys.None);
}
/// 
///密码-使用“passwordParams”将参数传递到此方法。
/// 
公共无效密码()
{
#区域变量声明
WinWindow uIFacebookLogInorSignUWindow=this.uIFacebookLogInorSignUWindow;
WinMenu uIAutofillMenu=this.UIItemWindow.UIItemClient.uIAutofillMenu;
#端区
//单击“Facebook-登录或注册-谷歌浏览器”窗口
鼠标点击(uIFacebookLogInorSignUWindow,newpoint(1476177));
//在“自动填充”弹出菜单中键入“{NumPad1}{NumPad2}{NumPad3}”
键盘.SendKeys(uIAutofillMenu,this.passwordParams.UIAutofillMenuSendKeys,ModifierKeys.None);
}
/// 
///登录
/// 
公共无效登录()
{
#区域变量声明
WinWindow uIFacebookLogInorSignUWindow=this.uIFacebookLogInorSignUWindow;
#端区
//单击“Facebook-登录或注册-谷歌浏览器”窗口
鼠标点击(uIFacebookLogInorSignUWindow,newpoint(1647177));
}  
但是,当我创建任何网站自动化时,当我使用编码的UI测试生成器创建它时,我得到了这个错误:

失败的CodedUITestMethod1 TestProject3测试方法TestProject3.CodedUITest1.CodedUITestMethod1引发异常: …

Microsoft.VisualStudio.TestTools.UITest.Extension.FailedToRunchApplicationException:“无法启动应用程序。这可能是由于以下原因之一:

您没有此应用程序的足够权限。文件: %程序文件(x86)%\Google\Chrome\Application\Chrome.exe

这也

另一个控件正在阻止该控件。请把电话接通 控件可见,然后重试该操作


如果你能用评论的新信息编辑你的文章,这将有助于存档

“FailedOperationOnBlockedControlException”是因为您尝试单击的控件前面有另一个控件,或者它位于与看起来不同的逻辑位置

尝试通过执行以下操作,将控件作为一个点单击:

Mouse.Click(control.ToPoint());

其中ToPoint是一个扩展方法,它接受一个控件,然后获取控件的x和y坐标。BoundingRectangle。

不要让我们悬而未决。有什么例外!?“无法启动该应用程序。这可能是由于以下原因之一:1)该应用程序的另一个实例已在运行,一次只能运行一个实例。2)该应用程序启动了另一个进程,现在已停止。您可能需要直接启动该进程。3)您没有足够的权限运行该应用程序。”是应用程序。“文件:%ProgramFiles(x86)%\Google\Chrome\application\Chrome.exe。我已经有一段时间没有使用编码UI了。我记得你必须以管理员的身份运行IE。也许Chrome现在也需要提升权限,但这只是一个猜测。好的,谢谢,我现在就试试你的建议。这次我遇到了这个错误: