Web Drivers Explained - webdriver

Can someone explain drivers to me, in the context of application testing.
Take Capybara for instance...it says it supports multiple drivers. I am having a hard time understanding exactly what they are, and how they relate to Capybara, Gherkin, etc.

The drivers capybara supports (rack-test driver, selenium driver, poltergeist, capybara-webkit, ...) are the code that interfaces between the Capybara API and whatever tool is being used to test (rack-test, selenium, phantomjs, qt-webkit, etc). So when you write page.find :css, '#abcdefg' the driver converts that to the correct instructions for whatever is actually driving the browser. They have no relation to Gherkin at all.

Related

Where to find IBM WebSphere WMQ 6.0 jar files

I am trying to implement code where I can send and receive the SOAP messages to IBM MQ. As of my knowledge jar file are required for my code to work, but could not find any place where either I can download the files or can do whole setup of WebSphere 6.0
Do anyone have any idea how can I get it ?
Please be aware that grabbing the jar files from an MQ Server or other installation is not supported by IBM and never has been. However, because it is one of the most commonly used methods to install the MQ client for Java or JMS and fairly common in Java developer culture, IBM has provided a Java-only install option. Please see the Redistributable Clients page in the Knowledge Center for details.
As the name suggests, this install provides an MQ Client package that can be redistributed with independently developed MQ applications. While that is helpful, the main reason IBM provides it is to provide a lightweight install package that...
Contains the correct and complete set of jar files as packaged by IBM.
Is intact and verifiable against a known specification and inventory.
Can reliably be expected to perform as per the documentation set for that version.
Contains all of IBM's diagnostic utilities both in the compiled binaries and in the Java classes.
Contains additional utilities such as GSKit for managing certificates.
Can be patched using IBM's standard Fix Pack install media so that integrity of the installed classes and libraries is preserved.
When using IBM's install media and procedure, the result is far more stable but int he event something goes wrong, the presence of the diagnostic utilities and conformance to a standard install procedure can dramatically reduce outage durations.
Also, there are occasional instances in which a customer with full support entitlements is told that their non-standard installation is not supported and they need to correct it before continuing the PMR. Though this doesn't happen often, in most cases the problem is resolved when the MQ client is installed according to spec. When that doesn't fix it, at least diagnostics can proceed at a faster pace.
The link above has all the details, including links to the client downloads, and is highly recommended reading. You can also go directly to Fix Central for the downloads. Fix Central offers all supported MQ client versions and the relocatable clients come in v8.0 and up. In the download list, look for the "All Java" package.
As Tim noted, mixing client and server versions is supported, provided both client and server are currently in service. Generally you want to develop against the latest version of MQ client because it has the most recent client-side features and will have the longest service life before a version upgrade is required.
Assuming you're on a Unix platform for your queue manager, the client will be found at:
/opt/mqm/java/lib
However, all MQ clients are compatible with all queue manager versions. I strongly recommend you use a client which is still supported, which means 7.1, 7.5, 8.0, or 9.0 at time of writing. These are freely downloadable from the SupportPac website.
The SupportPacs of interest are those starting 'MQC'. SupportPac MQC8 for example contains the MQ V8.0 client.
Thanks everyone. Just an update to the above answer. In my case I have asked the WebSphere administrator for providing me the lib folders which contains all the required MQ jar files.
I have asked him to provide following files from the C:\Program Files (x86)\IBM\WebSphere MQ\Java\lib\ folders:
* com.ibm.mq.jar
* connector.jar
* com.ibm.mq.jmqi.jar
* com.ibm.mq.headers.jar
* com.ibm.mq.commonservices.jar

How to verify if my scanner driver is TWAIN compatible?

We have a application which integrates a 3rd party scanning component - Dynam .NET TWAIN. It's working well with my HP scanjet 5700. Recently, we got Cannon LiDE210 but it doesn't work. I finally noticed that our application needs to work with TWAIN compatible drivers.
How can I verify if my scanner driver supports TWAIN? We are going to send the application to other customers. I am looking for a easy way to find out if my clients' scanners support TWAIN.
Thank you.
There is a handy tools called TWACKER...Make sure you run it as admin. Choose File->Select Source, and see if your scanner is listed there. If your scanner is listed, it means you are using a TWAIN driver, in which you can have a further scanning with different scanning settings to check your scanner's TWAIN compatibility. Otherwise, you need to find a TWAIN drvier for your scanner.
You can download TWACKER on http://www.twain.org/scannerdriverdevelopers/specification-and-tools.html .
Cheers.
Inspector Twain could be what you're looking for.
http://inspectortwain.com/
I'm sure the Canon LiDE 210 is TWAIN compatible, or rather, has a TWAIN driver. If it isn't working with your Dynamsoft software, they (Dynamsoft) would be the first place to go for support.
But before you contact Dynamsoft, you should check that you have the correct Canon TWAIN driver installed for your version of Windows, and that it can scan from your scanner.
For some reason, Canon Asia has a better page on this driver than Canon USA:
http://support-asia.canon-asia.com/contents/ASIA/EN/0100294501.html
I hope I don't need to say this: You should only download and install drivers from the scanner vendor's website(s)!
To verify that a TWAIN driver is working, I & my colleagues often scan from IrfanView - it's free, millions of copies in use, and has code that works with pretty much any TWAIN driver. If IrfanView can't scan from your scanner, the TWAIN drive either isn't installed or isn't working - at that point you should look to the scanner vendor for support, in this case, Canon.
PS I admire Irfan Skiljan's work, but have no other connection with IrfanView.
PPS As you may have figured out by now (especially if you played with Twacker or Inspector Twain), "TWAIN Compatibility" isn't an all-or-nothing thing. Different scanners support different sets of TWAIN features, and nearly every TWAIN driver violates the TWAIN standard in SOME way. But don't get me started on that. ;-)

