开发者

Selenium-RC Unable to handle Confirmation box

开发者 https://www.devze.com 2023-01-06 00:26 出处:网络
I am testing a web app where i delete an item from a list. Upon clicking on delete, the app asks for confirmation. Selenium IDE detects it as a confirmation box. When I run the code thro\' the RC (C#)

I am testing a web app where i delete an item from a list. Upon clicking on delete, the app asks for confirmation. Selenium IDE detects it as a confirmation box. When I run the code thro' the RC (C#), it even catches the confirmation-box, executes the click of delete button on that confirmation box, but, the confirmation box is never visib开发者_StackOverflowle on the screen. Further, it only clicks on the delete button; the item doesn't get deleted. I tried it manually, works fine.

Please help, I'm new to Selenium and tried to find the answers at multiple forums without any success.

Here's the code:

string confirmation;
for (int second = 0;; second++) {
    if (second >= 60) Assert.Fail("timeout");
    try
    {
        confirmation=selenium.GetConfirmation();

        if ((confirmation == " Delete confirmation message")) break;

    }
    catch (Exception e)
    {
        PrintLog("Error while waiting for confirmation. Error: "+e.Message);
    }
    Thread.Sleep(1000);
}           

try
{
    Assert.IsTrue(confirmation == "Delete confirmation message");
}
catch (AssertionException e)
{
    PrintLog(e.Message);
}

selenium.FireEvent("//a[@id='btnOkConfirm']","click");

After the last statement, the selected item must get deleted and page should refresh, but, nothing happens. All I can see is "Javascript:;" written in the status bar of the firefox window. I guess its problematic to get javascript hrefs working in selenium-rc.

Thanks,

Vamyip


There are a number of commands to deal with JavaScript confirmations. Selenium will by default choose 'OK' at a confirmation, unless you send the chooseCancelOnNextConfirmation command. In order to consume the confirmation you will need to use the getConfirmation command.

Selenium reference for above commands:

  • http://release.seleniumhq.org/selenium-core/1.0/reference.html#storeConfirmation
  • http://release.seleniumhq.org/selenium-core/1.0/reference.html#chooseCancelOnNextConfirmation
  • http://release.seleniumhq.org/selenium-core/1.0/reference.html#chooseOkOnNextConfirmation

Additionally, if your click command is not showing the JavaScript confirmation you might find that the appropriate event is not being fired. You could try using the mouseDown and mouseUpcommands, or the fireEvent command.


Lately, I've discovered that this behavior is occurring due to the architecture of selenium(more precisely, its javascript based core). when I do the test manually, keeping the selenium IDE open, this behavior is replicated. So, I think there's no immediate solution to this problem right now. Will post here if I find a workaround.

Thanks to Dave for replying.


Update: The development team informed me that a javascript function is not being called with selenium IDE running alongside. This indeed is a problem with Selenium's Javascript core.

Thanks to everybody who took time to respond to this question.

Regards,
Vamyip

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号