milosev.com
  • Home
    • List all categories
    • Sitemap
  • Downloads
    • WebSphere
    • Hitachi902
    • Hospital
    • Kryptonite
    • OCR
    • APK
  • About me
    • Gallery
      • Italy2022
    • Curriculum vitae
      • Resume
      • Lebenslauf
    • Social networks
      • Facebook
      • Twitter
      • LinkedIn
      • Xing
      • GitHub
      • Google Maps
      • Sports tracker
    • Adventures planning
  1. You are here:  
  2. Home
  3. C#

Selenium in .NET

Details
Written by: Stanko Milosev
Category: Code snippets
Published: 04 June 2015
Last Updated: 06 April 2022
Hits: 4423

Selenium tests in java, I already explained here. Since I am not Java expert I need them to run also in .NET environment, idea is to create console application to parse few web pages, by automatizing Chrome. I am using this web site.

Download Selenium Client & WebDriver Language Bindings, in my case I downloaded this one. You will also need ChromeDriver, in my case I downloaded this one.

Start new project:

Choose console:

 Add references to previously downloaded Selenium Client & WebDriver Language Bindings (in solution explorer right mouse button on References):

 

Browse:

In my case I decided to go on net40:

Add dll's:

In my case I decided to add also ChromeDriver to project, then I will not have explicitly to write path. Right click on the project and click add existing item:

Choose chrome driver:

Select chrome driver, choose properties:

In part Copy To Output Directory, choose Copy always. You can also choose copy if newer, but to avoid possible problems I decided to go like this:

Now I added following name spaces:

using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Support.UI;

Then in Main method add code like:

IWebDriver driver = new ChromeDriver();
driver.Navigate().GoToUrl("http://www.milosev.com");

In line:

IWebDriver driver = new ChromeDriver();

You can also write something like:

IWebDriver driver = new ChromeDriver(@"C:\Users\myUserName\Downloads\chromedriver_win32");

Then you wouldn't need to add chrome driver into the project...

So, this is all you need to start parsing pages with Selenium. Example project download from here.

Execute sql scripts from console

Details
Written by: Stanko Milosev
Category: Code snippets
Published: 24 November 2012
Last Updated: 17 May 2016
Hits: 5068
using System;
using System.Data.SqlClient;
using System.IO;
using Microsoft.SqlServer.Management.Common;
using Microsoft.SqlServer.Management.Smo;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            string[] filePaths = Directory.GetFiles(@"c:\myListOfScripts\", "*.sql");
            Array.Sort(filePaths);

            string connectionString = "server=myServer\\myInstance;database=myDatabase;uid=sa;pwd=mySaPwd";

            SqlConnection cn = new SqlConnection(connectionString);

            Console.WriteLine("Last how many scripts you want to execute?");
            var lastNoScript = Convert.ToInt16(Console.ReadLine());

            FileStream ostrm;
            StreamWriter writer;
            TextWriter oldOut = Console.Out;
            try
            {
                ostrm = new FileStream("./log.txt", FileMode.OpenOrCreate, FileAccess.Write);
                writer = new StreamWriter(ostrm);
            }
            catch (Exception e)
            {
                Console.WriteLine("Cannot open log.txt for writing");
                Console.WriteLine(e.Message);
                return;
            }

            Console.SetOut(writer);
            cn.Open();
            for (int i = filePaths.Length - lastNoScript; i < filePaths.Length; i++)
            {
                Console.WriteLine("Executing script: ");
                Console.WriteLine(filePaths[i]);
                Console.WriteLine();

                FileInfo file = new FileInfo(@filePaths[i]);
                string script = file.OpenText().ReadToEnd();

                ServerConnection svrConnection = new ServerConnection(cn);
                Server server = new Server(svrConnection);
                try
                {
                    server.ConnectionContext.ExecuteNonQuery(script);
                }
                catch (Exception e)
                {
                    Console.WriteLine(script + " : Message: " + e.Message + " Inner exception: " + e.InnerException.Message);
                }
            }
            Console.SetOut(oldOut);
            writer.Close();
            ostrm.Close();
            Console.WriteLine("Press any key...");
            Console.ReadKey(true);
        }
    }
}


For:

using Microsoft.SqlServer.Management.Common;
using Microsoft.SqlServer.Management.Smo;

you will need to add reference to files:

C:\Program Files\Microsoft SQL Server\110\SDK\Assemblies\Microsoft.SqlServer.ConnectionInfo.dll

and

C:\Program Files\Microsoft SQL Server\110\SDK\Assemblies\Microsoft.SqlServer.Management.Sdk.Sfc.dll

C:\Program Files\Microsoft SQL Server\110\SDK\Assemblies\Microsoft.SqlServer.Smo.dll

Your app.config file must to look like:

<?xml version="1.0"?>
<configuration>
<!--<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup>-->
  <startup useLegacyV2RuntimeActivationPolicy="true">
    <requiredRuntime version='v4.0.20506' safemode='true'/>
    <supportedRuntime version='v4.0'/>
  </startup>
</configuration>

To add app.config file do next:

1. On the Project menu, click Add New Item.
2. The Add New Item dialog box appears.

Select the Application Configuration File template and then click Add.

A file named app.config is added to your project.

OCR with MODI

Details
Written by: Stanko Milosev
Category: Code snippets
Published: 27 November 2010
Last Updated: 18 December 2011
Hits: 5532

OCR - optical character recognition, with MODI - microsoft office document imaging.

Microsoft has developed tool for OCR, which we can use it as a COM object.

First you need to install MODI on your computer, then, you can use it like this:

Document md = new Document();
String ocrText = String.Empty;

md.Create(openFileDialog1.FileName);
const bool ocrOrientImage = false;
const bool ocrStraightenImage = false;
md.OCR(MiLANGUAGES.miLANG_ENGLISH, ocrOrientImage, ocrStraightenImage);

var image = (MODI.Image)md.Images[0];
var layout = image.Layout;

foreach (Word word in layout.Words)
{
 if (ocrText.Length > 0)
 {
   ocrText += " ";
 }

  ocrText += word.Text;
}
textBox1.Text = ocrText;

Only problem is if you want to really release the object md, then you ave to use SaveAs method something like:

 

string path = Path.GetDirectoryName(openFileDialog1.FileName);

md.SaveAs(path + "\\deleteMe.tif", MODI.MiFILE_FORMAT.miFILE_FORMAT_DEFAULTVALUE, 
MODI.MiCOMP_LEVEL.miCOMP_LEVEL_MEDIUM);

Taken from here, and from this source code.

My source you can download from here, and exe file can be found here.

Beginner's All-Purpose Symbolic Instruction Code

Details
Written by: Stanko Milosev
Category: Code snippets
Published: 23 November 2010
Last Updated: 18 December 2011
Hits: 4212

Open new form in "modal" style:

  Form2 frmTest = new Form2();
  frmTest.ShowDialog();

To get path from file name:

using System.IO;
...
string path = Path.GetDirectoryName(openFileDialog1.FileName);
  1. NUnit - Get Started
  2. Parameterized Tests
  3. Number of years of oldest child in a list of parents
  4. Simple example

Subcategories

WPF

Beginning

Code snippets

NUnit

LINQ

Windows Forms

Page 29 of 33

  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33