ActiveX on Linux using Mono?

Is there any way for ActiveX controls to work on Linux? I'd imagine the answer is no, but just want to be sure.
My company is considering a Linux port of a ASP.NET project (using Mono), but it uses ActiveX controls quite heavily, so we wonder if it's even feasible.
Sorry if the question is dumb!
Even if ActiveX were supported on Linux, you still should not use it, since it is rather alien (as in 'hard to maintain') on that environment.
My advice is to rewrite the entire project with AJAX or flash in such a manner that it will run in any browser on most any platform.
Mono is not ActiveX! Even if you could rewrite using client side mono for activeX, your code would only run if the client machine has a mono installation.
If you're forced to use some third-party ActiveX controls, you can't use them directly on Linux - they expect a certain runtime enviroment thats not trivial to provide (it could be done, but its not viable).
The best thing you can do is to write a small host-program, running in WINE, that loads the controls and provides an alternative interface to them via a IPC mechanism.
As a variation on gf's answer, you could run Mono within Wine on Linux. Mono has some COM Interop support, and Wine supports COM, so in theory this will work.
Whether you want to run Mono atop Wine atop Linux is another matter, as it increases the number of things that can break.

Simulating a TWAIN Device

Our company is using some software that ONLY accepts input from an "Imaging Device" i.e. a TWAIN device (e.g. scanner).
The problem is that we are receiving our files digitally, so using an actual scanner would require us to print, scan, and shred documents that we already have on the computer, but not in the software.
I was curious if anybody has any idea of how we might be able to work around this problem in the meantime. My first thought was to find some way to trick the program into thinking we're using a scanner, via some new 'imaging device' that would just read in the file, and spit it out to the software, but I don't even know where to begin with that.
We put in a feature request, seeing as how this problem should obviously be addressed in the software itself, but the company is notorious for lagging pretty hard when it comes to updates.
The system used by scanners is called TWAIN, so you'd be looking for some sort of virtual twain driver.
A quick google search will produce several hits, I don't have any experience with the software myself so can't advise any further.
Two such providers I found via experts exchange:
http://www.twaintools.de
http://www.scanpoint-usa.com
OK, months late... but in case you are interested, I have a TWAIN driver framework/toolkit that might let you build this fairly easily, depending on just what your scanning app expects, and how hard it is to read images from your digital documents. It's a Microsoft Visual C++ project. No charge but you'd need our permission to redistribute a driver based on it: GenDS
The TWAIN Working Group also has a sample/skeleton driver, I think it's straight C - and used to have some rather bad bugs (Why I wrote mine ;-) but, it might have got better.
Look for the "sample data source and application" on their download page.
And of course I have a 'commercial' version of GenDS that I use to write TWAIN drivers on contract.

In Windows Mobile (5/6) SDK, where did windns.h go?

According to http://msdn.microsoft.com/en-us/library/aa916070.aspx (DnsQuery_W), DNS query libraries are available on Windows Mobile / CE developers for versions 5.0 onwards. Yet, "#include " gives nasty "file not found" errors. What gives?
Strangely enough "dnsapi.lib" is available. Does Microsoft actually expect developers to scavenge the file from somewhere?..
The posted thread here claims that this API is not actually available in Windows Mobile 5 (and perhaps later?), despite claiming otherwise. I looked through the Mobile 5 and 6 SDKs, and didn't see this API either, so perhaps the thread's suggestion might work for you:
If it's a simple host name->IP address
(IPv4 or v6), you can use getnameinfo
in Winsock. The DNSQuery_W is only
needed if you're doing like a
non-A/AAAA query. If you're doing
that, we really don't have any helpers
to do that for you from the OS side -
sorry. You may look around to see if
there's helper library floating around
out there that you may be able to
recompile for CE (assuming you're
comfortable with whatever licensing
agreements they may put on you.)
getnameinfo should be documented here (for Windows Mobile), in case that helps.
If you are really after 'windns.h', I found it in the WM5/WM6/WM6.1 Platform Builders in
\public\common\sdk\inc
The hard part is getting access to the WM Platform Builder if your an ISV. That I can't help you with.

Resources