I'm working on a web application where I want to write a selenium test to assert that the modal popup (the one with "Stay on this page" vs. "Leave this page") is shown when the window gets closed and there are unsaved form changes.
In my selenium test i use Driver.SwitchTo().Window(Driver.CurrentWindowHandle).Close() after I have made some unsaved form changes. The modal popup appears, so far so good. The idea was to excpect an UnhandledAlertException to make the test pass. But what actually happens is that selenium crashes.
Any ideas how to deal with that? I'm using the C# Version of Selenium with the IE Driver and IE11
Related
So I'm currently working on a new project and I need to write some automated tests.
I came across a problem and I don't know how to fix it. If the button of my web page is clicked running selenium it doesn't perform any actions, but if I open the web page manualy and click on the button, everything works fine.
NOTE: I'm completely sure that the xpath is correct and the button is being clicked...
This is what happens running with selenium:
And this is what happens openning the web page manually and clicking on the button:
I'm using Selenium with Robot Framework to write my GUI tests. One of the tests is verifying if, when the user clicks on the Close window/tab button (outside of the webpage), it triggers the alert box before exiting.
I've tried the keywords "Close window" and "Close browser", but both of them ignore the event and close the window. I also tried to close the window with javacript window.close();, but it doesn't work for windows that aren't opened with window.open(); - it is a security measure. I'm using Selenium Grid with different browsers on Linux and Windows, but everytime is failing. Is there a possibility to check this with selenium or I have to use other tools like AutoIT that automate any GUI, not only the browser?
After five days of searching for a solution, I didn't find one that tries to close the page/tab/window and triggers that alert confirmation box.
Instead, I found a workaround that is similar to that and also triggers the necessary alert which is captured by Selenium: click on a link, reopen the same page or go to another one. Like this:
Go To https://stackoverflow.com/
Handle Alert action=DISMISS
I put here action=DISMISS to simply continue with my test on the same page, but if there is need you can change it to something else.
My tests use Selenium and Applitools Eyes to take screenshots of the test environment and compare it against the approved baseline. This is to automate visual tests of the application.
When I use IE11 to mouseover, I have attempted using all the solutions listed here, and even though I can get it to mouseover and display the menu, I still have another problem.
When I use the methods listed, the menu will display, and a screenshot is taken of the menu as expected. However, the cursor then REMAINS on the existing menu or the last place the cursor was.
This means if "Menu" is a mouseover menu, I can take a screenshot of the menu, and then click the menu, which is supposed to default me to the "Home" page. However, when I go to the home page, the cursor remains over the "menu" object, which means the mouseover menu pops up and ruins the screenshot for the Home page.
Any suggestions?
As a side note, this code works flawlessly in Firefox and Chrome.
the biggest issue i'm having is that when i click on a link, i can see the confirmation dialog popup. from this site it says:
NOTE: under Selenium, JavaScript confirmations will NOT pop up a visible dialog.
NOTE: Selenium does NOT support JavaScript confirmations that are generated in a page's onload() event handler. In this case a visible dialog WILL be generated and Selenium will hang until you manually click OK.
any idea why i'm seeing a popup when i shouldn't be, or how i can click the 'Ok' on it?
edit: when i record the test using the selenium IDE and run it, it handles confirmation boxes fine. when i exported that test case to PHP, it doesn't work. this is without modifying the code -- using purely what was provided by the IDE.
Try to call
chooseOkOnNextConfirmation() function
From http://release.seleniumhq.org/selenium-core/0.8.0/reference.html
I'm writing some automated tests in C# and a JavaScript error is thrown when I try to click on a button that will submit changes made to a web form. The error I am recieving is:
An error has occured in the script on this page
Line: 2004
Char: 9
Error: Permission denied
Code: 0
URL: file:///C:/DOCUME~1/nkinney/LOCALS~1/Temp/customProfileDir6c0c7d7226cc463fbb1a7f6253c4df62/core/scripts/selenium-browserbot.js
Once the test is finished, the error will still be displayed if I manually click on the button while selenium is running.
The line in selenium to select this button is:
selenium.Click("//input[contains(#id, 'SubmitBtn')]");
I've also tried submit.
A pop-up should be displayed asking the user to confirm they want to make the changes. This error is thrown before the pop-up is displayed and after Selenium 'clicks' on the button.
Any advise would be greatly appreciated.
After further investigation, I found that Selenium is unable to work with custom modal dialog boxes. That said, I don't think I will be able to use Selenium to automate UI testing in our current release. Thanks to anyone who looked at this post.
From the Selenium FAQ
I can't interact with a popup dialog. My test stops in its tracks!
You can, but only if the dialog is an alert or confirmation dialog.
Other special dialogs can't be dismissed by javascript, and thus
currently cannot be interacted with. These include the "Save File",
"Remember this Password" (Firefox), and modal (IE) dialogs. When they
appear, Selenium can only wring its hands in despair.
To solve this issue, you may use a workaround (if one exists);
otherwise you may have to exclude the test from your automated corpus.
For the "Save File" dialog in Firefox, a custom template may be
specified when running via the RC that will always cause the file to
be downloaded to a specified location, without querying the user (see
http://forums.openqa.org/thread.jspa?messageID=31350). The "Remember
this Password" dialog should not appear again after you've chosen to
remember it. Currently there is not much that can be done about IE
modal dialogs.
Do you have the option of seeing if the test runs in another browser (Firefox, Chrome)?
A very similar answer is also here: How do I test modal dialogs with Selenium?