Selenium webdriver not responsive after click - java

I am trying to login to web outlook of test exchange server. Using selenium webdriver I am able to input the username , password and then click on the sign in button in web outlook. But after clicking there is no response in selenium neither throwing exception.No actions beyond the click will be performed.
But same scenario if I am running with HTTP instead of HTTPS, everything works fine.
Does it has to do something with IE settings? I have unchecked 'Warn about certificate address mismatch *" in Advanced section of Internet Options. This is done to bypass the SSL certificate error.

There may be few reasons.
1)Element may be out of focus. try focusing the element by using sendKeys(Keys.CONTROL).
2)There may be a page refresh happening or AJAX call when you are trying to click element. try using implicit wait until ajax call completes.
3)Website which you are trying to automate may be Siebel application(containing Active X Control)

Related

Certificate authentization while using WebSampler in JMeter

I am trying to handle the following issue while trying to automate login process with JMeter WebDriver Sampler to our web app, which requests an authoriaztion certificate for a user to log in.
After filling credentials and clicking the Login button, the following window is called:
dialog window. I assume this is an OS window that cant be aimed by Selenium/WebDriver Sampler script - or is it possilbe?
EDIT: I found some solution e.g. https://sqa.stackexchange.com/questions/7640/how-to-select-security-certificate-from-security-dialog bit I am kind of afraid of implement the recommended code to the script - isnt there another solution then via Selenium script?
I tried to set a certificate in jmeter's system.properties file:
system.properties keystore setting.
I supposed it makes SOMETHING, e.g. some error after launching script, but it ends on the exactly same step - dialog window with Certificate choosing offer. So I assume this is wrong place to set user authentication certificate.
How is it possible to handle this kind of login process? I guess it is necessary to set a default certificate that is paired with the user's credentials I am sending in the previous step in my script, but I dont know where.
What you set in JMeter's "system.properties" file only affects the client certificates for HTTP Request samplers.
WebDriver Sampler is a different beast, it uses Selenium libraries to automate the real browser hence you need to follow your browser documentation to learn how to automate the certificate selection process.
For example for
Chrome on Windows it's in registry
for Chrome on Linux/Unix it's under /etc/chromium/policies/managed folder
More information: AutoSelectCertificateForUrls

connecting to the opened web browser using java selenium

Due to some reason ... i need to open the browser window manually and do some steps before running the script.
after running the script i want it to connect with that window only (manually opened).
p.s-since its manually opened .. cant pass the object of the WebDriver.
how can i direct my script to use that specific window.
somewhere found this-
driver = new RemoteWebDriver(newURL("http://10.0.1.10:4444"), new DesiredCapabilities());
Q1.how can found the this url "http://10.0.1.10:4444" which will work for me.
Q2. how will this driver know to go to firefox only and not chrome or IE. and to connect with particular tab and not the any other tab.
:- though i can keep only only one tab open in firefox.. Q2,second part for knowledge purpose only.
any kind of help will be highly appreciated.
Thanks
As you can see here
It is not currently possible to connect to a browser which is not opened by selenium.
What you can do is start the browser via selenium and then wait until you're done with your actions before continuing. Something like the following:
Start browser
Wait until element visible with long timeout
//Perform manual actions on browser
//Open page to test manually
//Testscript now executes because element at step 2 is found
WebDriver spawns its on own browser instance, it cannot work on already open browser window.
If you can mention what steps you have to manually do before starting the webdriver script then help can be provided on that.

You are exploring an API that is described or served via HTTP instead of HTTPS

After following the steps described here to create an API :
https://cloud.google.com/appengine/docs/java/endpoints/getstarted/backend/helloendpoints
I open the following URL on my browser :
http://localhost:8080/_ah/api/explorer
after running
mvn appengine:devserver
to test the API locally.
However, the browser redirects to
https://cloud.google.com/appengine/docs/java/endpoints/getstarted/backend/helloendpoints
and the following error appears in red :
You are exploring an API that is described or served via HTTP instead of HTTPS. This is insecure and may be blocked by your browser. To fix this, set up a TLS proxy for your API. Alternatively, you can tell your browser to allow active content via HTTP at this site (on Chrome, click the shield in the URL bar), but this will not improve security or dismiss this message.
and the API explorer is blank
What is the best way around this?
The best way around this is in the error message.
To fix this, set up a TLS proxy for your API. Alternatively, you can tell your browser to allow active content via HTTP at this site (on Chrome, click the shield in the URL bar), but this will not improve security or dismiss this message.
You can create a self signed ssl cert and set up a local ssl proxy that forwards to your application or you can tell your browser to allow mixed content (http inside of https). Both ways will work, I personally use the latter method and click the shield icon in Chrome to tell it that it is OK.

How to use already opened browser active session in webdriver

Is there any way to inherit a session into webdriver? I did lot of search and know it that selenium does not support connecting to already opened browser. It would be better if i could. But now I have thought about some work around. Actually my application starts with a shortcut file which launch firefox, hit the application URL, made the log in, go to the dashboard and leave for the user to use it. In that case i do not need to work on that opened browser, if i can get that active session only and set it while opening the webdriver with selenium then my purpose is solved. Even its possible manually also. As selenium always open incognito webdriver window, i am unable to get that session there. Can any one tell me how to get that session from already opened browser and use it in webdriver? Any help or suggestion would be highly appreciated.
Selenium is just a server which accepts http requests using the json wire protocol. https://code.google.com/p/selenium/wiki/JsonWireProtocol
It's an http API.
Each call in the json wire protocol adds a sessionId parameter to the request.
So if you start a session using a driver, you can save that session ID and then instantiate a new driver object and give it the sessionId from before.
If the selenium server is still running that session, then it has no idea which driver object you are using when you send in a request. Feel free to have 100 drivers all with the same sessionID at the same time! :D

Java Applet & SSL/Certificate

My website uses SSL and takes them directly to a Java applet after login. The applet yields a warning screen proclaiming that the website's certificate can't be verified. After clicking "Yes" to continue anyway, a second pop up appears with:
Identification required. Please select certificate to be used for authentication.
Underneath that message, there is a white box that I assume is supposed to list certificate options. Mine doesn't have any options, so I am forced to click "OK" and the applet doesn't load.
The certificates for the website are installed on the browser. I also installed them by right-clicking on the Java icon within the Windows task bar, clicking "Open Control Panel" and installing them through the Security options.
Nothing seems to work. Does anyone have any ideas?
You have your Tomcat or whatever configured to request or require SSL client certificates. The effect at the client is the same for both: an incoming CertificateRequest. So it pops up the 2nd dialog. If you cancel and it is 'request' not 'require', the applet should load.
I have had numerous problems with applets and HTTPS recently, including what look like Java plugin bugs, and have concluded that the answer is really to load them via HTTP in plaintext.
The first dialog should be fixed by not using a self-signed SSL certificate.

Categories

Resources