18 January 2026:
Sahi Pro is an enterprise grade test automation platform which can automate web, mobile, API, windows and java based applications and SAP.
This forum is now archived and is in read-only mode. Please continue discussions on our improved new Sahi Pro Community forum.
Sahi Pro is an enterprise grade test automation platform which can automate web, mobile, API, windows and java based applications and SAP.
Should we choose Sahi?
We need a test-runner to complete the last stage of a much larger project called "Tenderer" that we developed in C# .NET
We don't need to do testing as such, but we need to simulate a real user clicking and typing in a browser. So we'll call this last stage of our project "BrowserUser".
Development of "Drifter" is complete. Development of "BrowserUser" has not yet begun.
This is the situation:
We have 10 financial accounts with 10 institutions in the UK, all of which have their own websites.
BrowserUser will open a browser for each of these sites and log in to our accounts at the start of the run
Drifter will do the heavy lifting, and during up to 60 loops will pass parameters to BrowserUser
Each loop:
The parameters will include the name of one of the sites, the name of an item, and the decimal amount of a financial tender.
In the browser instance for the named site, BrowserUser must
(1) locate the item out of many similar items on the web page
(2) locate the exact button (again out of many) to click to lodge a tender for that exact item
(3) locate the element into which it must type the amount of the tender
(4) locate a button to click to confirm the tender.
Each item belongs to a category. We compete for the tenders by category. Drifter keeps looping until it has passed all items in the category to BrowserUser. Additional loops will be for the next category, and so on.
The quicker BrowserUser can lodge all tenders for a category, the better the financial result.
All the web sites are different. Some are badly set out, and the items are not on the same page as the elements where the tenders are to be lodged. BrowserUser needs to cope with this in the quickest way possible.
We could develop BrowserUser in .net (C#), but none of us is a career programmer and we'd prefer to use an established product. Selenium 2 looked just right, until we found its .net binaries don't include the headless browser (htmlUnit).
Things we prefer:
1. Headless browser - essential
2. Usable in or from .net. We must at least be able to pass parameters quickly from .net during many loops, as we've explained
3. Allows us to program against changes to web sites - essential
4. Documentation - not essential if dll available for .net, otherwise essential
5. A recorder - not essential
6. Smallness. We don't need a lot of bells and whistles.
Things we don't prefer:
1. extraneous "starts" such as the command line/batch file/Start-run/whatever to run the rc server in selenium 1. This is a no-no!
2. selenese or equivalent. This is NOT a definite no-no, but for us programming is just a means to a commercial end, and we don't want to learn any more of it than we absolutely have to.
3. lack of control over windows opening up at run time.
If you have read this far, we thank you for your patience.
To sum up:
We need simultaneous instances of 10 headless browsers that can accept paramteres from C#, locate elements, click and type, and navigate quickly.
Can Sahi do this?
We don't need to do testing as such, but we need to simulate a real user clicking and typing in a browser. So we'll call this last stage of our project "BrowserUser".
Development of "Drifter" is complete. Development of "BrowserUser" has not yet begun.
This is the situation:
We have 10 financial accounts with 10 institutions in the UK, all of which have their own websites.
BrowserUser will open a browser for each of these sites and log in to our accounts at the start of the run
Drifter will do the heavy lifting, and during up to 60 loops will pass parameters to BrowserUser
Each loop:
The parameters will include the name of one of the sites, the name of an item, and the decimal amount of a financial tender.
In the browser instance for the named site, BrowserUser must
(1) locate the item out of many similar items on the web page
(2) locate the exact button (again out of many) to click to lodge a tender for that exact item
(3) locate the element into which it must type the amount of the tender
(4) locate a button to click to confirm the tender.
Each item belongs to a category. We compete for the tenders by category. Drifter keeps looping until it has passed all items in the category to BrowserUser. Additional loops will be for the next category, and so on.
The quicker BrowserUser can lodge all tenders for a category, the better the financial result.
All the web sites are different. Some are badly set out, and the items are not on the same page as the elements where the tenders are to be lodged. BrowserUser needs to cope with this in the quickest way possible.
We could develop BrowserUser in .net (C#), but none of us is a career programmer and we'd prefer to use an established product. Selenium 2 looked just right, until we found its .net binaries don't include the headless browser (htmlUnit).
Things we prefer:
1. Headless browser - essential
2. Usable in or from .net. We must at least be able to pass parameters quickly from .net during many loops, as we've explained
3. Allows us to program against changes to web sites - essential
4. Documentation - not essential if dll available for .net, otherwise essential
5. A recorder - not essential
6. Smallness. We don't need a lot of bells and whistles.
Things we don't prefer:
1. extraneous "starts" such as the command line/batch file/Start-run/whatever to run the rc server in selenium 1. This is a no-no!
2. selenese or equivalent. This is NOT a definite no-no, but for us programming is just a means to a commercial end, and we don't want to learn any more of it than we absolutely have to.
3. lack of control over windows opening up at run time.
If you have read this far, we thank you for your patience.
To sum up:
We need simultaneous instances of 10 headless browsers that can accept paramteres from C#, locate elements, click and type, and navigate quickly.
Can Sahi do this?
Comments
Our latest version is called "Tenderer", not "Drifter".
In our first post, please read "Tenderer" for "Drifter"
tenderer
Sahi needs a proxy to be running, and the browser needs to configured to use the proxy. You can then control the browser with Javascript, Java or Ruby. We do not have .NET bindings yet. Sahi needs a browser to run scripts so unless you find a good headless browser, your requirement may not be met. HTMLUnit does not work well with all websites so you may have to check if your websites work on it before you choose it.
So points 1 and 2 are not easily met. For point 2, would it work if you generate the data in a CSV file and Sahi reads it from the CSV file? Points 3-6 are doable by Sahi. I would suggest that you briefly play with Sahi, check where your requirements are not met, and post those requirements on the forum. We will confirm whether they are limitations or there are work-arounds for it.
Regards,
Narayan
Thanks for your prompt reply.
Do you know of any headless browsers that could be configured to use the proxy? We've spent a lot of time looking for one but have ended up going around in circles.
Regards,
tenderer
The sentence that caught my eye is this one: "You can even run your Sahi tests headless using Firefox in an X-Window virtual frame buffer on Linux."