Подтвердить что ты не робот

Как использовать Selenium в С#?

Selenium.

Я загрузил драйверы С# и IDE. Мне удалось записать некоторые тесты и успешно запустить их из среды IDE. Но теперь я хочу сделать это с помощью С#. Я добавил в проект все соответствующие DLL (Firefox), но у меня нет класса Selenium. Некоторый мир привет будет приятным.

4b9b3361

Ответ 1

Из Документация селена:

using OpenQA.Selenium.Firefox;
using OpenQA.Selenium;

class GoogleSuggest
{
    static void Main(string[] args)
    {
        IWebDriver driver = new FirefoxDriver();

        //Notice navigation is slightly different than the Java version
        //This is because 'get' is a keyword in C#
        driver.Navigate().GoToUrl("http://www.google.com/");
        IWebElement query = driver.FindElement(By.Name("q"));
        query.SendKeys("Cheese");
        System.Console.WriteLine("Page title is: " + driver.Title);
        driver.Quit();
    }
}

Ответ 2

  • Установить пакетный менеджер Nuget
    Ссылка для скачивания: https://visualstudiogallery.msdn.microsoft.com/27077b70-9dad-4c64-adcf-c7cf6bc9970c
  • Создание визуального консольного приложения С#
  • Щелкните правой кнопкой мыши по проекту → Управление пакетами Nuget.
    Найдите "Selenium" и установите пакет Selenium.Support

Готово теперь вы готовы написать свой код:)

Для кода с загрузкой IE ie driver
Ссылка: http://selenium-release.storage.googleapis.com/index.html
Открыть 2.45 в качестве последней версии Загрузить IEDriverServer_x64_2.45.0.zip или IEDriverServer_Win32_2.45.0.zip
Извлеките и просто вставьте файл .exe в любом месте, например C:\
Помните путь для дальнейшего использования.

Ссылка по ссылке OverAll: http://www.joecolantonio.com/2012/07/31/getting-started-using-selenium-2-0-webdriver-for-ie-in-visual-studio-c/

MY Пример кода:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using OpenQA.Selenium;
using OpenQA.Selenium.Support.UI;
using OpenQA.Selenium.IE;

namespace Selenium_HelloWorld
{
    class Program
    {
        static void Main(string[] args)
        {
            IWebDriver driver = new InternetExplorerDriver("C:\\");
            driver.Navigate().GoToUrl("http://108.178.174.137");
            driver.Manage().Window.Maximize();
            driver.FindElement(By.Id("inputName")).SendKeys("apatra");
            driver.FindElement(By.Id("inputPassword")).SendKeys("asd");
            driver.FindElement(By.Name("DoLogin")).Click();

            string output = driver.FindElement( By.XPath(".//*[@id='tab-general']/div/div[2]/div[1]/div[2]/div/strong")).Text;

            if (output != null  )
            {
                Console.WriteLine("Test Passed :) ");
            }
            else
            {
                Console.WriteLine("Test Failed");
            }
        }
    }
}

Ответ 3

Чтобы настроить ide для селена в сочетании с С#, нужно использовать visual studio express. И вы можете использовать nUnit в качестве основы тестирования. Ниже ссылки предоставляют вам более подробную информацию. Кажется, у вас есть настройка того, что объясняется в первой ссылке. Поэтому проверьте вторую ссылку для получения дополнительной информации о том, как создать базовый script

Как настроить клиентские драйверы С#, nUnit и selenium на VSExpress для автоматизированных тестов

Создание основного тестового примера веб-драйвера Selenium с использованием Nunit и С#

Пример кода из приведенного выше блога

    using System;
    using Microsoft.VisualStudio.TestTools.UnitTesting;
    //Step a
    using OpenQA.Selenium;
    using OpenQA.Selenium.Support;
    using OpenQA.Selenium.Firefox;
    using NUnit.Framework;
    namespace NUnitSelenium
    {
[TestFixture]
public class UnitTest1
{      

    [SetUp]
    public void SetupTest()
    {
    }
    [Test]
    public void Test_OpeningHomePage()
    {
        // Step b - Initiating webdriver
        IWebDriver driver = new FirefoxDriver();
        //Step c : Making driver to navigate
        driver.Navigate().GoToUrl("http://docs.seleniumhq.org/");

        //Step d 
        IWebElement myLink = driver.FindElement(By.LinkText("Download"));
        myLink.Click();

        //Step e
        driver.Quit();

        )
       }
}

Ответ 4

Я знаю, что это более старый вопрос, но я думал, что буду размещать эту информацию там для других.

Одна из вещей, которые мне трудно найти, - это использование PageFactory в С#. Особенно для нескольких IWebElements. Если вы хотите использовать PageFactory, вот несколько примеров. Источник: PageFactory.cs

Чтобы объявить html WebElement, используйте это внутри файла класса.

private const string _ID ="CommonIdinHTML";
[FindsBy(How = How.Id, Using = _ID)]
private IList<IWebElement> _MultipleResultsByID;

private const string _ID2 ="IdOfElement";
[FindsBy(How = How.Id, Using = _ID2)]
private IWebElement _ResultById;

Не забудьте создать экземпляр элементов объекта страницы внутри конструктора.

public MyClass(){
PageFactory.InitElements(driver, this);
}

Теперь вы можете получить доступ к этому элементу в любом из ваших файлов или методов. Также мы можем отнести относительные пути от этих элементов, если хотим. Я предпочитаю pagefactory, потому что:

  • Мне никогда не нужно вызывать драйвер напрямую с помощью driver.FindElement(By.Id( "id" ))
  • Объекты lazy initialized

