0

特に1時間ごとに実行する必要があるため、NUNITを使用せずにこのアプリを実行できるようにしたいと思います。私はNUNITとセレンの初心者ですが、NUNITを介して実行する代わりに、これをコンソールアプリに変換するために何ができるのか疑問に思っていました。

コードは以下のとおりです。手伝ってくれてどうもありがとう。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using NUnit.Framework;
using Selenium;
using System.Threading;
using System.Data;
using System.IO;

namespace LogIn
{
    [TestFixture]
    public class LogIn
    {
       public static ISelenium selenium;
       private StringBuilder verificationErrors;

        [SetUp]
        public void SetupTest()
        {
            selenium = new DefaultSelenium("localhost", 4444, "*iexplore", "https://.............aspx");
            selenium.Start();
            selenium.SetSpeed("900");
            selenium.WindowMaximize();
            selenium.WindowFocus();
            verificationErrors = new StringBuilder();
        }

        [Test]
        public void Login()
        {

            selenium.SetSpeed("900");
            selenium.Open("/Login.aspx");

            Assert.AreEqual("stuff", selenium.GetTitle());

            selenium.Type("id=ctl00_cphBody_objLogin_UserName", "username");

            selenium.Type("id=ctl00_cphBody_objLogin_Password", "Pass");

            selenium.Click("id=ctl00_cphBody_objLogin_LoginImageButton");

            selenium.WaitForPageToLoad("30000");

            Assert.AreEqual("labs", selenium.GetTitle());


            //i dont understand why do we need this?
            /*
            try
            {
                Assert.AreEqual("Orders - Drug Testing ", selenium.GetText("link=Orders - Drug Testing "));

            }
            catch (AssertionException e)
            {
                Console.WriteLine(e.Message + " " + DateTime.Now);
            }
            */

            Console.WriteLine("Congrats, you are logined successfully. " + DateTime.Now);



            selenium.Click("link=Specimen Volume Report - Drugs");
            selenium.WaitForPageToLoad("30000");
            selenium.Click("id=ctl00_cphBody_dtpFrom");
            selenium.Type("id=ctl00_cphBody_dtpFrom", DateTime.Now.ToString("MM/dd/yyyy"));
            selenium.Type("id=ctl00_cphBody_dtpTo", DateTime.Now.ToString("MM/dd/yyyy"));
            selenium.Click("id=ctl00_cphBody_btnExport");
            selenium.SetSpeed("6000");
            Console.WriteLine("Waiting for result complete");
            selenium.IsTextPresent("Specimen Volume Report");
            selenium.IsTextPresent("Display Specimen Detail");

        }

        [TearDown]
        public void FullTearDown()
        {
            selenium.Stop();
        }

}

}

4

3 に答える 3

1

コンソール アプリ (またはスケジュールされたタスクなど) にコマンド ライン経由で NUnit テストを実行させないのはなぜですか? (つまり、selenium テストを引数として渡して nunit-console を呼び出します。)

于 2012-07-23T20:44:40.807 に答える
1

これは、セレンrcではなくセレンWebドライバーで機能します。

using OpenQA.Selenium;
using OpenQA.Selenium.IE;
using OpenQA.Selenium.Support.UI;

public static IWebDriver WebDriver;
void Main()
{
    var url = "...";
    var capabilitiesInternet = new OpenQA.Selenium.Remote.DesiredCapabilities();
    capabilitiesInternet.SetCapability("ignoreProtectedModeSettings", true);
    IWebDriver driver = new InternetExplorerDriver(Path.GetDirectoryName (Util.CurrentQueryPath));

    // Navigate to url
    driver.Navigate().GoToUrl(url);

    // Login
    driver.FindElement(By.Name("login")).SendKeys("...");
    driver.FindElement(By.Name("password")).SendKeys("...");
    driver.FindElement(By.ClassName("button")).Click();
于 2013-05-21T13:43:22.677 に答える