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#
  4. Code snippets

Example of WebClient

Details
Written by: Stanko Milosev
Category: Code snippets
Published: 21 December 2019
Last Updated: 10 February 2022
Hits: 1569
Just a small example of WebClient:
string milosevCom = "http://www.milosev.com";
string doc = "";
using (System.Net.WebClient client = new System.Net.WebClient())
{
	doc = client.DownloadString(milosevCom);
}

Console.WriteLine(doc);
Console.ReadKey();
WebClient is from .NET 6 obsolete.

Selenium in Mono under Ubuntu

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

Here I explained how to install MonoDevelop. As I already explained here, first download Selenium Client & WebDriver Language Bindings, in my case I downloaded this one. You will also need ChromeDriver (this time for linux), in my case I downloaded this one. 

If you try to use chromedriver for windows you will receive errors like:

OpenQA.Selenium.WebDriverException: Unexpected error. System.Net.WebException: Error: ConnectFailure (Connection refused) ---> System.Net.Sockets.SocketException: Connection refused
at System.Net.Sockets.Socket.Connect (System.Net.EndPoint remoteEP) [0x000f7] in <filename unknown>:0
at System.Net.WebConnection.Connect (System.Net.HttpWebRequest request) [0x0019b] in <filename unknown>:0
--- End of inner exception stack trace ---
at System.Net.HttpWebRequest.EndGetRequestStream (IAsyncResult asyncResult) [0x00043] in <filename unknown>:0
at System.Net.HttpWebRequest.GetRequestStream () [0x00057] in <filename unknown>:0
at OpenQA.Selenium.Remote.HttpCommandExecutor.Execute (OpenQA.Selenium.Remote.Command commandToExecute)

and:

run-detectors: unable to find an interpreter for /home/stanko/Downloads/SeleniumTest/SeleniumTest/bin/Debug/chromedriver.exe

Also if you in terminal window write something like:

mono chromedriver.exe

Then you will receive error like:

Cannot open assembly 'chromedriver.exe': File does not contain a valid CIL image

That is why we need to use Linux version of chromedriver.

Download and install Chrome.

Open MonoDevelop, start new solution:

choose console project:

After creating project right click on references:

 

switch to .Net Assembly tab, and add selenium dll's which we downloaded previously. 

Now open Program.cs, in using section write:

using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;

In main method write something like:

ChromeDriverService service = ChromeDriverService.CreateDefaultService(@"/home/myUserName/projects/SeleniumTest/lib/chromedriver_linux64", "chromedriver");
IWebDriver driver = new ChromeDriver(service);
driver.Navigate ().GoToUrl ("http://www.milosev.com");

Notice line:

ChromeDriverService service = ChromeDriverService.CreateDefaultService(@"/home/myUserName/projects/SeleniumTest/lib/chromedriver_linux64", "chromedriver");

This line we need to tell selenium that we will use Linux chromedriver, otherwise Selenium will always try to load chromedriver.exe (Windows one).

Whole application should look like this:

using System;

using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;

namespace SeleniumTest
{
	class MainClass
	{
		public static void Main (string[] args)
		{
			ChromeDriverService service = ChromeDriverService.CreateDefaultService(@"/home/myUserName/projects/SeleniumTest/lib/chromedriver_linux64", "chromedriver");
			IWebDriver driver = new ChromeDriver(service);
			driver.Navigate ().GoToUrl ("http://www.milosev.com");
		}
	}
}

Of course path "/home/myUserName/projects/SeleniumTest/lib/chromedriver_linux64" change to path where you downloaded your chromedriver.

Example download from here, and don't forget to use http in your URL's otherwise Selenium will not work.

Selenium in .NET

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

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: 5124
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.

  1. OCR with MODI
  2. Beginner's All-Purpose Symbolic Instruction Code

Page 1 of 2

  • 1
  • 2