ユーザーを確認するために使用されるcookieにauthtokenがありますが、Nunitとcmdを使用してCerenium C#テストケースコードを実行しようとすると、Chromeインスタンスが起動し、Cookieがないためログインページにリダイレクトされます。問題は、テスト中に起動されるインスタンス内にクッキーが存在しないことと、この問題を解決する方法です。 これは私のコードです。なぜクッキーにアクセスせずにseleniumテストケースが実行されますか?
using NUnit.Framework;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Firefox;
using System;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading;
namespace AutomationTest
{
[TestFixture]
public class SeleniumTest
{
private IWebDriver driver;
private StringBuilder verificationErrors;
private string baseURL;
private bool acceptNextAlert = true;
[SetUp]
public void SetupTest()
{
driver = new ChromeDriver();
baseURL = "http://localhost/";
verificationErrors = new StringBuilder();
}
[TearDown]
public void TeardownTest()
{
//try
//{
// driver.Quit();
//}
//catch (Exception)
//{
// // Ignore errors if unable to close the browser
//}
//Assert.AreEqual("", verificationErrors.ToString());
}
[Test]
public void TheSTest()
{
driver.Navigate().GoToUrl(baseURL + "/TrailHead/");
driver.FindElement(By.Id("addNewLeadButton")).Click();
driver.FindElement(By.CssSelector("td.formTitle > input.td-button")).Click();
driver.FindElement(By.Id("township")).Clear();
driver.FindElement(By.Id("township")).SendKeys("2n");
driver.FindElement(By.Id("range")).Clear();
driver.FindElement(By.Id("range")).SendKeys("2e");
driver.FindElement(By.Id("section")).Clear();
driver.FindElement(By.Id("section")).SendKeys("2");
driver.FindElement(By.Id("legal")).Clear();
driver.FindElement(By.Id("legal")).SendKeys("2");
driver.FindElement(By.Id("NRI")).Clear();
driver.FindElement(By.Id("NRI")).SendKeys("2");
driver.FindElement(By.Id("NMA")).Clear();
driver.FindElement(By.Id("NMA")).SendKeys("2");
driver.FindElement(By.Id("tractAskedPrice")).Clear();
driver.FindElement(By.Id("tractAskedPrice")).SendKeys("2");
driver.FindElement(By.CssSelector("div.modalFooter > div.footer-right-button-save")).Click();
driver.FindElement(By.XPath("//div[@onclick='saveAndExit()']")).Click();
// Warning: assertTextPresent may require manual changes
Assert.IsTrue(Regex.IsMatch(driver.FindElement(By.CssSelector("BODY")).Text, "^[\\s\\S]*$"));
}
private bool IsElementPresent(By by)
{
try
{
driver.FindElement(by);
return true;
}
catch (NoSuchElementException)
{
return false;
}
}
private bool IsAlertPresent()
{
try
{
driver.SwitchTo().Alert();
return true;
}
catch (NoAlertPresentException)
{
return false;
}
}
private string CloseAlertAndGetItsText()
{
try
{
IAlert alert = driver.SwitchTo().Alert();
string alertText = alert.Text;
if (acceptNextAlert)
{
alert.Accept();
}
else
{
alert.Dismiss();
}
return alertText;
}
finally
{
acceptNextAlert = true;
}
}
}
}
ようこそ!スタックオーバーフロー!デバッガの使い方を学ぶ必要があるようです。 [補完的なデバッグ手法](https://ericlippert.com/2014/03/05/how-to-debug-small-programs/)にご協力ください。その後も問題が残っている場合は、もう少し詳しくお聞かせください。 –