Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 用于处理Ajax弹出窗口的Watin脚本_C#_.net_Watin - Fatal编程技术网

C# 用于处理Ajax弹出窗口的Watin脚本

C# 用于处理Ajax弹出窗口的Watin脚本,c#,.net,watin,C#,.net,Watin,我正在使用WatiN测试工具编写c#.net脚本。我有一个场景,我需要改变我的网页主题,所以要做到这一点,我需要点击一个图像按钮,打开一个带有图像和“应用主题”的ajax弹出窗口按钮位于图像下方,现在我需要单击按钮,因此如何执行此操作,请建议一些解决方案。如果异步处理控件加载的计时,Ajax弹出窗口本身不应该造成问题。如果您使用的是ajax控件工具包,您可以这样解决它 int timeout = 20; for (i=0; i < timeout; i++) { bool bloc

我正在使用WatiN测试工具编写c#.net脚本。我有一个场景,我需要改变我的网页主题,所以要做到这一点,我需要点击一个图像按钮,打开一个带有图像和“应用主题”的ajax弹出窗口按钮位于图像下方,现在我需要单击按钮,因此如何执行此操作,请建议一些解决方案。

如果异步处理控件加载的计时,Ajax弹出窗口本身不应该造成问题。如果您使用的是ajax控件工具包,您可以这样解决它

int timeout = 20;
for (i=0; i < timeout; i++)
{
    bool blocked = Convert.ToBoolean(ie.Eval("Sys.WebForms.PageRequestManager.getInstance().get_isInAsyncPostBack();"));
    if (blocked)
    {
       System.Threading.Thread.Sleep(200);
    }
    else
    {
        break;
    }
 }

如果异步处理控件加载的计时,Ajax弹出窗口本身不应该造成问题。如果您使用的是ajax控件工具包,您可以这样解决它

int timeout = 20;
for (i=0; i < timeout; i++)
{
    bool blocked = Convert.ToBoolean(ie.Eval("Sys.WebForms.PageRequestManager.getInstance().get_isInAsyncPostBack();"));
    if (blocked)
    {
       System.Threading.Thread.Sleep(200);
    }
    else
    {
        break;
    }
 }

我没有使用任何ajax控件工具包,在弹出窗口中没有我提到的文本字段,下面只有一个图像和一个按钮,我需要单击它才能将该图像应用为主题。

我没有使用任何ajax控件工具包,弹出窗口中没有我提到的文本字段,只有一个图像和它下面的一个按钮,我需要单击它才能将该图像应用为主题。

因此,首先单击弹出窗口的按钮,和.WaitUntilExists()用于弹出窗口内的按钮

IE.Button("ShowPopup").click()
IE.Button("PopupButtonID").WaitUntilExists()
IE.Button("PopupButtonID").click()
如果弹出窗口上的按钮存在,但从视图中隐藏,则此操作可能不起作用。在这种情况下,您可以尝试使用.WaitUntil()并指定要查找的属性

IE.Button("ButtonID").WaitUntil("display","")

因此,首先单击弹出窗口的按钮,然后单击.WaitUntilExists()以查看弹出窗口中的按钮

IE.Button("ShowPopup").click()
IE.Button("PopupButtonID").WaitUntilExists()
IE.Button("PopupButtonID").click()
如果弹出窗口上的按钮存在,但从视图中隐藏,则此操作可能不起作用。在这种情况下,您可以尝试使用.WaitUntil()并指定要查找的属性

IE.Button("ButtonID").WaitUntil("display","")

我写了一篇关于如何进行ajax同步的帖子,因为我在WaitUntilExists方面遇到了问题:

我写了一篇关于如何进行ajax同步的帖子,因为我在WaitUntilExists方面遇到了问题:

感谢您的回复,但该方法不起作用。wn我单击图像以应用主题弹出窗口显示有一个新窗口(与windows internet explorer不同),它的顶部包含图像,下面有一个按钮(“应用主题”)。在标题面板中有“最大化”、“最小化”和“关闭”按钮。我需要点击按钮(“应用主题”)使主题应用到主窗口。我不太确定你在这里问什么。你基本上需要ID或者其他一些方法来使用WatiN“获取”应用主题按钮。一旦你有了它,你只需要.WaitUntilExists(),然后.Click()点击那个按钮。谢谢你的回复,但是这个方法不起作用。wn我单击图像以应用主题弹出窗口显示有一个新窗口(与windows internet explorer不同),它的顶部包含图像,下面有一个按钮(“应用主题”)。在标题面板中有“最大化”、“最小化”和“关闭”按钮。我需要点击按钮(“应用主题”)使主题应用到主窗口。我不太确定你在这里问什么。你基本上需要ID或者其他一些方法来使用WatiN“获取”应用主题按钮。一旦你有了它,你只需要点击.WaitUntilExists(),然后点击该按钮。