เบเบฒเบ™เบ—เบปเบ”เบชเบญเบš Selenium เปƒเบ™ C# เปƒเบ™ Linux

เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เบ‚เบญเบ‡เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเป€เบงเบฑเบšเป„เบŠเบ•เปŒเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ เบŠเบตเบฅเบตเบ™เบฝเบก เบเบฒเบ™เปเบเป‰เป„เบ‚เบ—เบปเปˆเบงเป„เบ›เปƒเบ™เบšเบฑเบ™เบ”เบฒเบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒ autotest, เปเบฅเบฐ C# เบซเบ™เบถเปˆเบ‡เปƒเบ™เบžเบฒเบชเบฒเบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเบ—เบตเปˆเบ™เบดเบเบปเบกเบซเบฅเบฒเบเบ—เบตเปˆเบชเบธเบ”, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบเบฒเบ™เบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™เบ‚เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เบกเบทเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบšเปเปˆเป„เบ”เป‰เบ•เบฑเป‰เบ‡เบ„เปเบฒเบ–เบฒเบกเปƒเบ”เป†. เป€เบžเบทเปˆเบญเบžเบฑเบ”เบ—เบฐเบ™เบฒเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เป€เบ—เบเป‚เบ™เป‚เบฅเบเบตเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰, เบŠเบญเบšเปเบงเบ—เบตเปˆเป€เบ›เบฑเบ™เป€เบˆเบปเป‰เบฒเบ‚เบญเบ‡เบ—เบตเปˆเบ™เบดเบเบปเบกเบˆเบฒเบ Microsoft เบชเปเบฒเบฅเบฑเบš Windows เบกเบฑเบเบˆเบฐเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰, เปเบ•เปˆเบ‚เป‰เบญเบเบชเบปเบ™เปƒเบˆเบขเบฒเบเบฎเบนเป‰เบงเปˆเบฒ analogues เบŸเบฃเบตเปƒเบ”เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เป„เบ”เป‰เป‚เบ”เบเบšเปเปˆเบ•เป‰เบญเบ‡เบญเบญเบเบˆเบฒเบ Selenium + C# stack เบชเปเบฒเบฅเบฑเบšเบงเบฝเบเบ‡เบฒเบ™เบ™เบตเป‰.

เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบ‚เป‰เบญเบเบšเปเปˆเบžเบปเบšเบšเบปเบ”เบ„เบงเบฒเบกเบžเบฒเบชเบฒเบฅเบฑเบ”เป€เบŠเบเปƒเบ™เบซเบปเบงเบ‚เปเป‰เบ™เบตเป‰, เบ‚เป‰เบญเบเบˆเบฐเปเบšเปˆเบ‡เบ›เบฑเบ™เบ›เบฐเบชเบปเบšเบเบฒเบ™เบ‚เบญเบ‡เบ‚เป‰เบญเบเปƒเบ™เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเปเบฅเบฐ debugging autotests เปƒเบ™ C# เปƒเบ™ Linux.

OS เบ—เบตเปˆเปƒเบŠเป‰เปเบกเปˆเบ™ Kubuntu 18.04 64-bit เบเบฑเบš Linux kernel 4.15.0-99-generic, เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบˆเบฒเบเบฎเบนเบšเบžเบฒเบš ISO เบ—เบตเปˆเบ”เบฒเบงเป‚เบซเบผเบ”เบกเบฒเบˆเบฒเบ เป€เบงเบฑเบšเป„เบŠเบขเปˆเบฒเบ‡เป€เบ›เบฑเบ™เบ—เบฒเบ‡เบเบฒเบ™. เบ‚เป‰เบญเบเป€เบŠเบทเปˆเบญเบงเปˆเบฒเบเบฒเบ™เปเบˆเบเบขเบฒเบ Linux เบ—เบตเปˆเบ—เบฑเบ™เบชเบฐ เป„เป เปเบฅเบฐเป€เบ›เบฑเบ™เบ—เบตเปˆเบ™เบดเบเบปเบกเบเบฑเบ™เบˆเบฐเป€เบฎเบฑเบ”.

