Selenium: Firefox showing different behavior when launched by Selenium - firefox

Note - App coded in Extjs
Certain ExtJs elements or parts of elements (like titles) are not appearing or loading when using the selenium launched FF.
Things I tried
Going to the same page with a manually launched firefox - works
Stopping the test after login to use the launched version and going
to the same with issues - still see issues
Updated to latest version of FF - same issues.
Is there anything with the Firefox driver in selenium that could be causing these discrepancies?
To add to to the situation I can actually get the store behind the grid that isn't loading up

The thing is ExtJS is using a really annoying HTML5 features, which need a bit more then simple simulations of user interactions. For ecample an element could be with no childs, but when you will click on it, it will automatically load all of it's childs. That's why you don't see all the elements.
For that purposes, if you are using java you should use http://html5robot.com or similar things, which are developed to help Webdriver interact with complex HTML5 solutions.

Related

Responsive design view on Firefox with Webdriver

Using Selenium Webdriver on Ruby, is there a way to set up Firefox to be opened on "Responsive Design View" and continue executing tests for the whole session?
I've done it on Google Chrome and it's working fine (sans the touch support part). For Firefox, I've only seen questions around creating preset for screen size but not much activity on how to actually execute tests on said profile.
Please advise.

How do I Start My Browser (Firefox) the Way Selenium Does?

I've got a Selenium test which crashes my browser (Firefox) whenever it runs. It's just a simple test (login, logout, login, logout, login ... crash) and I can't reproduce the crash when I do the same things manually, so I think the problem is with Selenium itself.
However, the issue could be that my Firefox starts with different options than when Selenium starts it. I could confirm that's not the case if I could start Firefox the exact same way Selenium starts it (eg. without plug-ins, with all history cleared, etc.) ... but I'm not sure how to do that.
Can anyone tell me which options to use to make Firefox run the same way as when Selenium runs it?
I was never able to find out how to emulate Selenium's use of Firefox. I tried using a fresh Firefox profile, but that still seemed to have differences from how Selenium ran Firefox.
Instead I wound up re-writing my test to be two tests, and then it was able to log in/out twice in the first test and once in the second test, avoiding the issue I was trying to debug (which only manifests when I try to log in/out 3 times in the same test).
If anyone can provide a better explanation of how to emulate Selenium's running of Firefox I'd be happy to accept that answer.

Cannot perform native interaction: Could not load native events component for Selenium-webdriver 2.35.0 and Firefox 23.0.1 combination

For automating one of the tests, I've to perform drag and drop. Hence, I tried to achieve it following way:
driver.action.drag_and_drop(source, target).perform
but it results into an error:
Selenium::WebDriver::Error::InvalidElementStateError: Cannot perform native interaction: Could not load native events component.
I ran this test on following configuration:
Firefox 23.0.1
Selenium WebDriver 2.35.0
I chose above combinations because change log says - with Selenium WebDriver 2.35.0 and Firefox 23, native event components works fine.
Even though I used correct Firefox and Selenium WebDriver versions, it's throwing error.
Looking at stackoverflow, I can see same kind of issue has been asked several times. And answers to these questions are like: either downgrade/upgrade Firefox, Selenium WebDriver versions
Everytime Firefox or Selenium WebDriver version is upgraded, users face these problems. Hence user look at change log and try find right combination of Firefox and WebDriver. (and even though I followed it, I'm facing problem)
My questions are:
Is there easiest way which will help to choose correct Firefox and Selenium WebDriver versions?
Or is there any workaround for mouse interactions using Selenium?
so that we can get rid of Cannot perform native interaction: Could not load native events component.error.
You should also have the option of "manually" executing the JS function which is triggered by the drag and drop, using driver.execute_script("JavaScript code here").

Firefox 9.0.1 Broke Internal Wiki Layout

The most recent version of Firefox has messed up our internal wiki layout so that the left bar menus are displayed below the content on all pages now.
I've tried using multiple resolutions and window sizes and the problem persists so that doesn't appear to be the issue.
There are no problems with Chrome or IE however.
A screenshot of the problem is attached here for you to see.
You're using an old MediaWiki version. It does UA sniffing and sends different code to different browsers, relying on bugs in some of the browsers to make the code sent to them render correctly.
Firefox 9 removed a nonstandard property that only Gecko used to implement. MediaWiki was using that property to decide that the rendering engine was Gecko. With it gone, MediaWiki now decides that you're using kthml and sends CSS rules tailored to khtml bugs... but Gecko happens to not have those bugs. So the rendering ends up wrong.
Your options are to either update to MediaWiki 1.16 or newer (which you should do anyway, because your version is not getting security fixes anymore!) or wait for Firefox 10 to come out, because chances are that will restore the nonstandard property because too many sites were sniffing for it.
See also https://bugzilla.mozilla.org/show_bug.cgi?id=683151 and https://bugzilla.wikimedia.org/show_bug.cgi?id=31807 for more info.

PrintWindow works in standalone application and does partially work in NPAPI plugin

I have a code, which captures a given window by PrintWindow function. Specifically I do capture web-pages in a browser. This code is tested in a standalone Windows application, and it works ok. The same code is incorporated into NPAPI plugin and loaded into Google Chrome. There problems happen. If Chrome has only one tab, the code works OK. If Chrome has 2 tabs, the code returns black box of expected size. I tested the standalone application and the plugin at the same moment, on the same window handle (Chrome_RenderWidgetHostHWND). Application does ALWAYS work, the plugin does ALWAYS fail if multiple tabs are open in the browser.
I'd really appreciate, if someone give a clue how to fix this.
Thanks in advance.
NB. Other methods of capturing windows are inapplicable due to even greater shortcomings for my usecase.
I bet you're running into sandboxing issues.
Your app is likely running at the "normal" integrity level, so it has no problem posting the WM_PRINT or WM_PRINTCLIENT message to the Chrome process. (PrintWindow uses these messages under the covers.)
When you're a plugin in Chrome, I believe your code runs as a "low" integrity process (which reduces the chances of things like shatter attacks). Thus it doesn't surprise me that sending the message to a window in another process fails.
Unfortunately, that doesn't explain why it works when Chrome has only one tab. Are you finding the same instance of Chrome_RenderWidgetHostHWND in both the app and the plugin in the case where you have multiple tabs open? In general, there's one of these windows per tab. How are you finding the window?

Resources