Я использую это, чтобы написать собственное ожидание методов элементов, обертки WebElements, чтобы получить доступ только к тем, что мне нужно, чтобы показать тестовые скрипты, и помогает поддерживать чистоту.

Это облегчает жизнь, если у вас есть динамические (автоматизированные) веб-элементы, такие как списки данных. Вы просто создаете обертку, которая будет принимать IWebElements и добавлять методы, чтобы найти элемент, который вы ищете.

Ответ 5

FirefoxDriverService service = FirefoxDriverService.CreateDefaultService(@"D:\DownloadeSampleCode\WordpressAutomation\WordpressAutomation\Selenium", "geckodriver.exe");
service.Port = 64444;
service.FirefoxBinaryPath = @"C:\Program Files (x86)\Mozilla Firefox\firefox.exe";
Instance = new FirefoxDriver(service); 

Ответ 6

С#

  • Прежде всего загрузите Selenium IDE для Firefox из Selenium IDE. Используйте и играйте с ним, затем проверьте сценарий, запишите шаги и затем экспортируйте его на С# или проект Java в соответствии с вашими требованиями.

Код кода содержит код, похожий на:

using System;
using System.IO;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
//add this name space to access WebDriverWait
using OpenQA.Selenium.Support.UI;
namespace MyTest
{
[TestClass]
public class MyTest
{
    public static IWebDriver Driver = null;

    // Use TestInitialize to run code before running each test
    [TestInitialize()]
    public void MyTestInitialize()
    {
        try
        {
            string path = Path.GetFullPath("");         //Copy the chrome driver to the debug folder in the bin or set path accordingly
            Driver = new ChromeDriver(path);
        }
        catch (Exception ex)
        { string error = ex.Message; }
    }

    // Use TestCleanup to run code after each test has run
    [TestCleanup()]
    public void MyCleanup()
    {
        Driver.Quit();
    }

    [TestMethod]
    public void MyTestMethod()
    {
        try
        {
            string url = "http://www.google.com";
            Driver.Navigate().GoToUrl(url);

            IWait<IWebDriver> wait = new WebDriverWait(Driver, TimeSpan.FromSeconds(30.00));                    // Waiter in Selenium
            wait.Until(ExpectedConditions.PresenceOfAllElementsLocatedBy(By.XPath(@"//*[@id='lst - ib']")));

            var txtBox = Driver.FindElement(By.XPath(@"//*[@id='lst - ib']"));
            txtBox.SendKeys("Google Office");
            var btnSearch = Driver.FindElement(By.XPath("//*[@id='tsf']/div[2]/div[3]/center/input[1]"));
            btnSearch.Click();

            System.Threading.Thread.Sleep(5000);

        }
        catch (Exception ex)
        {
            string error = ex.Message;
        }
    }
}
}
  • Вам нужно получить драйвер chrome из здесь
  • Вам нужно получить пакеты самородок и необходимые DLL для веб-сайта selenium nuget.
  • Вам нужно понять основы Selenium с сайта selenium docs.

Что все...

Ответ 7

using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using OpenQA.Selenium;
using OpenQA.Selenium.Interactions;
using OpenQA.Selenium.Support.UI;
using SeleniumAutomationFramework.CommonMethods;
using System.Text;

[TestClass]
    public class SampleInCSharp
    {

        public static IWebDriver driver = Browser.CreateWebDriver(BrowserType.chrome);

        [TestMethod]
        public void SampleMethodCSharp()
        {


            driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(5));
            driver.Url = "http://www.store.demoqa.com";
            driver.Manage().Window.Maximize();

            driver.FindElement(By.XPath(".//*[@id='account']/a")).Click();
            driver.FindElement(By.Id("log")).SendKeys("kalyan");
            driver.FindElement(By.Id("pwd")).SendKeys("kalyan");
            driver.FindElement(By.Id("login")).Click();

            WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
            IWebElement myDynamicElement = wait.Until<IWebElement>(d => d.FindElement(By.LinkText("Log out")));

            Actions builder = new Actions(driver);
            builder.MoveToElement(driver.FindElement(By.XPath(".//*[@id='menu-item-33']/a"))).Build().Perform();
            driver.FindElement(By.XPath(".//*[@id='menu-item-37']/a")).Click();
            driver.FindElement(By.ClassName("wpsc_buy_button")).Click();
            driver.FindElement(By.XPath(".//*[@id='fancy_notification_content']/a[1]")).Click();
            driver.FindElement(By.Name("quantity")).Clear();
            driver.FindElement(By.Name("quantity")).SendKeys("10");
            driver.FindElement(By.XPath("//*[@id='checkout_page_container']/div[1]/a/span")).Click();
            driver.FindElement(By.ClassName("account_icon")).Click();
            driver.FindElement(By.LinkText("Log out")).Click();
            driver.Close();
        }
}

Ответ 8

Используйте приведенный ниже код, как только вы добавили все необходимые библиотеки С# в проект в ссылках.

using OpenQA.Selenium;
using OpenQA.Selenium.Firefox;
namespace SeleniumWithCsharp
{
    class Test
    {
        public IWebDriver driver;


        public void openGoogle()
        {
            // creating Browser Instance
            driver = new FirefoxDriver();
            //Maximizing the Browser
            driver.Manage().Window.Maximize();
            // Opening the URL
            driver.Navigate().GoToUrl("http://google.com");
            driver.FindElement(By.Id("lst-ib")).SendKeys("Hello World");
            driver.FindElement(By.Name("btnG")).Click();
        }

        static void Main()
        {
            Test test = new Test();
            test.openGoogle();
        }

    }
}