Mono JIT compiler เบฎเบธเปˆเบ™ 6.6.0.166 เป€เบฎเบฑเบ”เบซเบ™เป‰เบฒเบ—เบตเปˆเป€เบ›เบฑเบ™ CLR เบชเปเบฒเบฅเบฑเบš C#. เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบ‚เบญเบ‡เบกเบฑเบ™เบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบเบฒเบ™เบ„เบฑเบ”เบฅเบญเบเบ•เบฒเบกเบฅเปเบฒเบ”เบฑเบšเปเบฅเบฐเบ›เบฐเบ•เบดเบšเบฑเบ”เบ„เปเบฒเบชเบฑเปˆเบ‡เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™ terminal (เปƒเบ™ Kubuntu เบ™เบตเป‰เปเบกเปˆเบ™ Konsole) เบเบฑเบš เปœเป‰เบฒ เบ™เบตเป‰.

เปเบฅเบฐเปƒเบŠเป‰เป€เบ›เบฑเบ™ IDE MonoDevelop 7.8.4 (เบชเป‰เบฒเบ‡ 2), เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เบเบฑเบš Mono.

Selenium เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบ•เบปเบงเบ—เปˆเบญเบ‡เป€เบงเบฑเบšเบˆเปเบฒเบ™เบงเบ™เบซเบผเบฒเบ, เปเบ•เปˆเบ‚เป‰เบญเบเบ‚เบตเป‰เบ„เป‰เบฒเบ™เป€เบเบตเบ™เป„เบ›เบ—เบตเปˆเบˆเบฐเบฅเบปเบšเบเบงเบ™เบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เปเบฅเบฐเบˆเปเบฒเบเบฑเบ”เบ•เบปเบงเป€เบญเบ‡ Chrome'om, เบกเบตเบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡ เปเบžเบฑเบเป€เบเบฑเบ” .deb 64-เบšเบดเบ”.

เบ•เปเปˆเป„เบ›, เบžเบงเบเป€เบฎเบปเบฒเบชเป‰เบฒเบ‡เบเบฒเบ™เปเบเป‰เป„เบ‚เปƒเบ™ MonoDevelop:

  • เป€เบ›เบตเบ” MonoDevelop
  • เป„เบ›เบ—เบตเปˆเป€เบกเบ™เบน "File".
  • เป€เบฅเบทเบญเบ "เบชเป‰เบฒเบ‡เบเบฒเบ™เปเบเป‰เป„เบ‚"
  • เบ„เบฅเบดเบ โ€œ.NETโ€
  • เป€เบฅเบทเบญเบ "เป‚เบ„เบ‡เบเบฒเบ™เบซเปเบชเบฐเบซเบกเบธเบ” NUnit" เปเบฅเบฐเบเบปเบ” "เบ•เปเปˆเป„เบ›"
  • เบŠเบตเป‰เบšเบญเบเบŠเบทเปˆเปเบฅเบฐเป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบ‚เบญเบ‡เบเบฒเบ™เปเบเป‰เป„เบ‚, เปƒเบซเป‰เบ„เบฅเบดเบเปƒเบชเปˆ "เบชเป‰เบฒเบ‡"

เบเบฒเบ™เบ—เบปเบ”เบชเบญเบš Selenium เปƒเบ™ C# เปƒเบ™ Linux

เป€เบžเบทเปˆเบญเบ„เบงเบšเบ„เบธเบกเบ•เบปเบงเบ—เปˆเบญเบ‡เป€เบงเบฑเบš, เบ—เปˆเบฒเบ™เบเบฑเบ‡เบˆเบฐเบ•เป‰เบญเบ‡เบกเบตเบชเบญเบ‡เบชเบฒเบกเปเบžเบฑเบเป€เบเบฑเบ” NuGet:

  • เป„เบ›เบ—เบตเปˆเป€เบกเบ™เบน "เป‚เบ„เบ‡เบเบฒเบ™" เปเบฅเบฐเป€เบฅเบทเบญเบ "Add NuGet Packages"
  • เบŠเบญเบเบซเบฒ เปเบฅเบฐเบ•เบดเบ”เบ•เบฑเป‰เบ‡เบŠเบธเบ” Selenium.WebDriver
  • เบŠเบญเบเบซเบฒ เปเบฅเบฐเบ•เบดเบ”เบ•เบฑเป‰เบ‡เปเบžเบฑเบเป€เบเบฑเบ” Selenium.WebDriver.ChromeDriver

เบเบฒเบ™เบ—เบปเบ”เบชเบญเบš Selenium เปƒเบ™ C# เปƒเบ™ Linux

เบ™เบฑเป‰เบ™เปเบกเปˆเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”, เบ—เบฑเบ‡เบซเบกเบปเบ”เบ—เบตเปˆเบเบฑเบ‡เป€เบซเบผเบทเบญเปเบกเปˆเบ™เบเบฒเบ™เบ‚เบฝเบ™เบฅเบฐเบซเบฑเบ”เบšเบฒเบ‡เบขเปˆเบฒเบ‡เป€เบžเบทเปˆเบญเบเบงเบ”เป€เบšเบดเปˆเบ‡เบงเปˆเบฒเบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เบ–เบทเบเบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ•เบฒเบกเบ—เบตเปˆเบกเบฑเบ™เบ„เบงเบ™. เป€เบกเบทเปˆเบญเบชเป‰เบฒเบ‡เบเบฒเบ™เปเบเป‰เป„เบ‚, เป„เบŸเบฅเปŒเบชเปเบฒเบฅเบฑเบšเบงเบดเบ—เบตเบเบฒเบ™เบ—เบปเบ”เบชเบญเบš Test.cs เบˆเบฐเบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบทเป‰เบ™เป‚เบ”เบเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”, เป€เบŠเบดเปˆเบ‡เบ‚เป‰เบญเบเปƒเบชเปˆเบฅเบฐเบซเบฑเบ”เบชเบญเบ‡เบชเบฒเบกเปเบ–เบงเบ•เปเปˆเป„เบ›เบ™เบตเป‰:

using NUnit.Framework;
using System;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium;

namespace SeleniumTests
{
    [TestFixture()]
    public class Test
    {
        [Test()]
        public void TestCase()
        {
            IWebDriver driver = new ChromeDriver();
            driver.Navigate().GoToUrl("http://habr.com/");
            Assert.IsTrue(driver.Url.Contains("habr.com"), "ะงั‚ะพ-ั‚ะพ ะฝะต ั‚ะฐะบ =(");
            driver.Quit();
        }
    }
}

เบเบฒเบ™โ€‹เบ—เบปเบ”โ€‹เบชเบญเบšโ€‹เปเบกเปˆเบ™โ€‹เป„เบ”เป‰โ€‹เป€เบฅเบตเปˆเบกโ€‹เบ•เบปเป‰เบ™โ€‹เบˆเบฒเบโ€‹เปเบ–เบš "เบเบฒเบ™โ€‹เบ—เบปเบ”โ€‹เบชเบญเบšโ€‹เบซเบปเบงโ€‹เบซเบ™เปˆเบงเบโ€‹"โ€‹; เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒโ€‹เบกเบฑเบ™โ€‹เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เบชเบฐโ€‹เปเบ”เบ‡โ€‹, เปƒเบซเป‰โ€‹เป„เบ›โ€‹เบ—เบตเปˆโ€‹เป€เบกโ€‹เบ™เบน "เป€เบšเบดเปˆเบ‡โ€‹" เปเบฅเบฐโ€‹เป€เบฅเบทเบญเบโ€‹เป€เบญเบปเบฒ "เบเบฒเบ™โ€‹เบ—เบปเบ”โ€‹เบชเบญเบšโ€‹"โ€‹.

เบเบฒเบ™เบ—เบปเบ”เบชเบญเบš Selenium เปƒเบ™ C# เปƒเบ™ Linux

เบญเบฑเบ”โ€‹เบ•เบฐโ€‹เป‚เบ™โ€‹เบกเบฑเบ”โ€‹เบชเบปเบšโ€‹เบœเบปเบ™โ€‹เบชเปเบฒโ€‹เป€เบฅเบฑเบ” =โ€‹)

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™